Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 2|Atsakyti: 0

[Šaltinis] .NET/C# Du metodai JWT tokeno parašo galiojimui patikrinti

[Kopijuoti nuorodą]
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
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com