Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 2|Antwoord: 0

[Bron] .NET/C# Twee methoden om de geldigheid van de JWT-tokenhandtekening te verifiëren

[Link kopiëren]
Geplaatst op1 minuut geleden | | | |
Vereisten: Bij het aanvragen van een API wordt de JWT-tokenauthenticatie-informatie opgenomen. De backend moet verifiëren of de tokenhandtekening geldig is, vervolgens verifiëren of deze is verlopen, de uitgifte-informatie, enzovoort.

JSON Web Key Set URI

jwks_uri (JSON Web Key Set URI) is een standaard configuratie-item in OAuth 2.0 en OpenID Connect (OIDC) specificaties.

Simpel gezegd is het een openbaar URL-adres (of eindpunt) dat wijst naar waar de authenticatieserver zijn "publieke sleutelset" publiceert. In het standaard OIDC-proces biedt de authenticatieserver een serviceontdekkingseindpunt met het jwks_uri adres.

De populaire metafoor

Als de JWT (of ID Token) die door de authenticatieserver wordt uitgegeven wordt vergeleken met een brief met een fysieke officiële zegelstempel, dan:

• Privésleutel: Het "fysieke zegel" dat in de kluis van de authenticatieserver wordt opgesloten, gebruikt voor het stempelen (ondertekenen).
• jwks_uri: Dit is de sectie "zegelpatroon-openbaarmaking" die op de officiële website is geplaatst door de authenticatieserver.
• Applicatie van derden (client of resource server): Na ontvangst van de e-mail download je het zegelontwerp (publieke sleutel) van dit jwks_uri adres en vergelijk je dit met de stempel op de brief om te bewijzen dat de brief inderdaad door het officiële bedrijf is uitgegeven en niet is gemanipuleerd.

Hier is de betekenis van gebruik in de sleutelverzameling:

"sig": Handtekening, gebruikt om handtekeningen te verifiëren of te genereren om gegevensintegriteit en manipulatievrije bescherming te waarborgen.
"enc": Versleuteling, gebruikt om gegevens te versleutelen of te ontsleutelen, evenals sleutels te beheren (Key Encryption) om gegevensvertrouwelijkheid te waarborgen.

Zoals hieronder getoond:



Parse JWT-informatie

Installeer eerst het nuget-pakket:System.IdentityModel.Tokens.Jwt, leest de claimsinformatie van de jwt, de code is als volgt:

De output is als volgt:
Drager
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

Controleer de geldigheid van de JWT-handtekening

Je moet nog steeds eerst het System.IdentityModel.Tokens.Jwt-pakket refereren. Er zijn twee manieren om de geldigheid van de handtekening te verifiëren.

Oplossing 1: X.509 certificaatketen

Deserialisatie wordt uitgevoerd volgens de X.509 internationale standaard, waarbij alle gestructureerde informatie uit het certificaat wordt gehaald (zoals publieke sleutel, uitgever, vervaldatum, serienummer, enz.) en een X509Certificate2-object wordt gegenereerd. Ten slotte wordt de verborgen RSA-publieke sleutel binnenin verkregen om het JWT-token te verifiëren. De code is als volgt:
Zoals hieronder getoond:



Oplossing 2: JsonWebKey

Converteer naar Security Key: Het identificeert automatisch het algoritmetype binnenin. Controleer vervolgens de geldigheid van het token. De code is als volgt:
(Einde)




Vorig:.NET/C# Verkrijg objecteigenschappen, velden en opmerkingen op basis van Roslyn
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com