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

# Valider les jetons Web JSON

> Décrit comment analyser et valider un jeton Web JSON (JWT).

<Card title="Overview">
  Principaux concepts

  * Découvrez les jetons Web JSON (JWT) qu’utilise Auth0 pour l’accès, l’identifiant, l’actualisation et les jetons de déconnexion.
  * Passez en revue les algorithmes de signature pour comprendre ce qu’est une signature sur un jeton.
  * Validez les JWT pour vous assurer qu’ils n’ont pas été altérés.
  * Utilisez les troussses SDK d’Auth0, les logiciels médiateurs ou l’une des bibliothèques tierces sur [JWT.io](https://jwt.io/?_gl=1*arqbp6*rollup_ga*MTI5MzkwNDYxOC4xNjQ0MjUyMTYx*rollup_ga_F1G3E656YZ*MTY1MDA0NDA3Ni4xMjkuMS4xNjUwMDQ0MDg1LjUx&_ga=2.167965921.1971874740.1649687281-1293904618.1644252161#libraries-io) pour valider les JWT.
</Card>

Auth0 l’utilise <Tooltip href="/docs/fr-ca/glossary?term=json-web-token" tip="Jeton Web JSON (JWT)
Format standard de jeton d’ID (et souvent de jeton d’accès) utilisé pour représenter en toute sécurité des demandes entre deux parties." cta="Voir le glossaire">Jeton Web JSON (JWT)</Tooltip> pour une transmission, une authentification et une autorisation sécurisées des données. Les jetons doivent être analysés et vérifiés dans des applications Web classiques, natives et à page unique pour garantir qu’ils ne sont pas compromis et que la signature est authentique. Les jetons doivent être vérifiés pour réduire les risques de sécurité s’ils ont été, par exemple, falsifiés, utilisés à mauvais escient ou ont expiré. La vérification <Tooltip href="/docs/fr-ca/glossary?term=json-web-token" tip="Jeton Web JSON (JWT)
Format standard de jeton d’ID (et souvent de jeton d’accès) utilisé pour représenter en toute sécurité des demandes entre deux parties." cta="Voir le glossaire">JWT</Tooltip> vérifie la structure, les demandes et la signature pour garantir le moins de risque possible.

﻿

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Pour inspecter visuellement un JWT, visitez la page [JWT.io](https://jwt.io/) ou utilisez [l’extension Débogueur JWT de Chrome](https://chrome.google.com/webstore/detail/jwt-debugger/ppmmlchacdbknfphdeafcbmklcghghmd?hl=en).
</Callout>

La signature du jeton JWT est générée à l’aide d’un <Tooltip href="/docs/fr-ca/glossary?term=signing-algorithm" tip="Algorithme de signature
Algorithme utilisé pour signer numériquement les jetons afin de s’assurer qu’ils n’ont pas été altérés." cta="Voir le glossaire">Algorithme de signature</Tooltip>. Bien que les jetons puissent utiliser plusieurs algorithmes de signature, Auth0 prend en charge le cryptage RS256, RSA avec fonction de hachage SHA-256 ou HS256, code d’authentification de message HMAC (MAC) avec SHA-256. Pour en savoir plus sur les algorithmes recommandés d’Auth0, lisez [Algorithmes de signature](/docs/fr-ca/get-started/applications/signing-algorithms).

Lors de la vérification d’un JWT, généralement, la valeur de hachage actuelle et la valeur de hachage d’origine sont analysées ou décodées, puis comparées pour vérifier que la signature du jeton est authentique. Tous nos [démarrages rapides d'API du système dorsal](/docs/fr-ca/quickstart/backend) utilisent des trousses SDK qui effectuent la validation et l’analyse de JWT pour vous.

## Vérifier et valider

Si vous n’utilisez pas l’une de nos trousses SDK qui réalisent la vérification et l’analyse des JWT pour vous, vous pouvez analyser et vérifier un JWT en :

* Utiliser n’importe quel logiciel médiateur existant pour votre cadre d’applications Web.
* Choisir une bibliothèque tierce sur JWT.io.
* Implémenter manuellement les vérifications décrites dans [specification RFC 7519 > 7.2 Validating a JWT](https://tools.ietf.org/html/rfc7519#section-7.2).

Nous vous recommandons vivement d'utiliser un logiciel médiateur ou l'une des bibliothèques tierces au code source libre existantes pour analyser et valider les JWT. Dans [JWT.io](https://jwt.io/#libraries-io), vous trouverez des bibliothèques pour différentes plateformes et différents langages, comme .NET, Python, Java, Ruby, Objective-C, Swift et PHP.

## Logiciel médiateur

De nombreux cadres d’applications Web, tels que [ASP.NET Core](/docs/fr-ca/quickstart/backend/aspnet-core-webapi), incluent un logiciel médiateur JWT qui gère la vérification JWT. Il s’agit généralement de la meilleure voie à suivre, car le logiciel médiateur s’intègre bien aux mécanismes d’authentification globaux du cadre d’applications.

## Bibliothèques tierces

Si vous optez pour une bibliothèque tierce, choisissez-en une qui prend en charge l’algorithme de signature sélectionné lors de l’enregistrement de votre application ou API auprès d’Auth0. Aussi, sachez que ce ne sont pas toutes les bibliothèques vérifient les demandes JWT. Sur JWT.io, vous pouvez voir les vérifications prises en charge par chaque bibliothèque (recherchez les crochets verts).

La plupart des bibliothèques tierces implémentent une méthode pour vérifier un JWT et intègrent divers arguments pour vous permettre de personnaliser la vérification. Par exemple, si vous utilisez Node.js et la [bibliothèque node-jsonwebtoken](https://github.com/auth0/node-jsonwebtoken), vous appelleriez donc la méthode [jwt.verify()](https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback). Cette méthode prend en charge un argument d’`algorithmes` pour vous permettre de personnaliser vos algorithmes autorisés (asurez-vous de désactiver `none`), un argument `secretOrPublicKey` que vous remplissez avec soit le secret ou la clé RSA publique (en fonction de l’algorithme de signature sélectionné) et d’autres arguments d’entrée qui vous permettent de personnaliser la vérification des demandes. Si l’analyse l’échoue, la bibliothèque renvoie une [erreur JsonWebTokenError](https://github.com/auth0/node-jsonwebtoken#jsonwebtokenerror) avec le message `jwt malformed`, après lequel vous **devez** rejetez la demande associée.

Recommandations générales pour l’utilisation de bibliothèques tierces :

* Pour obtenir des demandes de JWT, utilisez la méthode `verify()` pour vérifier les demandes et la signature. Évitez d’utiliser la méthode `decode()` pour vérifier un jeton, surtout s’il provient d’un client public.
* Suivez attentivement toutes les instructions sur la façon d’utiliser la bibliothèque choisie. La bibliothèque pourrait s’appuyer sur des valeurs ou des paramètres par défaut susceptibles de créer des risques de sécurité.

## Implémenter manuellement les vérifications

Nous déconseillons d’effectuer une vérification JWT manuelle, car elle pourrait facilement entraîner une mauvaise implémentation et certains détails importants pourraient manquer, ce qui entraîneraient de graves vulnérabilités de sécurité. La plupart des bibliothèques JWT s’occupent de la vérification des JWT pour vous. Visitez JWT.io pour trouver une bibliothèque de JWT pour votre plateforme et votre langage de programmation.

Pour obtenir des instructions sur la façon de vérifier manuellement un JWT, consultez [RFC 7519](https://tools.ietf.org/html/rfc7519#section-7.2). 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.

## Vérifier les jetons signés RS256

Pour vérifier visuellement les jetons signés RS256 :

1. Allez à [Dashboard > Applications](https://manage.auth0.com/#/applications).
2. Allez à la vue des **Paramètres**, et ouvrez **Paramètres avancés**.
3. Allez à la vue **Certificats**, trouvez le champ **Certificat signé**, et copiez la **Clé publique**.
4. Naviguez vers le site Web [JWT.io](https://jwt.io/), trouvez le menu déroulant **Algorithme**, et sélectionnez **RS256**.
5. Trouvez la section **Vérifier la signature**, et collez la clé publique précédemment copiée à la place du contenu dans le champ qui commence avec `-----BEGIN PUBLIC KEY-----`.

Pour vérifier la signature d’un jeton d’une de vos applications :

Nous vous recommandons d’obtenir la clé publique du JWKS de votre locataire ici :
`https://{yourDomain}/.well-known/jwks.json`

## En savoir plus

* [Demandes de jetons Web JSON](/docs/fr-ca/secure/tokens/json-web-tokens/json-web-token-claims)
* [Valider les jetons d’ID](/docs/fr-ca/secure/tokens/id-tokens/validate-id-tokens)
* [Valider les jetons d’accès](/docs/fr-ca/secure/tokens/access-tokens/validate-access-tokens)
* [Meilleures pratiques concernant les jetons](/docs/fr-ca/secure/tokens/token-best-practices)
