Kliento pusėje tai atrodo kaip atsitiktinis ryšio nutrūkimas po valandos darbo sesijos. Dėklo piktograma dingsta, tunelis atstatomas, o žurnale rodoma autentifikacijos klaida, o ne tinklo klaida. Iš tikrųjų sesija iš naujo susiderėjo, o antrajam rankos paspaudimui prireikė kredencialų, kurių klientas nebeturėjo galiojančios kopijos. Vienkartinis kodas, kuris veikė prisijungiant, antrą kartą nebeveiks, todėl raktų keitimas nepavyksta būtent taip, kaip suprojektuota.

Sprendimas yra nuspręsti, ką turi pateikti antrasis rankos paspaudimas, o ne pailginti pakartojimų laikmatį.

Peržiūrėkite mainus kliento požiūriu

Prisijungdamas klientas siunčia vartotojo vardą, slaptažodį ir žetono įrenginio kodą, o serveris priima šį derinį. Tada sesija tęsiasi, kol suveikia pakartotinio derėjimosi trigeris, kuris esamame tunelyje pradeda naują TLS rankos paspaudimą. Tas rankos paspaudimas vėl prašo autentifikacijos. Jei serverio autentifikacijos kelias tikisi slaptažodžio ir dabartinio vienkartinio kodo, klientas neturi naujo kodo, kurį galėtų pateikti, nebent vartotojas yra šalia ir jį įveda.

Dauguma klientų sesijos viduryje neatidaro užklausos lango, todėl rankos paspaudimas baigiasi laiku ir tunelis nutrūksta. Vartotojas mato prisijungimą iš naujo, o ne autentifikacijos užklausą, todėl pirmoji ataskaita paprastai kaltina tinklą.

auth-gen-token pakeičia, kas atsako į antrąjį klausimą

Parinktis auth-gen-token leidžia serveriui po sėkmingo prisijungimo išduoti žetoną, o vėlesni derėjimaisi pateikia tą žetoną, o ne kartoja slaptažodį ir kodą. Vadove aprašoma jo galiojimo trukmė ir atnaujinimo elgsena, o žetonas turi būti traktuojamas kaip kredencialas su savo galiojimo pabaiga. Numatytoje kelioje serveris pats patikrina žetoną, o ne vėl kviečia išorinį slaptažodžio autentifikatorių.

Su išorinės autentifikacijos integracija tas pasidalijimas keičiasi. Papildinys turi suprasti žetono būseną ir taikyti savo patikras, nes serveris nebėra vienintelis komponentas, sprendžiantis, ar sesija tęsis. Žetono traktavimas kaip dar vieno skaitmeninio vienkartinio kodo nėra šios funkcijos įgyvendinimas.

Nuspręskite, kas nutinka paskyros būsenai

Žetonas, kuris gyvena ilgiau nei paskyros prieiga, yra taisyklės spraga. Nuspręskite, kaip išjungta paskyra, pašalinta grupės narystė ar atšauktas įrenginys veikia, kol žetonas dar galioja. Trumpa žetono galiojimo trukmė sumažina langą; aiškus atšaukimo kelias padaro jį sąmoningu. Užrašykite atsakymą prieš įjungdami parinktį, nes numatytasis kelias nesikreipia į išorinį autentifikatorių kiekvieno derėjimosi metu.

Diegiant keliuose serveriuose, žetono pasirašymo paslaptis turi būti bendra, kitaip klientas gali būti nusiųstas į mazgą, kuris negali patikrinti jo žetono.

Tikrinkite galiojimo pabaigą ir prisijungimą iš naujo, o ne tik prisijungimą

Bandymo profilyje sumažinkite derėjimosi intervalą, kad antrasis rankos paspaudimas įvyktų jums matant, tada stebėkite abu žurnalus. Patvirtinkite, kad žetonas išduodamas prisijungiant, pateikiamas keičiant raktus ir atnaujinamas arba išduodamas iš naujo pagal sukonfigūruotą trukmę. Tada priverskite žetono galiojimo pabaigą ir visišką prisijungimą iš naujo, nes klientas, kuris švariai prisijungia iš naujo, vis tiek gali nepavykti raktų keitimo kelyje.

Paskyros pašalinimą išbandykite paskiausiai. Tas atvejis parodo, ar jūsų parašyta taisyklė vykdoma, ar tik dokumentuota.

Netaisykite to išjungdami atnaujinimą

Nustačius derėjimosi intervalą į nulį abiejuose galuose, pašalinamas simptomas ir kartu raktų rotacija. Tai paslepia kredencialų pakartotinio panaudojimo problemą už taisyklės pakeitimo, kurio niekas neperžiūrėjo. Išsaugokite atnaujinimą ir rinkitės tarp serverio išduoto žetono ir naujo interaktyvaus iššūkio pagal tai, ar vartotojas yra šalia.

Ilgesnis pakartojimų laikmatis jau panaudoto kodo vėl nepadaro galiojančio. Jis tik atideda atsijungimą ir apsunkina žurnalo skaitymą.

Susiję straipsniai