> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Décrit la structure des JSON Web Tokens avec signatures JSON Web (JWS).

# Structure des JSON Web Tokens

Tous les <Tooltip tip="JSON Web Token (JWT) : format standard d’ID Token (et souvent d’Access Token) utilisé pour représenter des claims de manière sécurisée entre deux parties." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=JWTs">JWTs</Tooltip> émis par Auth0 utilisent des [JSON Web Signatures (JWS)](https://tools.ietf.org/html/rfc7515), ce qui signifie qu’ils sont signés plutôt que chiffrés. Un JWS représente un contenu protégé au moyen de <Tooltip tip="JSON Web Token (JWT) : format standard d’ID Token (et souvent d’Access Token) utilisé pour représenter des claims de manière sécurisée entre deux parties." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=digital+signatures">signatures numériques</Tooltip> 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](https://tools.ietf.org/html/rfc7519#section-4)) : 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](/docs/fr-ca/secure/tokens/json-web-tokens/validate-json-web-tokens) avant de le stocker et de l’utiliser.

Un JWT ressemble généralement à ceci :

<Frame>
  <img src="https://mintcdn.com/translations/c0RQ9V0YAcT0-8l5/docs/images/cdy7uua7fh8z/7FI79jeM55zrNGd6QFdxnc/80a18597f06faf96da649f86560cbeab/encoded-jwt3.png?fit=max&auto=format&n=c0RQ9V0YAcT0-8l5&q=85&s=012ea0e0dd23584c5bb4e75a24322c23" alt="JSON Web Token" width="900" height="207" data-path="docs/images/cdy7uua7fh8z/7FI79jeM55zrNGd6QFdxnc/80a18597f06faf96da649f86560cbeab/encoded-jwt3.png" />
</Frame>

Pour voir par vous-même ce que contient un JWT, utilisez le [débogueur JWT.io](http://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.

<Frame>
  <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5U3Azt2AReuNzNuQqkRs5/9629ab9924a0212b74bee0b8fa88c295/legacy-app-auth-5.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=0a9775655f059d443df62ab46151aeb8" alt="Débogueur JWT" width="900" height="1013" data-path="docs/images/cdy7uua7fh8z/5U3Azt2AReuNzNuQqkRs5/9629ab9924a0212b74bee0b8fa88c295/legacy-app-auth-5.png" />
</Frame>

<div id="jose-header">
  ## En-tête JOSE
</div>

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.

```json lines theme={null}
{
      "alg": "HS256",
      "typ": "JWT"
    }
```

<div id="jws-payload">
  ## JWS payload
</div>

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.

```json lines theme={null}
{
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
    }
```

Lorsque vous travaillez avec des claims JWT, vous devez connaître les différents types de claims et les règles de dénomination.

<div id="jws-signature">
  ## Signature JWS
</div>

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 :

```js lines theme={null}
HMACSHA256(
      base64UrlEncode(header) + "." +
      base64UrlEncode(payload),
      secret)
```

<div id="learn-more">
  ## En savoir plus
</div>

* [Claims d’un JSON Web Token](/docs/fr-ca/secure/tokens/json-web-tokens/json-web-token-claims)
* [Valider des JSON Web Tokens](/docs/fr-ca/secure/tokens/json-web-tokens/validate-json-web-tokens)
* [JSON Web Key Sets](/docs/fr-ca/secure/tokens/json-web-tokens/json-web-key-sets)
* [Propriétés du JSON Web Key Set](/docs/fr-ca/secure/tokens/json-web-tokens/json-web-key-set-properties)
* [Trouver les JSON Web Key Sets](/docs/fr-ca/secure/tokens/json-web-tokens/locate-json-web-key-sets)
* [Obtenir des jetons d’accès](/docs/fr-ca/secure/tokens/access-tokens/get-access-tokens)
