Verificare un token Auth0, Keycloak o Entra ID
Recupera il JWKS pubblicato al jwks_uri del tuo provider (ad esempio /.well-known/jwks.json), incollalo con il token e conferma che la firma RS256 corrisponda a una chiave pubblicata.
Valida un JSON Web Token: firma HS256/384/512 con il segreto condiviso, RS, PS o ES 256/384/512 con una chiave pubblica JWK, JWKS (scelta tramite kid) o PEM, poi controllo delle date con tolleranza dell’orologio, dell’emittente e dell’audience attesi.
HS256, HS384, HS512: il segreto condiviso. RS, PS ed ES: la chiave pubblica in JWK, JWKS (scelta tramite kid) o PEM «BEGIN PUBLIC KEY».
Imposta l’algoritmo per una validazione simile alla produzione. La modalità automatica serve soprattutto per l’ispezione.
algtypkidisssubaudexpiatnbfIl verificatore JWT ti dice se un token è autentico e ancora accettabile: controlla la sua firma crittografica e poi i claim. È pensato per sviluppatori back-end, integratori OAuth/OpenID Connect e team di sicurezza che vogliono confermare che un token sia stato firmato dalla chiave giusta prima di cercare il bug altrove. Per leggere soltanto il contenuto di un token basta il decoder JWT.
La firma di un JWS (RFC 7515) è calcolata sulla stringa «header.payload» in Base64URL; gli algoritmi sono definiti dalla RFC 7518. Per HS256, HS384 e HS512 lo strumento ricalcola un HMAC con il segreto condiviso e lo confronta con la firma. Per RS256/384/512 (RSASSA-PKCS1-v1_5), PS256/384/512 (RSASSA-PSS) ed ES256/384/512 (ECDSA su P-256, P-384 e P-521) verifica la firma con la chiave pubblica tramite la Web Crypto API; in ECDSA la firma JWS è la concatenazione diretta R‖S, 64 byte per ES256, non una struttura DER. Un token che dichiara alg: none viene sempre rifiutato.
La chiave pubblica può essere fornita in tre forme: una singola JWK (RFC 7517), un JWKS {"keys":[…]} in cui lo strumento sceglie la chiave il cui kid corrisponde a quello dell’header, oppure un PEM «BEGIN PUBLIC KEY» (SubjectPublicKeyInfo). Per una verifica simile a quella di produzione, seleziona un Algoritmo atteso invece di lasciare la modalità Automatica: così il token non può imporre un altro algoritmo supportato tramite il proprio campo alg. La modalità Automatica resta utile per l’ispezione. Una volta validata la firma, controlla exp e nbf con una tolleranza dell’orologio regolabile (ad esempio 60 secondi per assorbire lo scarto tra server) e, se li indichi, l’emittente iss e l’audience aud attesi. Il risultato indica «valido» o «non valido» con il motivo preciso: firma errata, kid non trovato, token scaduto, non ancora valido, emittente o audience inattesi.
Incolla il token completo. L’algoritmo dichiarato nell’header determina il tipo di chiave atteso: un segreto per HS*, una chiave pubblica per RS*, PS* ed ES*.
Inserisci il segreto condiviso oppure incolla una chiave pubblica JWK, un intero JWKS o un PEM PUBLIC KEY. Con un JWKS la chiave viene scelta automaticamente grazie al kid.
Regola la tolleranza dell’orologio, aggiungi se serve l’emittente e l’audience attesi, poi leggi il risultato valido o non valido con il relativo motivo.
Recupera il JWKS pubblicato al jwks_uri del tuo provider (ad esempio /.well-known/jwks.json), incollalo con il token e conferma che la firma RS256 corrisponda a una chiave pubblicata.
Dopo una rotazione la tua API rifiuta dei token: controlla se il kid dell’header esiste ancora nel JWKS o se il token è stato firmato con una chiave ritirata.
Un microservizio rifiuta i token emessi da un altro: prova il segreto condiviso e l’audience attesa per capire se il problema è la chiave o i claim.
Input
Token JWT: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c; Algoritmo atteso: HS256; Segreto o chiave pubblica: chiave-errataRisultato
Token rifiutato: Firma non valida: il token è stato modificato o la chiave non corrisponde. Dati del token: sub=1234567890 e iat=1516239022, senza il campo exp.Decodificare significa leggere header e payload codificati in Base64URL, senza alcuna chiave. Verificare significa ricalcolare o controllare la firma con il segreto o la chiave pubblica dell’emittente, poi validare exp, nbf, iss e aud. Solo la verifica dimostra che il token non è stato falsificato né modificato.
HS256 è simmetrico: lo stesso segreto firma e verifica. RS256, PS256 ed ES256 sono asimmetrici: l’emittente firma con la sua chiave privata e tu verifichi con la chiave pubblica, di solito pubblicata in un JWKS. Per verificare non ti serve mai la chiave privata.
Il kid (key ID) indica quale chiave del JWKS ha firmato il token, così l’emittente può pubblicare più chiavi durante una rotazione. Quando incolli un JWKS, lo strumento seleziona la chiave con il kid corrispondente. Se nessun kid corrisponde, la chiave è probabilmente stata ritirata o il JWKS non proviene dall’emittente giusto.
Le cause più comuni sono una chiave sbagliata (altro ambiente, chiave ritirata), un segreto codificato male, un token modificato o troncato, oppure una chiave che non corrisponde all’algoritmo dichiarato. Sul server imponi sempre l’algoritmo atteso invece di fidarti del campo alg, per evitare gli attacchi di confusione dell’algoritmo descritti nella RFC 8725.
È un margine aggiunto nel controllo di exp e nbf per compensare una piccola differenza tra l’orologio dell’emittente e quello del verificatore. Con 60 secondi di tolleranza, un token scaduto da 30 secondi viene ancora accettato. La maggior parte delle librerie usa un valore tra 0 e 5 minuti.
Una chiave pubblica non è segreta e puoi incollarla senza rischi. Un segreto HMAC invece lo è: qui la verifica avviene nel tuo browser con la Web Crypto API e nulla viene trasmesso, ma evita comunque di usare un segreto di produzione su un computer condiviso.
Flusso di lavoro consigliato
Scopri gli strumenti che si integrano naturalmente prima, dopo o insieme a questo.
Decodifica un JWT per leggere header, payload, claim e date di scadenza.
Analizza una chiave JWK o un JWKS: kid, kty, alg, use, impronta RFC 7638 e avviso se una chiave privata è esposta.
Crea e firma un JWT HS256, HS384 o HS512 a partire da un header, un payload JSON e un segreto.
Scopri cosa contiene un JWT, cosa prova davvero la sua firma e perché decodificare un token non equivale a verificarlo.
Comprendi come si collegano OAuth 2.0, PKCE, JWT, JWK e JWKS: autorizzazione, token, chiavi pubbliche e verifica.
Scopri quando usare crittografia, hashing, HMAC o PBKDF2 per riservatezza, integrità, autenticazione e password.
Distingui hash, cifratura e firma e usa le impronte per verificare uguaglianza o integrità senza attribuire false garanzie.