Skip to main content
Tous les émis par Auth0 utilisent des JSON Web Signatures (JWS), ce qui signifie qu’ils sont signés plutôt que chiffrés. Un JWS représente un contenu protégé au moyen de ou de codes d’authentification de message (MAC), à l’aide de structures de données basées sur JSON. Un JWT bien formé se compose de trois chaînes concaténées encodé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 en sécuriser le contenu.
  • JWS payload (ensemble de claims) : contient des assertions de sécurité vérifiables, comme l’identité de l’utilisateur et les permissions qui lui sont accordées.
  • signature JWS : sert à valider que le jeton est fiable et n’a pas été altéré. Lorsque vous utilisez un JWT, vous devez vérifier sa signature avant de le stocker et de l’utiliser.
Un JWT ressemble généralement à ceci :
JSON Web Token
Pour voir par vous-même 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érents claims.
Débogueur JWT

En-tête JOSE

Objet JSON contenant les paramètres décrivant les opérations cryptographiques et les paramètres employés. L’en-tête JOSE (JSON Object Signing and Encryption) est constitué d’un ensemble de paramètres d’en-tête, généralement présentés sous forme de paires nom-valeur : l’algorithme de hachage utilisé (p. ex., HMAC SHA256 ou RSA) ainsi que le type de JWT.

JWS payload

Le payload contient des déclarations sur l’entité (généralement, l’utilisateur) ainsi que des attributs supplémentaires de l’entité, appelés claims. Dans cet exemple, notre entité est un utilisateur.
Lorsque vous travaillez avec des claims JWT, vous devez connaître les différents types de claims et les règles de dénomination.

Signature JWS

La signature sert à vérifier que l’émetteur du JWT est bien celui qu’il prétend être et à s’assurer que le message n’a pas été modifié en cours de route. Pour créer la signature, on prend l’en-tête et le payload encodés en Base64, ainsi qu’un secret, puis on les signe avec l’algorithme indiqué dans l’en-tête. Par exemple, si vous créez une signature pour un token à l’aide de l’algorithme HMAC SHA256, vous feriez ce qui suit :

En savoir plus