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

Vista: 1|Risposta: 0

Comprendere le code_challenge e le code_vertifier del PKCE in OIDC

[Copiato link]
Pubblicato su19 secondi fa | | | |
OAuth 2.0 offre molteplici modalità di autorizzazione, tra cui l'Authorization Code Grant è la più comunemente utilizzata e sicura. code_challenge è una funzione potenziata dalla sicurezza all'interno di questa modalità, utilizzata principalmente per il meccanismo PKCE (Proof Key for Code Exchange).

Cos'è il PKCE?

PKCE (Proof Key for Code Exchange) è un'estensione progettata per migliorare la sicurezza del modello di codice di autorizzazione OAuth 2.0, specialmente quando utilizzato in client pubblici come applicazioni JavaScript o app mobili in esecuzione nei browser. Il PKCE previene che i codici di autorizzazione vengano intercettati e usati in modo improprio aggiungendo un passaggio aggiuntivo di autenticazione alle richieste di autorizzazione.

code_challenge Ruolo

code_challenge fa parte del meccanismo PKCE, generato e inviato durante la fase di richiesta di autorizzazione. Si basa su un valore segreto (chiamato code_verifier), trasformato da un algoritmo di hashing come S256. Lo scopo di code_challenge è fornire una base di validazione per le richieste di token successive senza esporre direttamente il code_verifier.

Generazione e utilizzo di code_challenge e code_verifier

Generazione code_verifier:
code_verifier è una stringa ad alta entropia generata casualmente,Lunghezza del carattere (tra 43 e 128). Il valore predefinito è 43。

Generazione code_challenge:
Usando code_verifier, code_challenge viene generato tramite un algoritmo di hashing (come S256). Per S256, code_challenge è la codifica URL Base64 del valore hash code_verifier SHA-256, ma il carattere di riempimento = dalla codifica deve essere rimosso e la lunghezza di output deve essere di 43 caratteri (poiché dopo la codifica URL di Base64, ogni 4 caratteri rappresenta 3 byte, ma l'ultimo blocco di caratteri può essere inferiore a 4 caratteri, quindi la lunghezza può variare leggermente dopo la rimozione di = caratteri).

Usa code_challenge nelle richieste di autorizzazione:
Quando si avvia una richiesta di autorizzazione, code_challenge viene inviata come uno dei parametri della richiesta al server di autorizzazione.

Utilizzo code_verifier nelle richieste di token:
Quando il server di autorizzazione restituisce il codice di autorizzazione, il client utilizza questo codice insieme al code_verifier generato precedentemente per richiedere l'accesso all'endpoint del token. Il server di autorizzazione verifica se il code_challenge e code_verifier corrispondono, assicurandosi che la richiesta venga avviata dal client originale.

Generazione PKCE

Strumenti online per la generazione PKCE:Il login del link ipertestuale è visibile.

Il codice C# viene generato come segue:
Come mostrato di seguito:



Riferimento:

Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.




Precedente:.NET/C# Due metodi per verificare la validità della firma del token JWT
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