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