|
|
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
|