Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 2|Svar: 0

[Kilde] .NET/C# To metoder til at verificere gyldigheden af JWT-tokensignaturen

[Kopier link]
Opslået påFor 1 minut siden | | | |
Krav: Når man anmoder om et API, vil JWT-tokenautentificeringsinformationen blive inkluderet. Backend skal verificere, om tokensignaturen er gyldig, derefter om den er udløbet, udstedelsesoplysningerne osv.

JSON Web Key Set URI

jwks_uri (JSON Web Key Set URI) er et standardkonfigurationselement i OAuth 2.0 og OpenID Connect (OIDC) specifikationerne.

Kort sagt er det en offentlig URL-adresse (eller endepunkt), der peger på, hvor autentificeringsserveren offentliggør sit "offentlige nøglesæt." I den standard OIDC-proces leverer autentificeringsserveren et serviceopdagelsesendepunkt, der indeholder den jwks_uri adresse.

Dens populære metafor

Hvis JWT (eller ID-tokenet), udstedt af autentificeringsserveren, sammenlignes med et brev stemplet med et fysisk officielt segl, så:

• Privat nøgle: Det "fysiske segl", låst i pengeskabet som autentificeringsserveren opbevarer, brugt til stempling (signering).
• jwks_uri: Dette er "seal pattern disclosure-sektionen", som er lagt op på den officielle hjemmeside af autentificeringsserveren.
• Tredjepartsapplikation (klient eller ressourceserver): Efter modtagelse af e-mailen downloades segldesignet (offentlig nøgle) fra denne jwks_uri adresse og sammenlignes med stemplet på brevet for at bevise, at brevet faktisk er udstedt af det officielle firma og ikke er blevet manipuleret med.

Her er betydningen af brug i nøglesamlingen:

"sig": Signatur, brugt til at verificere eller generere signaturer for at sikre dataintegritet og manipulationssikker beskyttelse.
"enc": Kryptering, brugt til at kryptere eller dekryptere data samt administrere nøgler (nøglekryptering) for at sikre datafortrolighed.

Som vist nedenfor:



Parse JWT-information

Først installerer du nuget-pakken:System.IdentityModel.Tokens.Jwt, læser kravoplysningerne fra jwt, koden er som følger:

Outputtet er som følger:
Bærer
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

Verificér gyldigheden af JWT-signaturen

Du skal stadig først referere til System.IdentityModel.Tokens.Jwt-pakken. Der er to måder at verificere signaturens gyldighed på.

Løsning 1: X.509 certifikatkæde

Deserialisering udføres i henhold til X.509 internationale standard, hvor al struktureret information udtrækkes fra certifikatet (såsom offentlig nøgle, udsteder, udløbsdato, serienummer osv.) og genereres et X509Certificate2-objekt. Endelig opnås den skjulte RSA-offentlige nøgle indeni for at verificere JWT-tokenet. Koden er som følger:
Som vist nedenfor:



Løsning 2: JsonWebKey

Konverter til sikkerhedsnøgle: Den identificerer automatisk algoritmetypen indeni. Derefter verificeres tokenets gyldighed. Koden er som følger:
(Slut)




Tidligere:.NET/C# Hent objektegenskaber, felter og kommentarer baseret på Roslyn
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com