Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 2|Risposta: 0

[Fonte] .NET/C# Due metodi per verificare la validità della firma del token JWT

[Copiato link]
Pubblicato su1 minuto fa | | | |
Requisiti: Quando si richiede un'API, saranno incluse le informazioni di autenticazione del token JWT. Il backend deve verificare se la firma del token è valida, poi verificare se è scaduta, le informazioni di emissione, ecc.

URI del set di chiavi web JSON

jwks_uri (JSON Web Key Set URI) è un elemento di configurazione standard nelle specifiche OAuth 2.0 e OpenID Connect (OIDC).

In parole semplici, è un indirizzo URL pubblico (o endpoint) che punta al punto in cui il server di autenticazione pubblica il suo "set di chiavi pubbliche". Nel processo standard OIDC, il server di autenticazione fornisce un endpoint di scoperta del servizio contenente l'indirizzo jwks_uri.

La sua metafora popolare

Se il JWT (o ID Token) emesso dal server di autenticazione viene paragonato a una lettera timbriata con un sigillo ufficiale fisico, allora:

• Chiave privata: Il "sigillo fisico" chiuso nella cassaforte detenuta dal server di autenticazione, utilizzato per il timbro (firma).
• jwks_uri: Questa è la "sezione di divulgazione del sigillo" pubblicata sul sito ufficiale dal server di autenticazione.
• Applicazione di terze parti (client o server risorse): Dopo aver ricevuto l'email, scarica il design del sigillo (chiave pubblica) da questo indirizzo jwks_uri e confrontalo con il timbro sulla lettera per dimostrare che la lettera è stata effettivamente emessa dalla società ufficiale e non è stata manipolata.

Qui, il significato di uso nella collezione delle chiavi è:

"sig": Firma, utilizzata per verificare o generare firme al fine di garantire l'integrità dei dati e la protezione a prova di manomissione.
"enc": Crittografia, utilizzata per cifrare o decriptare dati, nonché per gestire le chiavi (Crittografia delle Chiavi) per garantire la riservatezza dei dati.

Come mostrato di seguito:



Analizza le informazioni JWT

Per prima cosa, installa il pacchetto Nuget:System.IdentityModel.Tokens.Jwt, legge le informazioni sulle richieste dal JWT, il codice è il seguente:

L'output è il seguente:
Portatore
1059ec2e-ffa8-4ff5-bc47-f25d7e37aa5a

Verifica la validità della firma JWT

Devi comunque prima fare riferimento al pacchetto System.IdentityModel.Tokens.Jwt. Ci sono due modi per verificare la validità della firma.

Soluzione 1: Catena di Certificati X.509

La deerializzazione viene eseguita secondo lo standard internazionale X.509, estraendo tutte le informazioni strutturate dal certificato (come chiave pubblica, emittente, data di scadenza, numero di serie, ecc.) e generando un oggetto X509Certificate2. Infine, la chiave pubblica RSA nascosta all'interno viene ottenuta per verificare il token JWT. Il codice è il seguente:
Come mostrato di seguito:



Soluzione 2: JsonWebKey

Converti in chiave di sicurezza: identifica automaticamente il tipo di algoritmo all'interno. Successivamente, verifica la validità del token. Il codice è il seguente:
(Fine)




Precedente:.NET/C# Ottenere proprietà, campi e commenti degli oggetti basati su Roslyn
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com