Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 2|Răspunde: 0

[Sursă] .NET/C# Două metode pentru a verifica validitatea semnăturii tokenului JWT

[Copiază linkul]
Postat peAcum 1 minut | | | |
Cerințe: La solicitarea unui API, informațiile de autentificare ale tokenului JWT vor fi incluse. Backend-ul trebuie să verifice dacă semnătura tokenului este validă, apoi să verifice dacă a expirat, informațiile de emitere etc.

URI-ul setului de chei web JSON

jwks_uri (JSON Web Key Set URI) este un element standard de configurație în specificațiile OAuth 2.0 și OpenID Connect (OIDC).

Pe scurt, este o adresă URL publică (sau un punct final) care indică locul unde serverul de autentificare publică "setul său de chei publice". În procesul standard OIDC, serverul de autentificare oferă un endpoint de descoperire a serviciului care conține adresa jwks_uri.

Metafora sa populară

Dacă JWT-ul (sau ID-Token-ul) emis de serverul de autentificare este comparat cu o scrisoare ștampilată cu un sigiliu oficial fizic, atunci:

• Cheia privată: "Sigiliul fizic" blocat în seiful deținut de serverul de autentificare, folosit pentru ștampilare (semnare).
• jwks_uri: Aceasta este "secțiunea de dezvăluire a modelului sigiliului" postată pe site-ul oficial de către serverul de autentificare.
• Aplicație terță parte (client sau server de resurse): După ce primești emailul, descarcă designul sigiliului (cheia publică) de la această adresă jwks_uri și compară-l cu ștampila de pe scrisoare pentru a demonstra că scrisoarea a fost într-adevăr emisă de compania oficială și nu a fost modificată.

Aici, sensul utilizării în colecția de chei este:

"sig": Semnătură, folosită pentru a verifica sau genera semnături pentru a asigura integritatea datelor și protecția imposibil de manipulare.
"enc": Criptare, folosită pentru a cripta sau decripta date, precum și pentru a gestiona cheile (Criptarea cheilor) pentru a asigura confidențialitatea datelor.

Așa cum se arată mai jos:



Analizează informațiile JWT

Mai întâi, instalează pachetul Nuget:System.IdentityModel.Tokens.Jwt, citește informațiile despre cereri din JWT, codul fiind următorul:

Rezultatul este următorul:
Purtător
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

Verifică validitatea semnăturii JWT

Tot trebuie să faci referire la pachetul System.IdentityModel.Tokens.Jwt. Există două moduri de a verifica validitatea semnăturii.

Soluția 1: Lanțul de certificate X.509

Deserializarea se realizează conform standardului internațional X.509, extragând toate informațiile structurate din certificat (cum ar fi cheia publică, emitentul, data de expirare, numărul de serie etc.) și generarea unui obiect X509Certificate2. În final, cheia publică RSA ascunsă din interior este obținută pentru a verifica tokenul JWT. Codul este următorul:
Așa cum se arată mai jos:



Soluția 2: JsonWebKey

Convertește în Cheia de Securitate: Identifică automat tipul algoritmului din interior. Apoi, verifică validitatea tokenului. Codul este următorul:
(Sfârșit)




Precedent:.NET/C# Obține proprietățile obiectului, câmpurile și comentariile bazate pe Roslyn
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com