|
|
PaskelbtaPrieš 1 minutę
|
|
|
|

Reikalavimai: Prašant API, įtraukiama JWT žetono autentifikavimo informacija. Vidinė sistema turi patikrinti, ar tokeno parašas galioja, tada patikrinti, ar jis pasibaigęs, ar išdavimo informacija ir pan.
JSON Web Key Set URI
jwks_uri (JSON Web Key Set URI) yra standartinis konfigūracijos elementas OAuth 2.0 ir OpenID Connect (OIDC) specifikacijose.
Paprasčiau tariant, tai viešas URL adresas (arba galinis taškas), nurodantis, kur autentifikavimo serveris skelbia savo "viešųjų raktų rinkinį". Standartiniame OIDC procese autentifikavimo serveris pateikia paslaugų paieškos galinį tašką, kuriame yra jwks_uri adresas.
Populiari metafora
Jei autentifikacijos serverio išduotas JWT (arba ID žetonas) yra lyginamas su laišku, pažymėtu fiziniu oficialiu antspaudu, tuomet:
• Privatus raktas: "fizinis antspaudas", užrakintas seife, kurį laiko autentifikavimo serveris, naudojamas antspaudavimui (pasirašymui). • jwks_uri: Tai yra "antspaudo modelio atskleidimo skiltis", kurią oficialioje svetainėje skelbia autentifikavimo serveris. • Trečiosios šalies programa (klientas arba resursų serveris): Gavęs el. laišką, atsisiųskite antspaudo dizainą (viešąjį raktą) iš šio jwks_uri adreso ir palyginkite jį su antspaudu ant laiško, kad įrodytumėte, jog laišką iš tiesų išdavė oficiali įmonė ir jis nebuvo klastotas.
Čia raktų rinkinio naudojimo reikšmė yra:
"sig": Parašas, naudojamas parašams patikrinti arba generuoti, siekiant užtikrinti duomenų vientisumą ir apsaugą nuo klastojimo. "enc": šifravimas, naudojamas duomenims šifruoti arba dešifruoti, taip pat raktų valdymui (raktų šifravimas), siekiant užtikrinti duomenų konfidencialumą.
Kaip parodyta žemiau:
Išanalizuokite JWT informaciją
Pirmiausia įdiekite nuget paketą:System.IdentityModel.Tokens.Jwt, skaito pretenzijų informaciją iš jwt, kodas yra toks:
Išvestis yra tokia:
Nešėjas 1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a
Patikrinkite JWT parašo galiojimą
Vis tiek pirmiausia reikia peržiūrėti System.IdentityModel.Tokens.Jwt paketą. Yra du būdai patikrinti parašo galiojimą.
Sprendimas 1: X.509 sertifikatų grandinė
Deserializacija atliekama pagal X.509 tarptautinį standartą, išgaunant visą struktūrizuotą informaciją iš sertifikato (pvz., viešąjį raktą, išdavėją, galiojimo datą, serijos numerį ir kt.) ir sugeneruojant X509Certificate2 objektą. Galiausiai viduje esantis paslėptas RSA viešasis raktas gaunamas JWT žetonui patikrinti. Kodas yra toks:
Kaip parodyta žemiau:
Sprendimas 2: JsonWebKey
Konvertuoti į saugumo raktą: jis automatiškai identifikuoja viduje esantį algoritmo tipą. Tada patikrinkite žetono galiojimą. Kodas yra toks:
(Pabaiga) |
Ankstesnis:.NET/C# Gaukite objektų savybes, laukus ir komentarus pagal Roslyn
|