Strumenti per sviluppatori · Decodificatore JWT
Debug di un 401: cosa controllare in un JWT decodificato prima di incolpare API
· Perché è importante
jwt debug autenticazione
La maggior parte dei rifiuti dei token si riduce a una serie di problemi di reclamo che puoi individuare leggendo il payload. Questo post fornisce una checklist, dalla scadenza all'audience agli errori di copia-incolla, per poterli controllare.
Ha funzionato ieri: 401 che appare senza alcuna modifica del codice
Un 401 che appare senza una modifica del codice client può avere origine nell'età del token, nella politica dell'emittente, nella rotazione delle chiavi, nella selezione del pubblico o in una copia danneggiata. Inizia con le prove anziché dare per scontato che API sia inattivo. Conservare i dettagli della risposta e gli identificatori di correlazione prima di manipolare la credenziale.
Decodifica solo una copia scaduta, sintetica o opportunamente controllata. ToolAcre può esporre indizi strutturali e di reclamo, ma non può identificare ogni rifiuto del server perché non dispone di chiave, politica dell'emittente o log API. La lista di controllo restringe le domande; non sostituisce il verdetto del server delle risorse.
Copia prima gli errori: prefissi 'Bearer', ritorni a capo finali e token troncati
Controllare prima il valore copiato. ToolAcre taglia gli spazi bianchi circostanti e rimuove un prefisso `Bearer ` senza distinzione tra maiuscole e minuscole, che gestisce un comune incollamento dell'intestazione di autorizzazione. Quindi richiede esattamente tre segmenti separati da punti. Un conteggio errato indica un troncamento, una forma errata del token o una punteggiatura aggiuntiva prima che inizi l'analisi delle rivendicazioni.
Un'intestazione o un payload vuoto falliscono in modo specifico. Base64url non valido, UTF-8 non valido e JSON non valido presentano errori separati. Queste distinzioni aiutano a determinare se il trasporto ha danneggiato il token. La firma potrebbe essere errata senza bloccare l'ispezione, ma tale avviso rimane un probabile errore di verifica che richiede una conferma da parte del server.
exp e nbf: esamina i valori basati sui secondi senza trasformare la visualizzazione in un verdetto di validità
Successivamente, controlla i valori numerici `exp` e `nbf`. ToolAcre moltiplica i secondi per 1,000, mostra UTC ed etichetta una scadenza precedente o futura non prima rispetto all'orologio del browser. Un valore di tredici cifre può rivelare che i millisecondi sono stati scritti dove erano previsti i secondi.
Non promuovere queste etichette per l'applicazione. Un token contraffatto può richiedere una scadenza futura e il server potrebbe utilizzare un orologio o una politica di margine diversa. La visualizzazione identifica l'aritmetica che vale la pena confrontare con i registri attendibili; la verifica crittografica deve avere successo prima che le affermazioni possano influenzare l'accettazione.
aud e iss: questo token è per questo API, proveniente dall'emittente di cui questo API si fida?
`aud` dovrebbe identificare il destinatario previsto in base alla politica di API, mentre `iss` dovrebbe corrispondere alla relazione con l'emittente attendibile. ToolAcre elenca entrambi come valori decodificati e ne spiega i significati registrati. Non li confronta con una configurazione API né associa una stringa dell'emittente a un set di chiavi.
È possibile inventare un emittente plausibile URL e un nome del pubblico. Confronta i valori esatti decodificati con le aspettative configurate del server solo dopo aver preservato il limite di verifica della firma. Se diversi servizi condividono l'infrastruttura di identità, i controlli del pubblico sono particolarmente importanti per impedire che un token valido per un servizio venga utilizzato in un altro.
Il tipo di token può essere suggerito da intestazioni e attestazioni, ma la decodifica non può autenticare tale classificazione
Un token ID e un token di accesso possono entrambi apparire come JWT in tre parti. L'intestazione `typ`, il pubblico, gli ambiti e le rivendicazioni specifiche del profilo possono suggerire quale detieni. ToolAcre avvisa di una stringa imprevista `typ`, ma non implementa OpenID Connect o la classificazione dei token OAuth.
Utilizza la documentazione dell'emittente e il flusso del client per stabilire il tipo di token previsto. L'invio di un token ID a un API può non riuscire anche quando la sua firma è valida per il provider di identità. La decodifica supporta la diagnosi; non può autenticare l'etichetta del tipo o concedere l'autorità API.
kid dopo la rotazione della chiave: un token valido che fa riferimento a una chiave che il server non possiede più
Dopo la rotazione della chiave, un'intestazione `kid` può fare riferimento a una chiave assente dall'attuale set attendibile del server. Leggere l'identificatore, quindi ispezionare la cache e i log del set di chiavi sul verificatore. Non recuperare un URL fornito dall'intestazione né accettare il materiale della chiave incorporata come soluzione rapida.
Un token firmato correttamente potrebbe comunque fallire se il verificatore non riesce a individuare la chiave consentita, mentre un utente malintenzionato può scrivere qualsiasi `kid` in un'intestazione non verificata. Il valore è un suggerimento per la ricerca limitato dalla configurazione dell'emittente attendibile, non la prova che si debba credere a una chiave particolare.
Esempio funzionante: esecuzione di un token rifiutato tramite l'elenco di controllo nel decodificatore ToolAcre JWT
Per un triage funzionante, prendi un token rifiutato controllato, conferma tre segmenti, controlla gli errori, quindi registra `exp`, `nbf`, `aud`, `iss`, `typ` e `kid` senza modificarlo. Confronta ciascun campo con il target della richiesta API e la configurazione attendibile del verificatore. Mantieni aperti i log del server per la categoria di errore effettiva.
Se tutti i valori visibili sembrano previsti, non concludere che API sia sbagliato. La corruzione della firma, il materiale della chiave errato, lo stato revocato o la policy non mostrata possono comunque spiegare 401. `signatureVerified` di ToolAcre rimane falso indipendentemente da quanto sia ordinato JSON.
Cosa non copre e conclusione: un decodificatore non può dirti se la firma è valida; l'elenco di controllo rileva i problemi relativi alle richieste e gli errori di firma richiedono i registri del server
Un decodificatore non può dirti se la firma è valida. La sua lista di controllo dei reclami rileva problemi di copia e carico utile visibili senza una chiave; gli errori di firma e le decisioni politiche autorevoli necessitano di prove sul server. Trattare una decodifica come un'osservazione diagnostica tra diverse.
Viene ordinato il percorso affidabile più rapido: preservare il contesto della risposta, ispezionare la forma del token, confrontare le unità di tempo, quindi confrontare emittente, pubblico, tipo e identificatore chiave con la configurazione attendibile. Fermati prima della fiducia finché il vero verificatore non conferma la crittografia e la politica.