Introducere în JWT: JSON Web Token (JWT) este un standard deschis (RFC 7519) care definește o modalitate compactă și autonomă de a transfera informații în siguranță între părți în obiecte JSON. Aceste informații pot fi verificate și de încredere prin semnături digitale. JWT-urile pot fi semnate folosind secrete (folosind algoritmul HMAC) sau folosind perechile de chei publice/private ale RSA.
Câteva scenarii în care JSON Web Tokens sunt utile:
Verificarea identității:Acesta este cel mai frecvent caz de utilizare a JWT-urilor. Odată ce utilizatorul se autentifică, fiecare cerere ulterioară va conține un JWT care îi permite accesul la rutele, serviciile și resursele permise de acel token. Autentificarea unică este o caracteristică larg folosită astăzi datorită costului redus și capacității de a fi folosită ușor în diferite domenii.
Schimb de informații:JSON Web Tokens sunt o modalitate excelentă de a transfera informații în siguranță între părți. Deoarece JWT-urile pot fi semnate – de exemplu folosind perechi de chei publice/private – este posibil să fii sigur că expeditorul este cine pretinde că este. În plus, deoarece semnătura este calculată folosind antete și payload-uri, poți verifica și că conținutul nu a fost modificat.
Site oficial:Autentificarea cu hyperlink este vizibilă.
Analizează informațiile JWT online:Autentificarea cu hyperlink este vizibilă.
Analizează parametrii JWT online Autentificarea cu hyperlink este vizibilă.
Înțelegerea mea despre JWT de mai jos este greșită, vă rog să-mi dați niște sfaturi
În primul rând, acest dispozitiv nu este recomandat să-l folosești pe site-ul MVC, îl poți folosi în webapi, poziționarea acestui dispozitiv este API, nu o sesiune a site-ului de înlocuire!
asp.net tutorial de utilizare webapi:Autentificarea cu hyperlink este vizibilă.Nu voi reface roata, uitându-mă la ce scrie acest articol este în regulă.
Componența JWT
JWT este compus din trei părți: Header, Payload și Signature, cu simboluri de punct între ele pentru a forma xx.yy.zz.
Rețineți că pentru tokenurile semnate, această informație poate fi citită de oricine, în ciuda protecției împotriva manipulării. Nu plasați informații sensibile în conținutul valid sau elementele de antete ale JWT-ului decât dacă sunt criptate.
De exemplu:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [semnătură] În termeni simpli, oricine poate decripta acest token, dar autenticitatea acestei informații nu poate fi verificată, doar serverul care a generat acest token poate verifica autenticitatea, așa că nu stocați informații sensibile în el.
Există o problemă aici, și anume, dacă utilizatorul schimbă parola sau îi este interzis să se conecteze, cum poate JWT să rezolve validitatea tokenului?
Ideea mea este să adaug un șir asemănător unui ghid în secțiunea Payload și apoi să existe în cache; când verificăm identitatea utilizatorului, nu doar verificăm jwt-ul, ci și informațiile despre Payload în jwt, putem controla validitatea controlând cache-ul.
|