Structure du jeton Web JSON
Tous les JWT émis par Auth0 ont une signature Web JSON (JWS), ce qui signifie qu’ils sont signés plutôt que chiffrés. Une signature Web JSON (JWS) représente un contenu sécurisé par des signatures numériques ou des codes d’authentification des messages (MAC) à l’aide de structures de données basées sur JSON.
Une JWS bien formée se compose de trois chaînes concaténées codées en Base64url, séparées par des points ( .
):
En-tête JOSE: contient des métadonnées sur le type de jeton et les algorithmes cryptographiques utilisés pour sécuriser son contenu.
Charge utile JWS (ensemble de demandes) : contient des déclarations de sécurité vérifiables, comme l’identité de l’utilisateur et les autorisations qui lui sont accordées.
Signature JWS: est utilisée pour valider que le jeton est digne de confiance et qu’il n’a pas été altéré. Vous devezvérifier la signature d’un JWT avant de le stocker et de l’utiliser.
Un JWT ressemble généralement à ceci :

Pour voir directement ce que contient un JWT, utilisez le débogueur JWT.io. Il vous permet de vérifier rapidement qu’un JWT est bien formé et d’inspecter manuellement les valeurs des différentes demandes.

En-tête JOSE
Objet JSON contenant les paramètres décrivant les opérations de chiffrement et les paramètres utilisés. L’en-tête JOSE (JSON Object Signing and Encryption) se compose d’un ensemble de paramètres d’en-tête qui consistent généralement en une paire nom/valeur : l’algorithme de hachage utilisé (par ex., HMAC SHA256 ou RSA) et le type de JWT.
{
"alg": "HS256",
"typ": "JWT"
}
Was this helpful?
Charge utile JWS
La charge utile contient des déclarations sur l’entité (en général, l’utilisateur) et des attributs supplémentaires de l’entité, appelés demandes. Dans cet exemple, l’entité est un utilisateur.
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
Was this helpful?
Lorsque vous travaillez avec des demandes JWT, vous devez connaître les différents types de demandes et les règles de nommage.
Signature JWS
La signature est utilisée pour vérifier que l’expéditeur du jeton Web JSON (JWT) est bien celui qu’il prétend être et pour s’assurer que le message n’a pas été modifié en cours de route.
Pour créer la signature, l’en-tête et la charge utile encodés en Base64 sont pris en compte, ainsi qu’un secret, et signés à l’aide de l’algorithme spécifié dans l’en-tête.
Par exemple, si vous créez une signature pour un jeton à l’aide de l’algorithme HMAC SHA256, vous devez procéder comme suit :
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)
Was this helpful?