Studio de Tokens
Privacy FirstInspectez et générez des JWT/JWK/JWKS.
Header
Payload
Signature
Qu'est-ce qu'un JWT ?
Un JSON Web Token (JWT) est un moyen compact et compatible avec les URL de représenter des claims à transférer entre deux parties. Un JWT se compose de trois parties encodées en Base64URL séparées par des points : le Header (algorithme et type), le Payload (claims), et la Signature. La signature garantit que le jeton n'a pas été altéré. Les JWT sont couramment utilisés pour l'authentification et l'échange d'informations dans les API web. Les claims standards incluent sub (sujet), iss (émetteur), aud (audience), exp (expiration), nbf (pas avant), iat (émis le), et jti (ID JWT).
Algorithmes JWT
HS256/384/512 utilise HMAC avec SHA-2 et un secret partagé — simple, mais les deux parties doivent détenir la même clé. RS256/384/512 utilise des signatures asymétriques RSA PKCS#1 v1.5 — idéal pour les architectures de microservices où les services n'ont besoin que de la clé publique. ES256/384/512 utilise ECDSA avec des courbes NIST pour des signatures plus petites que RSA à sécurité équivalente. PS256/384/512 utilise RSA-PSS, une variante probabiliste préférée à RS* dans les systèmes modernes.
JWK et JWKS
Une JSON Web Key (JWK) est une structure JSON représentant une clé cryptographique. Un JWK Set (JWKS) est une structure JSON contenant un tableau de JWK sous la propriété keys. Les services publient leur JWKS à une URL bien connue (ex. /.well-known/jwks.json), permettant aux clients de récupérer les clés publiques pour la vérification JWT sans échange de clés hors bande. Les clés d'un JWKS sont identifiées par leur kid (Key ID), auquel les headers JWT font référence.
Bonnes pratiques de sécurité
Validez toujours les claims exp, nbf, iss et aud côté serveur. N'utilisez jamais l'algorithme alg: none en production — il supprime toute protection par signature. Préférez les algorithmes asymétriques (RS*, ES*, PS*) à HMAC lorsque plusieurs services doivent vérifier des jetons. Renouvelez régulièrement les clés et utilisez kid pour identifier quelle clé a signé chaque jeton. Stockez les clés privées de manière sécurisée — ne les commitez jamais dans un contrôle de version. Utilisez des durées d'expiration courtes et des jetons de rafraîchissement plutôt que des JWT à longue durée de vie.