À propos de l’outil Décodeur et vérificateur JWT
Un JSON Web Token (JWT) est une chaîne compacte de trois parties en base64url séparées par des points : un en-tête qui indique l’algorithme de signature, une charge utile contenant des claims comme l’identifiant de l’utilisateur et la date d’expiration, et une signature. N’importe qui peut décoder les deux premières parties – elles sont encodées, pas chiffrées –, mais seule la signature vous dit si le jeton a vraiment été émis par quelqu’un qui détient la clé.
Cet outil décode l’en-tête et la charge utile, transforme les horodatages exp, nbf et iat en dates lisibles et vous indique si le jeton a expiré. Si vous collez le secret de signature ou la clé publique de l’émetteur, il vérifie aussi la signature. Les jetons et les clés sont traités dans votre navigateur et ne sont jamais envoyés à un serveur, ce qui compte, car les jetons d’accès donnent accès à de vrais comptes.
Mode d’emploi
- Collez le jeton dans la zone « Jeton ». Un préfixe "Bearer " et les sauts de ligne sont retirés automatiquement.
- Lisez l’en-tête et la charge utile décodés, et consultez le tableau « Claims » pour l’émetteur, le sujet, le destinataire et la période de validité.
- Pour vérifier la signature, allez à « Vérifier la signature ». Pour HS256, HS384 ou HS512, saisissez le secret partagé ; cochez « Le secret est encodé en base64 » si c’est le cas.
- Pour les jetons RS, PS, ES ou EdDSA, collez la clé publique sous forme de bloc PEM, de certificat X.509, de JWK ou de JWKS complet.
- Cliquez sur « Vérifier ». Le résultat indique si la signature est valide.
Fonctionnalités
- Des claims lisibles: Les dates d’expiration, de début de validité et d’émission s’affichent en UTC, dans votre fuseau horaire et par rapport à maintenant, avec un statut en direct.
- Vérification de la signature: Prend en charge HS256/384/512, RS256/384/512, PS256/384/512, ES256/384/512 et EdDSA (Ed25519) grâce à l’API Web Crypto de votre navigateur.
- Saisie de clé souple: Accepte les clés publiques PEM SPKI, les certificats X.509, les JWK seuls et les ensembles de JWK, dans lesquels la clé est choisie d’après son kid.
- Des messages d’erreur clairs: Vous indique si un jeton n’a pas le bon nombre de parties, contient du base64url ou du JSON non valide, ou est un JWE chiffré.
- Confidentiel par conception: Rien n’est envoyé ni enregistré. Les clés restent dans cet onglet du navigateur et disparaissent quand vous le fermez.
Exemples
Pourquoi l’API renvoie-t-elle 401 ?
Collez le jeton d’accès de la requête qui échoue. Le tableau « Claims » affiche « Expiré » et l’heure d’expiration dans votre fuseau horaire : vous savez ainsi que le client n’a pas renouvelé le jeton.
Vérifier un jeton d’identité d’un fournisseur d’identité
Copiez le document JWKS du fournisseur (depuis son jwks_uri) et collez-le comme clé. L’outil choisit la clé dont le kid correspond et vérifie la signature RS256.
Déboguer une intégration HS256
Collez un jeton et votre secret partagé. Si la signature ne correspond pas, vérifiez si le secret est encodé en base64 d’un côté et en texte brut de l’autre.
Limites et remarques
- Les jetons chiffrés (JWE, en cinq parties) ne peuvent pas être déchiffrés.
- Les clés ne sont pas téléchargées depuis une URL JWKS – copiez plutôt le JSON de l’URL et collez-le.
- Les blocs PKCS#1 "BEGIN RSA PUBLIC KEY" ne sont pas pris en charge ; convertissez-les d’abord en bloc SPKI "BEGIN PUBLIC KEY".
- La vérification ne porte que sur la signature. C’est votre application qui décide si l’émetteur, le destinataire et les autres claims sont acceptables.
- Les navigateurs anciens ne prennent pas toujours en charge EdDSA (Ed25519) ; l’outil vous prévient si une clé ou un algorithme n’est pas pris en charge.
Questions fréquentes
Est-il sûr de coller un jeton ici ?
Le jeton est décodé par JavaScript dans votre navigateur et n’est envoyé nulle part. Traitez malgré tout les jetons de production comme des mots de passe : utilisez de préférence des jetons expirés ou de test.
Tout le monde peut-il lire le contenu d’un JWT ?
Oui. L’en-tête et la charge utile sont seulement encodés en base64url. Ne mettez jamais de secrets dans la charge utile d’un JWT ; la signature protège seulement contre les modifications, pas contre la lecture.
Que signifie « Signature non valide » ?
Le jeton a été modifié après la signature, ou il a été signé avec une autre clé que celle que vous avez fournie. Assurez-vous d’utiliser le bon secret ou la clé publique qui correspond au kid de l’en-tête.
Ai-je besoin de la clé privée pour vérifier un jeton ?
Non. Les jetons RS, PS, ES et EdDSA se vérifient avec la clé publique. L’outil refuse les clés privées pour qu’elles ne soient pas collées par erreur.
Pourquoi un jeton avec "alg": "none" n’est-il pas vérifié ?
Un tel jeton n’a pas de signature : il n’y a donc rien à vérifier. Les serveurs devraient refuser les jetons non signés, sauf s’ils les attendent explicitement.