JWT Decoder
Understand JWT Decoder
Décode l'en-tête et la charge utile d'un JSON Web Token pour que vous puissiez en lire les revendications, l'algorithme et l'expiration.
How it works
Un JWT est fait de trois segments Base64URL séparés par des points : en-tête, charge utile, signature. Les deux premiers sont encodés et non chiffrés, ce qui explique qu'aucune clé ne soit nécessaire pour les lire — cet outil les décode en Base64URL, analyse le JSON et compare la revendication exp à l'heure actuelle pour signaler l'expiration. Le segment de signature est affiché tel quel et n'est jamais confronté à quoi que ce soit, si bien que rien de ce que vous collez n'est envoyé où que ce soit et qu'aucun secret n'est requis.
When to use it
- Lire sub, scope, aud et iss dans un jeton porteur qu'une API rejette par un 401 ou un 403.
- Distinguer un jeton expiré d'un jeton auquel il manque simplement une revendication exigée par votre service.
- Vérifier quels alg et kid un fournisseur d'identité a utilisés, avant de câbler la vérification contre son JWKS.
- Confirmer qu'un parcours de connexion a bien émis les revendications que lisent réellement vos règles d'autorisation.
- Inspecter un jeton capturé dans l'onglet réseau du navigateur pendant l'analyse d'un bug de permissions.
Watch out for
- Décoder n'est pas vérifier, et un jeton décodé n'est pas un jeton de confiance. N'importe qui peut modifier une charge utile, la réencoder et produire quelque chose qui se décode parfaitement ici. Seul le contrôle de la signature contre la clé de l'émetteur rend une revendication digne d'action.
- Ne laissez jamais un serveur faire confiance au champ alg du jeton. Choisir l'algorithme de vérification d'après l'en-tête est ce qui rend possibles l'attaque alg: none et la rétrogradation de RS256 vers HS256, où un attaquant signe en utilisant la clé publique comme secret HMAC. Figez l'algorithme et la clé attendus dans votre code de vérification.
- La charge utile est lisible par quiconque détient le jeton, y compris l'utilisateur final. La signature protège une revendication contre l'altération ; elle ne la cache aucunement. N'y mettez ni secrets, ni identifiants internes, ni données personnelles.
- exp, iat et nbf s'expriment en secondes depuis l'époque Unix, pas en millisecondes. Une valeur issue de Date.now() en JavaScript placée dans exp reporte l'expiration à des dizaines de milliers d'années, et tout vérificateur conforme l'acceptera.
Not the right tool for: Décider si une requête est autorisée. Cela exige de vérifier la signature et les revendications côté serveur, contre la clé de l'émetteur ; ceci est une aide au débogage pour lire ce qu'un jeton affirme.
Frequently Asked Questions
Décoder un JWT revient-il à le vérifier ?
Non. Le décodage lit le contenu encodé en Base64URL. La vérification contrôle la signature à l'aide d'une clé secrète. N'importe quel JWT peut être décodé sans la clé, mais en production il faut toujours vérifier.
Que contient la charge utile d'un JWT ?
Les revendications courantes de la charge utile comprennent sub (le sujet, l'identifiant utilisateur), iat (date d'émission), exp (date d'expiration), aud (audience) et iss (émetteur). Les revendications personnalisées peuvent contenir n'importe quoi.
Que signifie la revendication exp ?
La revendication exp est un horodatage Unix indiquant le moment où le jeton expire. Cet outil indique, d'après exp, si le jeton est actuellement valide ou expiré.
How to Use JWT Decoder
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.