|
|
Julkaistu1 minuutti sitten
|
|
|
|

Vaatimukset: API:ta pyydettäessä JWT-tokenin todennustiedot sisällytetään. Taustajärjestelmän täytyy varmistaa, onko token-allekirjoitus pätevä, sitten varmistaa, onko se vanhentunut, liikkeeseenlaskutiedot jne.
JSON Web Key Set URI
jwks_uri (JSON Web Key Set URI) on OAuth 2.0:n ja OpenID Connect (OIDC) -määrittelyjen standardi.
Yksinkertaisesti sanottuna se on julkinen URL-osoite (tai päätepiste), joka osoittaa paikkaan, jossa autentikointipalvelin julkaisee "julkisen avaimensa". Tavallisessa OIDC-prosessissa todennuspalvelin tarjoaa palvelun löytämispäätepisteen, joka sisältää jwks_uri-osoitteen.
Sen suosittu metafora
Jos todennuspalvelimen myöntämä JWT (tai ID Token) verrataan fyysisellä virallisella sinetillä leimattuun kirjeeseen, niin:
• Yksityinen avain: "fyysinen sinetti", joka lukitaan tunnistautumispalvelimen säilyttämään kassakaappiin ja jota käytetään leimaamiseen (allekirjoitukseen). • jwks_uri: Tämä on "sinettikuvion paljastusosio", jonka autentikointipalvelin julkaisee virallisella verkkosivustolla. • Kolmannen osapuolen sovellus (asiakas tai resurssipalvelin): Sähköpostin saatuaan lataa sinettimalli (julkinen avain) tästä jwks_uri-osoitteesta ja vertaa sitä kirjeen leimaan todistaaksesi, että kirje on todellakin virallisen yrityksen myöntämä eikä siihen ole peukaloiteltu.
Tässä avainkokoelman käytön merkitys on:
"sig": Allekirjoitus, jota käytetään allekirjoitusten varmistamiseen tai luomiseen tietojen eheyden ja väärentämisen suojan varmistamiseksi. "enc": Salaus, jota käytetään datan salaamiseen tai purkamiseen sekä avainten hallintaan (Key Encryption) tietojen luottamuksellisuuden varmistamiseksi.
Kuten alla on esitetty:
Jäsennä JWT-tiedot
Asenna ensin nuget-paketti:System.IdentityModel.Tokens.Jwt, lukee vaatimukset jwt:stä, koodi on seuraava:
Tulos on seuraava:
Kantaja 1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a
Varmista JWT-allekirjoituksen aitous
Sinun täytyy silti ensin viitata System.IdentityModel.Tokens.Jwt -pakettiin. Allekirjoituksen pätevyys voi varmistaa kahdella tavalla.
Ratkaisu 1: X.509-sertifikaattiketju
Deserialisointi suoritetaan X.509-kansainvälisen standardin mukaisesti, poimimalla kaikki rakenteelliset tiedot varmenteesta (kuten julkinen avain, liikkeeseenlaskija, vanhenemispäivä, sarjanumero jne.) ja luoden X509Certificate2-objektin. Lopuksi piilotettu RSA-julkinen avain saadaan sisältä JWT-tokenin varmentamiseksi. Koodi on seuraava:
Kuten alla on esitetty:
Ratkaisu 2: JsonWebKey
Muunna Security Keyksi: Se tunnistaa automaattisesti algoritmityypin sisällä. Sen jälkeen varmistetaan tokenin pätevyys. Koodi on seuraava:
(Loppu) |
Edellinen:.NET/C# Hanki objektin ominaisuuksia, kenttiä ja kommentteja Roslynin perusteella
|