Decodifica intestazione
JSONDopo aver incollato JWT, il contenuto analizzato verrà visualizzato qui.
Esamina l'intestazione e il payload del token Web JSON. Questo strumento non convalida le firme e l'elaborazione rimane nel tuo browser.
Incolla il JWT di seguito per decodificare, ispezionare e verificare immediatamente.
In attesa dell'input del token Web JSON.
Dopo aver incollato JWT, il contenuto analizzato verrà visualizzato qui.
Dopo aver incollato JWT, il contenuto analizzato verrà visualizzato qui.
La firma verrà visualizzata qui dopo la decodifica.
Immettere il segreto da utilizzare durante l'emissione del JWT. La verifica HS256 viene eseguita in modo nativo nel tuo browser.
Modifica l'intestazione e il payload JSON e utilizza la firma HS256.
Preparati a generare JWT.
Questo set di token è adatto per test locali e debugging dello sviluppo.
JWT è un formato token comunemente utilizzato per l'accesso, la verifica API e l'autorizzazione tra servizi. Si compone di tre sezioni: Intestazione, Payload e Firma.
Il contenuto del payload può essere decodificato e letto e le informazioni sensibili non devono essere inserite nelle attestazioni JWT.
Questa pagina supporta la verifica e la generazione della firma HS256, semplificando il controllo se il token dell'ambiente di test viene creato con lo stesso segreto.
Tutta la decodifica, la codifica e la verifica della firma JWT vengono eseguite in modo nativo nel browser.
BASE DI CONOSCENZA SEO JWT
Se stai cercando "JWT Decoder", "JWT Decoder", "JSON Web Token Parsing", "JWT Verify" o "JWT Encoder", di solito significa che hai già un token e devi comprenderne rapidamente l'intestazione, il payload, il tempo di scadenza, l'algoritmo di firma e le attestazioni. Questa pagina non solo fornisce strumenti di decodifica JWT online, ma organizza anche la conoscenza di base di JWT su cui gli sviluppatori chiedono spesso.
JWT è l'abbreviazione di JSON Web Token. È un formato token che utilizza JSON per rappresentare le informazioni e quindi le converte in una stringa semplificata. Viene spesso utilizzato nei siti Web di separazione front-end e back-end, nell'API delle app, nell'accesso dei membri, nell'SSO Single Sign-On, nell'autorizzazione dei microservizi e nello scambio di dati tra servizi.
La decodifica JWT non richiede una password perché l'intestazione e il payload sono solo codificati Base64URL, non crittografati. Chiunque ottenga il token può utilizzare il decoder JWT per vedere il contenuto del payload, quindi le attestazioni non possono contenere password, chiavi API o informazioni personali sensibili.
Il caso d'uso più comune è l'autorizzazione. Dopo che l'utente ha effettuato correttamente l'accesso, il server di autorizzazione emette un JWT. Quando il front-end o l'app chiama successivamente l'API, il token viene inserito nell'intestazione dell'autorizzazione HTTP, ad esempio Autorizzazione: Bearer .
JWT è anche comunemente usato per lo scambio di informazioni. Quando due sistemi devono scambiarsi dati verificabili, le firme consentono al destinatario di confermare che i dati non sono stati alterati durante la trasmissione. L'endpoint JWKS viene comunemente utilizzato nei sistemi di grandi dimensioni per esporre le chiavi pubbliche in modo che diversi servizi possano verificare l'origine del token.
Un JWT standard è solitamente costituito da tre stringhe Base64URL separate da punti: Header.Payload.Signature. La prima sezione di Header descrive il tipo di token e l'algoritmo di firma, la seconda sezione di Payload contiene attestazioni e la terza sezione di Signature viene utilizzata per verificare l'integrità.
Le rivendicazioni registrate più comuni includono iss, sub, aud, exp, nbf, iat e jti. Una buona convalida dell'API solitamente controlla almeno exp, iss e aud.
Il processo tipico è: l'utente accede, autorizza il server a verificare la password dell'account o il risultato dell'accesso di terze parti, quindi emette un token di accesso; il front-end allega il token di accesso alla richiesta API; l'API back-end verifica il token e restituisce i dati protetti.
JWT non è una sostituzione universale della sessione. Una volta emesso, un token può essere generalmente verificato senza controllare il database prima della scadenza. Tuttavia, è ancora necessario progettare la revoca dei token, le modifiche istantanee delle autorizzazioni e l'elaborazione del logout.
La convalida JWT di solito si riferisce al controllo se il token soddisfa le regole previste, ad esempio se ha tre segmenti, se può essere decodificato, se il JSON è legale, se è scaduto, se l'emittente è corretto e se il pubblico è conforme all'API corrente.
La verifica JWT utilizzerà l'algoritmo e la chiave specificati per ricalcolare la firma, quindi confrontarla con la terza firma del token. Essere in grado di comprendere il payload non significa che il token sia affidabile; l'API ufficiale deve essere sottoposta alla verifica del sigillo e alla verifica delle dichiarazioni.
JWT Decode converte il primo e il secondo paragrafo del token in JSON, consentendoti di leggere l'intestazione e il payload. JWT Encode è il processo inverso: preparare Header JSON e Payload JSON, generare Signature e infine combinarli in un token completo.
Se vuoi solo vedere il contenuto del payload, non hai bisogno di un segreto; se vuoi verificare se il token è realmente emesso dal tuo sistema, devi utilizzare la chiave segreta o pubblica corretta per verificare la firma. Attualmente questa pagina supporta HS256.
Quando si utilizza la decodifica JWT online, è necessario verificare anche chi ha emesso il token, a quale sistema è stato emesso, quando diventa effettivo, quando scade e se l'ambito dell'autorizzazione soddisfa i requisiti API. La tabella seguente riassume le affermazioni JWT comuni.
| Richiedi | Significato cinese | Cosa controllare durante il debug |
|---|---|---|
iss | Emittente, emittente | Che si tratti del tuo server di autorizzazione o di un provider di identità affidabile. |
sost | Oggetto, utente o ID entità | Se corrisponde all'utente, membro, account di servizio o dispositivo corretto. |
aud | Pubblico, pubblico simbolico | Se inviarlo all'API corrente; gli errori del pubblico spesso causano 401. |
esp | Tempo di scadenza, tempo di scadenza | Se è scaduto; notare la differenza nel timestamp Unix e nella visualizzazione del fuso orario. |
nbf | Non prima, tempo effettivo | Se il tempo utilizzabile non è ancora raggiunto; Anche la deviazione dell'orario del server influirà su di esso. |
iat | Emesso a, ora di emissione | Corrisponde all'ora effettiva di accesso o al token di aggiornamento. |
jti | ID JWT, ID univoco del token | Se può essere utilizzato per elenchi di revoche, registri di controllo o protezione da attacchi di riproduzione. |
ambito | Ambito dell'autorità | Se esistono le autorizzazioni di lettura, scrittura, amministratore e altre autorizzazioni richieste dall'API. |
alg nell'intestazione JWT indicherà al verificatore quale algoritmo deve essere utilizzato. HS256 è HMAC SHA-256 e sia l'emissione che la verifica utilizzano lo stesso set di segreti; RS256 utilizza la firma della chiave privata RSA e la verifica della chiave pubblica; ES256 utilizza l'algoritmo della curva ellittica.
Il backend dovrebbe specificare chiaramente l'elenco degli algoritmi consentiti per impedire agli aggressori di influenzare il processo di verifica modificando l'intestazione. Se il JWT proviene da un provider di identità, in genere ottieni il JWKS o la chiave pubblica e controlla kid, iss, aud, exp.
I problemi più comuni riscontrati quando si utilizza JWT Decoder sono che il token non è nel formato standard a tre segmenti, la stringa Base64URL viene copiata in modo incompleto, sono presenti spazi bianchi prima e dopo, il payload non è un JSON legale o il segreto della firma viene utilizzato in modo errato. Se l'API restituisce 401 o 403, si consiglia di decodificare prima il JWT e confermare exp, aud e scope.
header.payload.signature a tre segmenti.Bearer.exp è scaduto e se l'ora del server è sincronizzata.iss e aud sono coerenti con l'ambiente corrente.kid.La sessione solitamente salva lo stato nel server o nell'archivio centralizzato e il browser salva solo l'ID della sessione; JWT inserisce parte dello stato nel token, in modo che l'API possa utilizzare la firma per verificarne l'integrità. SAML è basato su XML ed è comunemente utilizzato nell'SSO aziendale.
| Piano | Adatto alla situazione | Cose da notare |
|---|---|---|
| JWT | Autorizzazione API, token di accesso SSO, microservizi | È necessario controllare la scadenza, la verifica del sigillo, la revoca e la fuga di informazioni sensibili. |
| Sessione | Siti Web tradizionali che richiedono la disconnessione immediata o il controllo centralizzato dello stato | È richiesto un archivio sessioni lato server e l'espansione tra servizi richiede una progettazione aggiuntiva. |
| SAML | Integrazione dell'identità aziendale, sistemi SSO legacy | Le strutture XML sono più grandi e le firme e le impostazioni sono generalmente più complesse. |
exp ragionevole e non rendere valido il token di accesso per un lungo periodo.alg dell'intestazione.iss, aud, nbf, iat con le richieste di autorizzazione necessarie.Questo strumento di decodifica JWT online utilizza l'elaborazione nativa del browser: il token, il segreto, l'intestazione JSON e il payload JSON che incolli non verranno caricati sul server ToolBoy. Anche così, il principio della divulgazione minima dovrebbe essere comunque seguito quando si tratta di token di produzione reali.
JWT appare spesso nel processo di debug dell'API insieme a JSON, Base64URL, query URL, timestamp, SHA-256, UUID, regex e altri formati di dati. Puoi utilizzare lo strumento di formattazione JSON di ToolBoy, la codifica e decodifica Base64, la conversione timestamp Unix o Generatore UUID.
Per ulteriori approfondimenti, fare riferimento all'Introduzione al JSON Web Token di jwt.io e alla RFC 7519. Il contenuto di questa pagina è stato riorganizzato e riscritto in cinese, concentrandosi su debug pratico, SEO white hat e privacy nativa.