|
|
Közzétéve1 perce
|
|
|
|

Követelmények: API kérésekor a JWT token hitelesítési információkat is beillesztjük. A háttérrendszernek ellenőriznie kell, hogy a token aláírás érvényes-e, majd ellenőriznie kell, hogy lejárt-e, a kibocsátási adatokat stb.
JSON Web Key Set URI
jwks_uri (JSON Web Key Set URI) egy szabványos konfigurációs elem az OAuth 2.0 és az OpenID Connect (OIDC) specifikációiban.
Egyszerűen fogalmazva, ez egy nyilvános URL-cím (vagy végpont), amely arra mutat, ahol a hitelesítési szerver közzéteszi a "nyilvános kulcskészletet". A szabványos OIDC folyamatban a hitelesítési szerver szolgáltatásfelfedező végpontot biztosít, amely tartalmazza a jwks_uri címet.
Népszerű metaforája
Ha a hitelesítési szerver által kiadott JWT (vagy ID Token) egy fizikai hivatalos pecséttel bélyegzett levélhez hasonlítjuk, akkor:
• Privát kulcs: Az autentifikációs szerver által őrzött széfbe zárt "fizikai pecsét", amelyet aláírásra (bélyegzésre) használnak. • jwks_uri: Ez a "pecséte minta közzétételi szekció", amelyet a hitelesítési szerver közzétesz a hivatalos weboldalon. • Harmadik féltől származó alkalmazás (kliens vagy erőforrás szerver): Az e-mail megérkezése után letöltse a pecséttervezést (nyilvános kulcs) erről a jwks_uri címről, és hasonlítsa össze a levél pecsétjével, hogy bizonyítsa, valóban a hivatalos cég adta ki a levelet, és nem manipulálták.
Itt a kulcsgyűjteményben való használat jelentése a következő:
"sig": Aláírás, amelyet aláírások ellenőrzésére vagy generálására használnak az adatok integritásának és a manipulációmentes védelem érdekében. "enc": Titkosítás, amely adatok titkosítására vagy visszafejtésére, valamint kulcsok kezelésére (kulcstitkosítás) szolgál az adatok titoktartásának biztosítása érdekében.
Ahogy az alábbiakban látható:
Elemzés JWT adatai
Először telepítsd a nuget csomagot:System.IdentityModel.Tokens.Jwt, olvassa a jwt-ből származó igények információit, a kód a következő:
A kimenet a következő:
Hordozó 1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a
Ellenőrizd a JWT aláírás érvényességét
Még mindig először hivatkoznod kell a System.IdentityModel.Tokens.Jwt csomagra. Kétféleképpen ellenőrizheted az aláírás érvényességét.
1. megoldás: X.509 tanúsítványlánc
A deserializáció az X.509 nemzetközi szabvány szerint történik, kinyerve a tanúsítványból minden strukturált információt (például nyilvános kulcsot, kibocsátót, lejárati dátumot, sorozatszámot stb.), és létrehozva egy X509Certificate2 objektumot. Végül a rejtett RSA nyilvános kulcsot megszerezzük a JWT token ellenőrzésére. A kód a következő:
Ahogy az alábbiakban látható:
2. megoldás: JsonWebKey
Biztonsági kulcsra konvertálás: Automatikusan azonosítja az algoritmus típusát belül. Ezután ellenőrizzük a token érvényességét. A kód a következő:
(Vége) |
Előző:.NET/C# Szerezzen objektumtulajdonságokat, mezőket és kommenteket Roslyn alapján
|