Generatore JWT
Genera JSON Web Token firmati con header, payload e chiave personalizzati. Supporta HS256, RS256, ES256.
Cos'è un JWT?
JWT (JSON Web Token, RFC 7519) è uno standard aperto per trasmettere informazioni in modo sicuro come oggetto JSON compatto. Composto da tre parti separate da punti: Header.Payload.Signature.
Quali sono gli usi comuni del JWT?
JWT è ampiamente usato per autenticazione (single sign-on), autorizzazione API e scambio sicuro di informazioni. Dopo il login, il server emette un JWT che il client include nelle richieste successive.
Come scegliere tra HS256, RS256 e ES256?
HS256 usa un segreto condiviso ed è il più veloce, adatto a servizi singoli. RS256 usa coppie di chiavi RSA, migliore per architetture multi-servizio. ES256 usa chiavi a curva ellittica con firme più corte e alta sicurezza.
Cosa sono i claims JWT?
I claims sono dichiarazioni nel payload. I claims registrati includono iss (emittente), sub (soggetto), exp (scadenza), aud (pubblico). I claims pubblici possono essere registrati presso IANA. I claims privati sono campi personalizzati.
Come verifico un JWT?
Decodifica l'header per ottenere l'algoritmo, poi usa la chiave appropriata (segreto condiviso per HMAC, chiave pubblica per RSA/ECDSA) per verificare la firma. Controlla anche exp, iss e aud.
È sicuro generare JWT nel browser?
Sì, questo strumento usa la Web Crypto API. Le tue chiavi e token non lasciano mai il browser. Nessun dato viene inviato a server.
Qual è la differenza tra codifica e firma?
La codifica (Base64) converte semplicemente i dati in un formato trasmissibile ed è reversibile da chiunque. La firma crea un hash crittografico che prova che il token non è stato manomesso.
Un JWT può essere cifrato?
Sì, JWE (JSON Web Encryption) cifra il contenuto del payload. Il JWT standard (JWS) garantisce solo l'integrità, ma il payload è leggibile da chiunque possieda il token.
Quali sono le best practice di sicurezza per JWT?
Imposta sempre tempi di scadenza brevi. Usa segreti forti e casuali per HMAC. Conserva le chiavi private in modo sicuro. Non mettere dati sensibili nel payload. Usa HTTPS in produzione.
Come si confronta JWT con l'autenticazione basata su sessioni?
JWT è senza stato — il server non memorizza dati di sessione, ideale per microservizi e scenari cross-domain. Le sessioni richiedono archiviazione server ma consentono revoca immediata.
JWT è adatto per il logout e la gestione sessioni?
JWT è senza stato per design, quindi il logout richiede meccanismi aggiuntivi come blacklist o token a breve durata con refresh token. Usa token di accesso a breve durata (es. 15 minuti).
Come funziona il pattern refresh token con JWT?
Usa un token di accesso a breve durata (JWT) per le chiamate API e un refresh token a durata maggiore per ottenere nuovi token di accesso. Quando il token scade, il client invia il refresh token per ottenere un nuovo JWT.
Cos'è l'algoritmo "none"?
L'algoritmo "none" significa che il JWT non è firmato. Usalo solo per test. Molte librerie lo disabilitano di default per sicurezza.
Ci sono limiti di dimensione per JWT?
JWT non ha un limite di dimensione fisso, ma poiché viene inviato nelle header HTTP, dovrebbe rimanere sotto 4KB. Mantieni il payload minimale.