Sissejuhatus JWT-sse: JSON Web Token (JWT) on avatud standard (RFC 7519), mis määratleb kompaktse ja iseseisva viisi info turvaliseks edastamiseks osapoolte vahel JSON objektides. Seda teavet saab digiallkirjade abil kontrollida ja usaldada. JWT-sid saab allkirjastada salajaste võtmete abil (kasutades HMAC algoritmi) või RSA avalike ja privaatvõtmete paaride abil.
Mõned olukorrad, kus JSON Web Tokenid on kasulikud:
Isiku tuvastamine:See on kõige tavalisem juhtum, kus kasutatakse JWT-sid. Kui kasutaja on sisse loginud, sisaldab iga järgmine päring JWT-d, mis võimaldab kasutajal pääseda ligi selle tokeni lubatud marsruutidele, teenustele ja ressurssidele. Ühekordne sisselogimine on tänapäeval laialdaselt kasutusel tänu madalale koormusele ja lihtsale kasutusele erinevates domeenides.
Infovahetus:JSON Web Tokenid on suurepärane viis info turvaliseks edastamiseks osapoolte vahel. Kuna JWT-sid saab allkirjastada – näiteks avaliku ja privaatvõtme paaride abil – on võimalik olla kindel, et saatja on see, kes ta väidab end olevat. Lisaks, kuna allkiri arvutatakse päiste ja koormuste abil, saad kontrollida, et sisu pole manipuleeritud.
Ametlik veebileht:Hüperlingi sisselogimine on nähtav.
Analüüsi JWT infot veebis:Hüperlingi sisselogimine on nähtav.
Analüüsi JWT parameetreid veebis Hüperlingi sisselogimine on nähtav.
Minu arusaam JWT-st allpool on vale, palun andke mulle nõu
Esiteks, seda asja ei soovitata MVC veebilehel kasutada, seda saab kasutada ka webAPI-s, selle paigutus on API, mitte asendusveebilehe sessioon!
asp.net WebAPI kasutamise õpetus:Hüperlingi sisselogimine on nähtav.Ma ei hakka ratast uuesti tegema, selle artikli kirjutatu vaatamine on okei.
JWT koosseis
JWT koosneb kolmest osast: päis, koormus ja allkiri, mille vahel on punktisümbolid, moodustades xx.yy.zz vormi.
Pane tähele, et allkirjastatud tokenite puhul saab seda infot lugeda igaüks, hoolimata võltsimiskaitsest. Ära paiguta tundlikku teavet kehtivasse sisusse või päise elementidesse, välja arvatud juhul, kui see on krüpteeritud.
Näiteks:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [allkiri] Lihtsas keeles võib igaüks selle tokeni dekrüpteerida, kuid selle info autentsust ei saa kontrollida, ainult server, kes selle tokeni genereeris, saab autentsust kontrollida, seega ära salvesta sinna tundlikku infot.
Siin on probleem, nimelt kui kasutaja muudab parooli või tal on keelatud sisse logida, kuidas saab JWT tokeni kehtivust lahendada?
Minu enda idee on lisada guid-laadne string Payload sektsiooni ja siis eksisteerida vahemälus; kasutaja identiteedi kontrollimisel mitte ainult jwt-d, vaid ka Payload info jwt-s, saame kontrollida kehtivust, kontrollides vahemälu.
|