|
|
Publicētspirms 1 minūtes
|
|
|
|

Prasības: Pieprasot API, tiks iekļauta JWT tokena autentifikācijas informācija. Aizmugures sistēmai jāpārbauda, vai tokena paraksts ir derīgs, pēc tam jāpārliecinās, vai tas ir beidzies, vai informācija par izsniegšanu utt.
JSON tīmekļa atslēgu kopas URI
jwks_uri (JSON Web Key Set URI) ir standarta konfigurācijas vienība OAuth 2.0 un OpenID Connect (OIDC) specifikācijās.
Vienkārši sakot, tā ir publiska URL adrese (vai galapunkts), kas norāda uz vietu, kur autentifikācijas serveris publicē savu "publisko atslēgu kopu". Standarta OIDC procesā autentifikācijas serveris nodrošina servisa atklāšanas galapunktu, kurā ir jwks_uri adrese.
Tās populārā metafora
Ja autentifikācijas servera izsniegtais JWT (vai ID tokens) tiek salīdzināts ar vēstuli, kas apzīmogota ar fizisku oficiālu zīmogu, tad:
• Privātā atslēga: "Fiziskais zīmogs", kas ir ieslēgts autentifikācijas servera seifā, ko izmanto zīmogošanai (parakstīšanai). • jwks_uri: Šī ir "zīmoga parauga atklāšanas sadaļa", ko oficiālajā tīmekļa vietnē publicē autentifikācijas serveris. • Trešās puses lietotne (klients vai resursu serveris): Pēc e-pasta saņemšanas lejupielādējiet zīmoga dizainu (publisko atslēgu) no šīs jwks_uri adreses un salīdziniet to ar zīmogu uz vēstules, lai pierādītu, ka vēstuli patiešām izdevis oficiālais uzņēmums un tā nav manipulēta.
Šeit atslēgu kolekcijā lietojuma nozīme ir:
"sig": Paraksts, ko izmanto parakstu pārbaudei vai ģenerēšanai, lai nodrošinātu datu integritāti un aizsardzību pret manipulācijām. "enc": Šifrēšana, ko izmanto datu šifrēšanai vai atšifrēšanai, kā arī atslēgu pārvaldībai (atslēgu šifrēšana), lai nodrošinātu datu konfidencialitāti.
Kā parādīts zemāk:
Analīze par JWT
Vispirms instalējiet nuget pakotni:System.IdentityModel.Tokens.Jwt, nolasa prasību informāciju no jwt, kods ir šāds:
Rezultāts ir šāds:
Nēsātājs 1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a
Pārbaudīt JWT paraksta derīgumu
Jums joprojām vispirms jāatsaucas uz System.IdentityModel.Tokens.Jwt pakotni. Ir divi veidi, kā pārbaudīt paraksta derīgumu.
Risinājums 1: X.509 sertifikātu ķēde
Deserializācija tiek veikta saskaņā ar X.509 starptautisko standartu, iegūstot visu strukturēto informāciju no sertifikāta (piemēram, publisko atslēgu, izdevēju, derīguma termiņu, sērijas numuru utt.) un ģenerējot X509Certificate2 objektu. Visbeidzot, tiek iegūta slēptā RSA publiskā atslēga, lai pārbaudītu JWT tokenu. Kods ir šāds:
Kā parādīts zemāk:
Risinājums 2: JsonWebKey
Konvertēt uz drošības atslēgu: Tā automātiski identificē algoritma tipu iekšpusē. Pēc tam pārbaudiet tokena derīgumu. Kods ir šāds:
(Beigas) |
Iepriekšējo:.NET/C# Iegūstiet objektu īpašības, laukus un komentārus, balstoties uz Roslyn
|