Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 2|Svare: 0

[Kilde] .NET/C# To metoder for å verifisere gyldigheten av JWT-tokensignaturen

[Kopier lenke]
Publisert påFor 1 minutt siden | | | |
Krav: Når man ber om et API, vil JWT-tokenautentiseringsinformasjonen bli inkludert. Backend må verifisere om tokensignaturen er gyldig, deretter om den har utløpt, utstedelsesinformasjonen osv.

JSON Web Key Set URI

jwks_uri (JSON Web Key Set URI) er et standard konfigurasjonselement i OAuth 2.0 og OpenID Connect (OIDC)-spesifikasjonene.

Enkelt sagt er det en offentlig URL-adresse (eller endepunkt) som peker til der autentiseringsserveren publiserer sitt "offentlige nøkkelsett." I standard OIDC-prosessen tilbyr autentiseringsserveren et tjenesteoppdagelsesendepunkt som inneholder jwks_uri-adressen.

Dens populære metafor

Hvis JWT (eller ID-tokenet) utstedt av autentiseringsserveren sammenlignes med et brev stemplet med et fysisk offisielt segl, da:

• Privat nøkkel: Det "fysiske seglet" låst i safen som oppbevares av autentiseringsserveren, brukt til stempling (signering).
• jwks_uri: Dette er "seal pattern disclosure-seksjonen" som er lagt ut på den offisielle nettsiden av autentiseringsserveren.
• Tredjepartsapplikasjon (klient eller ressursserver): Etter mottak av e-posten, last ned segldesignet (offentlig nøkkel) fra denne jwks_uri-adressen og sammenlign det med stempelet på brevet for å bevise at brevet faktisk er utstedt av det offisielle selskapet og ikke er tuklet med.

Her er betydningen av bruk i nøkkelsamlingen:

"sig": Signatur, brukt til å verifisere eller generere signaturer for å sikre dataintegritet og beskyttelse mot manipulasjon.
"enc": Kryptering, brukt til å kryptere eller dekryptere data, samt administrere nøkler (nøkkelkryptering) for å sikre datakonfidensialitet.

Som vist nedenfor:



Parse JWT-informasjon

Først, installer nuget-pakken:System.IdentityModel.Tokens.Jwt, leser kravinformasjonen fra jwt, koden er som følger:

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

Verifiser gyldigheten av JWT-signaturen

Du må fortsatt først referere til System.IdentityModel.Tokens.Jwt-pakken. Det finnes to måter å verifisere gyldigheten av signaturen på.

Løsning 1: X.509-sertifikatkjeden

Deserialisering utføres i henhold til X.509 internasjonale standard, hvor all strukturert informasjon hentes ut fra sertifikatet (som offentlig nøkkel, utsteder, utløpsdato, serienummer osv.), og genereres et X509Certificate2-objekt. Til slutt hentes den skjulte RSA-offentlige nøkkelen inni for å verifisere JWT-tokenet. Koden er som følger:
Som vist nedenfor:



Løsning 2: JsonWebKey

Konverter til sikkerhetsnøkkel: Den identifiserer automatisk algoritmetypen inni. Deretter verifiseres tokenets gyldighet. Koden er som følger:
(Slutt)




Foregående:.NET/C# Hent objektegenskaper, felt og kommentarer basert på Roslyn
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com