> ## 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.

> Validez les JSON Web Tokens (JWTs) en vérifiant la signature, en décodant le payload et en vérifiant les claims à l’aide d’un Auth0 SDK ou d’une bibliothèque tierce.

# Valider des JSON Web Tokens

<Card title="Aperçu">
  Concepts clés

  * Découvrez les JSON Web Tokens (JWTs) qu’Auth0 utilise pour les jetons d’accès, d’ID, d’actualisation et de logout.
  * Consultez les algorithmes de signature pour comprendre ce qu’est la signature d’un jeton.
  * Validez les JWT pour vous assurer que personne ne les a altérés.
  * Utilisez les Auth0 SDKs, le middleware 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 utilise <Tooltip tip="JSON Web Token (JWT) : format standard de jeton d’ID (et souvent format de jeton d’accès) 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=JSON+Web+Token+%28JWT%29">JSON Web Token (JWT)</Tooltip> pour la transmission sécurisée des données, l’authentification et l’autorisation. Les jetons doivent être analysés et validés dans les applications Web classiques, natives et monopages afin de s’assurer qu’ils ne sont pas compromis et que leur signature est authentique. Les jetons doivent être vérifiés pour réduire les risques de sécurité si, par exemple, ils ont été altérés, mal utilisés ou ont expiré. La validation des <Tooltip tip="JSON Web Token (JWT) : format standard de jeton d’ID (et souvent format de jeton d’accès) 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=JWT">JWT</Tooltip> vérifie la structure, les claims et la signature afin de réduire les risques au minimum.

﻿

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Pour inspecter visuellement un JWT, rendez-vous sur [JWT.io](https://jwt.io/) ou utilisez la [JWT Debugger Chrome Extension](https://chrome.google.com/webstore/detail/jwt-debugger/ppmmlchacdbknfphdeafcbmklcghghmd?hl=en)).
</Callout>

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

Lors de la validation d’un JWT, en général, la valeur de hachage actuelle et la valeur de hachage d’origine sont analysées, c’est-à-dire décodées, puis comparées pour vérifier que la signature du jeton est authentique. Tous nos [Quickstarts d’API backend](/docs/fr-ca/quickstart/backend) utilisent des SDKs qui effectuent pour vous la validation et l’analyse des JWT.

<div id="parse-and-validate">
  ## Analyser et valider
</div>

Si vous n’utilisez pas l’un de nos SDKs qui effectuent la validation et l’analyse des JWT pour vous, vous pouvez analyser et valider un JWT de l’une des façons suivantes :

* Utiliser un middleware existant pour votre framework web.
* Choisir une bibliothèque tierce sur JWT.io.
* Effectuer manuellement les vérifications décrites dans la [spécification RFC 7519 > 7.2 Validating a JWT](https://tools.ietf.org/html/rfc7519#section-7.2).

Nous vous recommandons fortement d’utiliser un middleware ou l’une des bibliothèques tierces open source existantes pour analyser et valider les JWT. Sur [JWT.io](https://jwt.io/#libraries-io), vous trouverez des bibliothèques pour diverses plateformes et divers langages, comme .NET, Python, Java, Ruby, Objective-C, Swift et PHP.

<div id="middleware">
  ## Middleware
</div>

De nombreux frameworks Web, comme [ASP.NET Core](/docs/fr-ca/quickstart/backend/aspnet-core-webapi), incluent un middleware JWT qui prend en charge la validation des JWT. En général, c’est l’option à privilégier, car le middleware s’intègre bien aux mécanismes d’authentification du framework.

<div id="third-party-libraries">
  ## Bibliothèques tierces
</div>

Si vous choisissez une bibliothèque tierce, optez pour une bibliothèque qui prend en charge l’algorithme de signature que vous avez sélectionné lorsque vous avez enregistré votre application ou votre API auprès d’Auth0. Sachez également que certaines bibliothèques ne valident pas toutes les claims JWT. Sur JWT.io, vous pouvez voir quelles validations sont prises en charge par chaque bibliothèque (repérez les coches vertes).

La plupart des bibliothèques tierces implémentent une méthode pour vérifier un JWT et intègrent divers arguments qui vous permettent 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 appellerez la méthode [jwt.verify()](https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback). Cette méthode prend en charge un argument `algorithms` qui vous permet de personnaliser les algorithmes autorisés (assurez-vous d’interdire `none`), un argument `secretOrPublicKey` que vous renseignez avec le secret ou la clé publique RSA (selon l’algorithme de signature sélectionné), ainsi que d’autres arguments qui vous permettent de personnaliser la validation des claims. Si l’analyse échoue, la bibliothèque renvoie une [erreur JsonWebTokenError](https://github.com/auth0/node-jsonwebtoken#jsonwebtokenerror) accompagnée du message `jwt malformed`, après quoi vous **devez** rejeter la requête associée.

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

* Pour obtenir les claims d’un JWT, utilisez la méthode `verify()` pour valider les claims et la signature. Évitez d’utiliser la méthode `decode()` pour valider un token, surtout s’il provient d’un <Tooltip tip="Client public : client (application) qui ne peut pas conserver des informations d’identification de façon sécuritaire. Par exemple, une application native de bureau ou mobile et une application web côté client basée sur JavaScript (comme une application monopage (SPA))." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=public+client">client public</Tooltip>.
* Suivez attentivement toutes les instructions d’utilisation de la bibliothèque choisie. La bibliothèque pourrait s’appuyer sur des valeurs ou des paramètres par défaut susceptibles d’entraîner des risques de sécurité.

<div id="manually-implement-checks">
  ## Effectuer manuellement les vérifications
</div>

Nous déconseillons de valider les JWT manuellement, car il est facile de mal s’y prendre et d’omettre des détails importants, ce qui peut entraîner de graves failles de sécurité. La plupart des bibliothèques JWT s’occupent de la validation des JWT pour vous. Consultez JWT.io pour trouver une bibliothèque JWT adaptée à votre plateforme et à votre langage de programmation.

Pour savoir comment valider manuellement un JWT, consultez la [RFC 7519](https://tools.ietf.org/html/rfc7519#section-7.2). Tous les JWT émis par Auth0 comportent une signature Web JSON (JWS), ce qui signifie qu’ils sont signés plutôt que chiffrés.

<div id="verify-rs256-signed-tokens">
  ## Vérifier les jetons signés avec RS256
</div>

Pour vérifier visuellement des jetons signés avec RS256 :

1. Accédez à [Dashboard > Applications](https://manage.auth0.com/#/applications).
2. Allez à l’onglet **Settings**, puis ouvrez **Advanced Settings**.
3. Allez à l’onglet **Certificates**, repérez le champ **Signed Certificate** et copiez la **Public Key**.
4. Accédez au site Web [JWT.io](https://jwt.io/), repérez la liste déroulante **Algorithm** et sélectionnez **RS256**.
5. Repérez la section **Verify Signature** et collez la Public Key que vous avez copiée précédemment à la place du contenu dans le champ qui commence par `-----BEGIN PUBLIC KEY-----`.

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

Nous vous recommandons d’obtenir la Public Key à partir du JWKS de votre tenant ici :
`https://{yourDomain}/.well-known/jwks.json`

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

* [Claims des JSON Web Token](/docs/fr-ca/secure/tokens/json-web-tokens/json-web-token-claims)
* [Valider les jetons d’identité](/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)
* [Pratiques exemplaires pour les jetons](/docs/fr-ca/secure/tokens/token-best-practices)
