Outils de développement · Décodeur JWT
Débogage d'un 401 : que vérifier dans un JWT décodé avant de blâmer l'API Authentification
· Pourquoi c'est important
jwt débogage authentification
La plupart des rejets de jetons se résument à une poignée de problèmes de réclamation que vous pouvez repérer en lisant la charge utile. Cet article donne une liste de contrôle, de l'expiration à l'audience jusqu'aux erreurs de copier-coller, afin de les vérifier.
Cela a fonctionné hier – le 401 qui apparaît sans changement de code
Un 401 qui apparaît sans modification du code client peut provenir de l'âge du jeton, de la politique de l'émetteur, de la rotation des clés, de la sélection de l'audience ou d'une copie endommagée. Commencez par des preuves plutôt que de supposer que l'API est en panne. Conservez les détails de la réponse et les identifiants de corrélation avant de manipuler les informations d’identification.
Décodez uniquement une copie expirée, synthétique ou correctement contrôlée. ToolAcre peut exposer des indices structurels et des réclamations, mais il ne peut pas identifier chaque rejet de serveur car il ne dispose pas de clé, de politique d'émetteur ou de journaux d'API. La liste de contrôle restreint les questions ; il ne remplace pas le verdict du serveur de ressources.
Copiez d'abord les erreurs - préfixes 'Bearer', nouvelles lignes de fin et jetons tronqués
Vérifiez d'abord la valeur copiée. ToolAcre supprime les espaces environnants et supprime un préfixe `Bearer ` insensible à la casse, qui gère un collage d'en-tête d'autorisation commun. Il nécessite alors exactement trois segments séparés par des points. Un décompte erroné indique une troncature, une forme de jeton incorrecte ou une ponctuation supplémentaire avant le début de l'analyse de la réclamation.
Un en-tête ou une charge utile vide échoue spécifiquement. URL base64 invalide, UTF-8 invalide et JSON invalide ont des erreurs distinctes. Ces distinctions permettent de déterminer si le transport a endommagé le jeton. La signature peut être mal formée sans bloquer l'inspection, mais cet avertissement reste un échec de vérification probable nécessitant une confirmation côté serveur.
exp et nbf : inspectez les valeurs basées sur les secondes sans transformer l'affichage en verdict de validité
Inspectez ensuite les valeurs numériques `exp` et `nbf`. ToolAcre multiplie les secondes par 1,000, affiche UTC et étiquette une expiration antérieure ou future pas-avant par rapport à l'horloge du navigateur. Une valeur à treize chiffres peut révéler que les millisecondes ont été écrites là où les secondes étaient attendues.
Ne faites pas la promotion de ces étiquettes auprès des autorités. Un jeton contrefait peut revendiquer une expiration future et le serveur peut utiliser une politique d'horloge ou de marge de manœuvre différente. L'affichage identifie les calculs arithmétiques qui méritent d'être comparés aux journaux fiables ; la vérification cryptographique doit réussir avant que les revendications puissent influencer l'acceptation.
aud et iss : ce jeton est-il destiné à cette API et provient-il de l'émetteur auquel cette API fait confiance ?
`aud` doit identifier le destinataire prévu selon la politique de l'API, tandis que `iss` doit correspondre à la relation avec l'émetteur de confiance. ToolAcre répertorie les deux valeurs décodées et explique leurs significations enregistrées. Il ne les compare pas à une configuration d'API et ne lie pas une chaîne d'émetteur à un ensemble de clés.
Une URL d'émetteur et un nom d'audience plausibles peuvent être fabriqués. Comparez les valeurs exactes décodées avec les attentes configurées du serveur uniquement après avoir préservé la limite de vérification de signature. Si plusieurs services partagent une infrastructure d’identité, les contrôles d’audience sont particulièrement importants pour empêcher qu’un jeton valide pour un service soit utilisé sur un autre.
Le type de jeton peut être suggéré par les en-têtes et les revendications, mais le décodage ne peut pas authentifier cette classification.
Un jeton d'identification et un jeton d'accès peuvent tous deux ressembler à des JWT en trois parties. L'en-tête `typ`, l'audience, la portée et les revendications spécifiques au profil peuvent suggérer lequel vous détenez. ToolAcre avertit d'une chaîne inattendue `typ`, mais il n'implémente pas la classification des jetons OpenID Connect ou OAuth.
Utilisez la documentation de l'émetteur et le flux client pour établir le type de jeton attendu. L'envoi d'un jeton d'identification à une API peut échouer même lorsque sa signature est valide pour le fournisseur d'identité. Le décodage soutient le diagnostic ; il ne peut pas authentifier l'étiquette de type ni accorder l'autorité API.
kid après la rotation des clés : un jeton valide qui fait référence à une clé que le serveur n'a plus
Après la rotation des clés, un en-tête `kid` peut faire référence à une clé absente de l'ensemble de confiance actuel du serveur. Lisez l'identifiant, puis inspectez les journaux de cache et d'ensemble de clés sur le vérificateur. Ne récupérez pas une URL fournie par l'en-tête et n'acceptez pas les éléments de clé intégrés comme solution de contournement rapide.
Un jeton correctement signé peut toujours échouer si le vérificateur ne parvient pas à localiser la clé autorisée, tandis qu'un attaquant peut écrire n'importe quel `kid` dans un en-tête non vérifié. La valeur est un indice de recherche limité par la configuration de l'émetteur de confiance, et non une preuve qu'une clé particulière doit être crue.
Exemple fonctionnel : exécution d'un jeton rejeté via la liste de contrôle du décodeur ToolAcre JWT
Pour un tri réussi, prenez un jeton rejeté contrôlé, confirmez trois segments, inspectez les erreurs, puis enregistrez `exp`, `nbf`, `aud`, `iss`, `typ` et `kid` sans le modifier. Comparez chaque champ avec l'API cible de la demande et la configuration approuvée du vérificateur. Gardez les journaux du serveur ouverts pour la catégorie d'échec réelle.
Si toutes les valeurs visibles semblent attendues, n'en concluez pas que l'API est erronée. Une corruption de signature, un mauvais matériel de clé, un état révoqué ou une politique non affichée peuvent toujours expliquer le 401. Le `signatureVerified` de ToolAcre reste faux, quelle que soit la propreté du JSON.
Ce que cela ne couvre pas et ce qu'il faut retenir : un décodeur ne peut pas vous dire si la signature est valide ; la liste de contrôle détecte les problèmes de réclamation et les échecs de signature nécessitent des journaux de serveur
Un décodeur ne peut pas vous dire si la signature est valide. Sa liste de contrôle des réclamations détecte les problèmes de copie et de charge utile visibles sans clé ; les échecs de signature et les décisions politiques faisant autorité nécessitent des preuves du serveur. Traitez un décodage comme une observation diagnostique parmi plusieurs.
Le chemin fiable le plus rapide est ordonné : préserver le contexte de réponse, inspecter la forme du jeton, comparer les unités de temps, puis comparer l'émetteur, l'audience, le type et l'identifiant de clé avec une configuration fiable. Arrêtez-vous avant de faire confiance jusqu'à ce que le véritable vérificateur confirme la cryptographie et la politique.