Guide du Générateur JWT : Création de Tokens Signés HS256/RS256
Qu'est-ce que JWT
JSON Web Token (JWT) est un format de token compact et autonome largement utilisé pour l'authentification et l'échange d'informations :
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNzAwMDAwMDAwLCJleHAiOjE3MDAwMDgwMDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
↑ Header ↑ Payload ↑ Signature
Un JWT se compose de trois chaînes codées en Base64URL séparées par
..
Structure en Trois Parties Expliquée
Header
{
"alg": "HS256",
"typ": "JWT"
}
| Champ | Signification |
|---|---|
alg |
Algorithme de signature : HS256, RS256, etc. |
typ |
Type de token, toujours JWT |
Payload
{
"sub": "1234567890",
"name": "John Doe",
"role": "admin",
"iat": 1700000000,
"exp": 1700008000
}
| Champ | Signification | Requis |
|---|---|---|
sub |
Sujet (ID utilisateur) | Recommandé |
iat |
Horodatage d'émission | Recommandé |
exp |
Temps d'expiration | Requis |
iss |
Émetteur | Optionnel |
aud |
Audience | Optionnel |
nbf |
Pas avant (heure d'effet) | Optionnel |
Signature
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
La signature garantit que le token n'a pas été altéré, mais le Payload n'est PAS chiffré par défaut — ne jamais y placer de données sensibles !
HS256 vs RS256
| Comparaison | HS256 | RS256 |
|---|---|---|
| Type d'algorithme | Symétrique (HMAC) | Asymétrique (RSA) |
| Clé | Secret partagé (chaîne) | Clé publique + Clé privée |
| Vérificateur | Nécessite le même secret | Nécessite uniquement la clé publique |
| Cas d'usage | Service unique, microservices internes | Multi-service, vérification tierce |
| Gestion des clés | Simple, mais risque de fuite plus élevé | Plus sécurisé, la clé publique peut être partagée |
Recommandation : Utilisez HS256 pour les monolithes, RS256 pour les microservices/API ouvertes.
Utilisation du Générateur JWT
Étape 1 : Ouvrir l'Outil
Visitez le Générateur JWT pour accéder à l'interface de création de tokens.
Étape 2 : Sélectionner l'Algorithme de Signature
- Service unique : Sélectionnez HS256 et entrez un secret partagé
- Multi-service : Sélectionnez RS256 et collez une clé privée
Étape 3 : Remplir le Payload
Ajoutez des claims dans l'éditeur de payload :
{
"sub": "user_10086",
"name": "John Doe",
"role": "admin",
"iat": 1700000000,
"exp": 1700008000
}
iatetexputilisent des horodatages Unix (secondes). L'outil prend en charge la configuration visuelle du temps d'expiration.
Étape 4 : Générer le Token
Cliquez sur « Générer ». L'outil automatiquement :
- Encode le Header en Base64URL
- Encode le Payload en Base64URL
- Calcule la signature en utilisant la clé
- Concatène en une chaîne JWT complète
Étape 5 : Vérifier le Token
Collez le token généré dans le Décodeur JWT et confirmez :
- Le Header et le Payload se décodent correctement
- La vérification de signature réussit
- Le temps
expn'est pas dépassé
Bonnes Pratiques de Temps d'Expiration
| Scénario | exp Recommandé | Raison |
|---|---|---|
| Access Token | 15-30 minutes | Durée courte, réduit le risque de fuite |
| Refresh Token | 7-30 jours | Durée longue, utilisé pour le renouvellement |
| Lien de vérification par email | 1-24 heures | Usage unique |
| Clé API | Pas d'exp ou 1+ an | Identifiant à long terme |
Bonne pratique : Utilisez l'approche à double token Access Token + Refresh Token.
Notes sur l'Encodage Base64URL
JWT utilise l'encodage Base64URL, qui diffère du Base64 standard :
| Différence | Base64 Standard | Base64URL |
|---|---|---|
+ |
+ |
- |
/ |
/ |
_ |
Remplissage = |
Oui | Non |
Lors de l'utilisation de l'outil d'encodage/décodage Base64, assurez-vous de sélectionner le mode URL-safe.
Problèmes Courants
| Problème | Cause | Solution |
|---|---|---|
| Échec de la vérification de signature | Clé non correspondante | Confirmez que la génération et la vérification utilisent la même clé |
| Token expiré | Le temps exp est dépassé | Régénérez ou utilisez un Refresh Token |
| Payload illisible | Non décodé avec Base64URL | Utilisez le Décodeur JWT |
| Données sensibles exposées | Payload non chiffré | Ne jamais mettre de mots de passe ou de secrets dans le Payload |
| Échec de la vérification RS256 | Clé publique non correspondante | Confirmez que la clé publique correspond à la clé privée |
Résumé
JWT est une technologie essentielle de l'authentification web moderne. Comprendre la structure en trois parties et la différence entre HS256/RS256, et configurer correctement les claims et l'expiration, sont les clés d'une utilisation sécurisée de JWT. Le Générateur JWT et le Décodeur JWT vous permettent d'effectuer le flux complet de création, de décodage et de vérification des tokens directement dans votre navigateur.