Vai al contenuto
100% locale

Generatore di verificatore e sfida PKCE

Genera un code_verifier crittograficamente casuale e il suo code_challenge corrispondente per OAuth 2.0 PKCE.

43
Uscita

Generatore di verificatore e sfida PKCE

Questo strumento genera un code_verifier PKCE e il suo code_challenge corrispondente per il flusso Authorization Code di OAuth 2.0, seguendo RFC 7636. È progettato per sviluppatori che configurano app a pagina singola, app mobili o qualsiasi client pubblico che non può mantenere in modo sicuro un segreto client e ha bisogno di Proof Key for Code Exchange per proteggere il codice di autorizzazione dall'intercettazione.

Il code_verifier è una stringa casuale crittograficamente sicura costruita solo con caratteri non riservati di RFC 3986 (A–Z, a–z, 0–9, "-", ".", "_", "~"), con una lunghezza tra 43 e 128 caratteri — scegli la lunghezza esatta con il cursore. Il metodo di sfida controlla come viene derivato code_challenge: S256 esegue l'hash del verificatore con SHA-256 e codifica in base64url il digest, ed è quello che tutte le guide OAuth attuali e i server di autorizzazione si aspettano. Il metodo plain copia semplicemente il verificatore nella sfida senza modifiche; esiste nella specifica per i client con risorse limitate che non possono calcolare SHA-256, non offre protezione contro l'intercettazione, e questo strumento lo contrassegna di conseguenza.

L'output include il code_verifier e code_challenge grezzi, il metodo che hai scelto, e una stringa di query pronta all'uso — code_challenge=...&code_challenge_method=... — che puoi inserire direttamente in un URL di richiesta di autorizzazione. Ricorda il verificatore separatamente: appartiene alla richiesta di token successiva, non a quella di autorizzazione, e una coppia nuova dovrebbe essere generata per ogni tentativo di accesso anziché essere riutilizzata.

Tutta la generazione avviene localmente nel tuo browser, utilizzando l'API Web Crypto per una fonte casuale crittograficamente sicura e l'implementazione SHA-256 — nulla viene caricato o registrato da nessuna parte. Fai clic su "Genera una nuova coppia" per un verificatore e sfida nuovi, copia l'output, o scaricalo come file .txt.

FAQ

Che cos'è PKCE e perché ne ho bisogno?
PKCE (Proof Key for Code Exchange, RFC 7636) protegge il flusso Authorization Code di OAuth 2.0 per i client che non possono mantenere un segreto, come le app a pagina singola e le app mobili. Lega la richiesta di autorizzazione alla richiesta di token con un segreto casuale in modo che un codice di autorizzazione rubato non possa essere riscattato da qualcun altro.
Devo scegliere S256 o plain?
Usa S256 a meno che il tuo client non possa veramente calcolare SHA-256. Con plain, code_challenge è identico a code_verifier, quindi un attaccante che intercetta la richiesta di autorizzazione ha già tutto ciò che serve per scambiare il codice — S256 è quello che i server di autorizzazione moderni si aspettano e spesso l'unico metodo che accettano.
Posso riutilizzare lo stesso verificatore e sfida per più accessi?
No. Genera una nuova coppia per ogni tentativo di autorizzazione. Il verificatore è destinato a essere un segreto una tantum legato a un singolo flusso, non un valore fisso che la tua app inserisce nel codice.
Dove vanno rispettivamente code_verifier e code_challenge?
code_challenge e code_challenge_method vanno nell'URL della richiesta di autorizzazione iniziale. code_verifier viene inviato in seguito, nella richiesta di token che scambia il codice di autorizzazione per i token — mantienilo in memoria o nell'archiviazione della sessione del client fino ad allora.
Il verificatore generato viene caricato da qualche parte?
No. La generazione viene eseguita interamente nel tuo browser utilizzando l'API Web Crypto. Nulla viene inviato a un server, registrato o archiviato al di là della tua sessione.