> ## 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 comment la rotation des jetons d’actualisation renforce la sécurité en émettant un nouveau jeton d’actualisation chaque fois qu’un client utilisant des jetons d’actualisation envoie à Auth0 une demande de nouveau jeton d’accès.

# Rotation des jetons d’actualisation

La rotation des <Tooltip tip="Jeton d’actualisation : jeton utilisé pour obtenir un nouveau jeton d’accès sans obliger les utilisateurs à se reconnecter." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Refresh+token">jetons d’actualisation</Tooltip> est une technique qui permet d’obtenir de nouveaux <Tooltip tip="Jeton d’actualisation : jeton utilisé pour obtenir un nouveau jeton d’accès sans obliger les utilisateurs à se reconnecter." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=access+tokens">jetons d’accès</Tooltip> à l’aide de jetons d’actualisation et qui va au-delà de l’[authentification silencieuse](/fr-CA/docs/authenticate/login/configure-silent-authentication). Les jetons d’actualisation ont généralement une durée de vie plus longue et peuvent servir à demander de nouveaux jetons d’accès une fois que les jetons d’accès à courte durée de vie ont expiré. Les jetons d’actualisation sont souvent utilisés dans les applications natives sur appareils mobiles avec des jetons d’accès à courte durée de vie afin d’offrir une expérience utilisateur fluide, sans devoir émettre de jetons d’accès à longue durée de vie.

Lorsque la <Tooltip tip="Rotation des jetons d’actualisation : stratégie qui consiste à remplacer fréquemment les jetons d’actualisation afin de réduire la vulnérabilité. Avec la rotation des jetons d’actualisation, chaque fois que votre application échange un jeton d’actualisation pour obtenir un nouveau jeton d’accès, Auth0 renvoie aussi un nouveau jeton d’actualisation." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=refresh+token+rotation">rotation des jetons d’actualisation</Tooltip> est activée dans le <Tooltip tip="Rotation des jetons d’actualisation : stratégie qui consiste à remplacer fréquemment les jetons d’actualisation afin de réduire la vulnérabilité. Avec la rotation des jetons d’actualisation, chaque fois que votre application échange un jeton d’actualisation pour obtenir un nouveau jeton d’accès, Auth0 renvoie aussi un nouveau jeton d’actualisation." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Auth0+Dashboard">tableau de bord Auth0</Tooltip>, chaque fois qu’une application échange un jeton d’actualisation pour obtenir un nouveau jeton d’accès, un nouveau jeton d’actualisation est également renvoyé. Ainsi, vous n’avez plus de jeton d’actualisation à longue durée de vie qui, s’il était compromis, pourrait donner un accès illégitime aux ressources. Comme les jetons d’actualisation sont continuellement échangés et invalidés, le risque diminue.

Le fonctionnement de la rotation des jetons d’actualisation dans Auth0 est conforme au [OAuth 2.0 BCP](https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-4.12) et est compatible avec les flux suivants :

* [Flux du code d’autorisation](/fr-CA/docs/get-started/authentication-and-authorization-flow/authorization-code-flow)
* [Flux du code d’autorisation avec Proof Key for Code Exchange](/fr-CA/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)
* [Flux d’autorisation d’appareil](/fr-CA/docs/get-started/authentication-and-authorization-flow/device-authorization-flow)
* [Flux du mot de passe du propriétaire de la ressource](/fr-CA/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow)

<div id="maintain-user-sessions-in-spas">
  ## Maintenir les sessions utilisateur dans les SPA
</div>

Jusqu’à tout récemment, les SPA maintenaient la session utilisateur au moyen du flux Authorization Code avec PKCE, en combinaison avec l’authentification silencieuse. Or, les avancées récentes en matière de protection de la vie privée dans les navigateurs, comme Intelligent Tracking Prevention (ITP), empêchent l’accès au <Tooltip tip="Cookie de session : élément qui, lorsqu’il est présent, permet de considérer l’utilisateur comme authentifié." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=session+cookie">cookie de session</Tooltip> Auth0, ce qui oblige les utilisateurs à s’authentifier de nouveau.

<Frame>
  <img src="https://mintcdn.com/translations/3nS3prIggmJG9TUI/docs/images/cdy7uua7fh8z/3sf7RRsy81bt3zcXMnHUSe/2171fdab4ffeb0987c329aa897038abc/rt-and-at.png?fit=max&auto=format&n=3nS3prIggmJG9TUI&q=85&s=e9ad75d7fab9abc686e06dba4d38324c" alt="Diagramme du maintien des sessions utilisateur dans les SPA avec la rotation des jetons d’actualisation" width="900" height="764" data-path="docs/images/cdy7uua7fh8z/3sf7RRsy81bt3zcXMnHUSe/2171fdab4ffeb0987c329aa897038abc/rt-and-at.png" />
</Frame>

Malheureusement, les jetons d’actualisation à longue durée de vie ne conviennent pas aux SPA, car il n’existe dans un navigateur aucun mécanisme de stockage persistant capable de garantir un accès exclusivement à l’application visée. Comme certaines vulnérabilités peuvent être exploitées pour obtenir ces artefacts de grande valeur et permettre à des acteurs malveillants d’accéder à des ressources protégées, l’utilisation de jetons d’actualisation dans les SPA a été fortement déconseillée.

La rotation des jetons d’actualisation offre une solution au problème de perte des sessions des utilisateurs finaux causée par les effets secondaires des mécanismes de protection de la vie privée des navigateurs. Comme elle ne dépend pas de l’accès au cookie de session Auth0, elle n’est pas affectée par ITP ni par des mécanismes semblables.

Le diagramme d’état suivant montre comment la rotation des jetons d’actualisation est utilisée conjointement avec le flux Authorization Code avec PKCE, mais le principe général consistant à obtenir un nouveau jeton d’actualisation à chaque échange s’applique à tous les flux pris en charge.

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/41avsR2u0B4fSP3Bwh0WZz/d803a9057ea6e606d602c7c97d99fc3a/rtr-state-diagram.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=1391833b00321c0e5c2b671652c70070" alt="Diagramme d’état du maintien des sessions utilisateur dans les SPA avec la rotation des jetons d’actualisation" width="1500" height="1567" data-path="docs/images/cdy7uua7fh8z/41avsR2u0B4fSP3Bwh0WZz/d803a9057ea6e606d602c7c97d99fc3a/rtr-state-diagram.png" />
</Frame>

Cela signifie que vous pouvez utiliser les jetons d’actualisation en toute sécurité pour atténuer les effets indésirables des outils de protection de la vie privée des navigateurs et offrir aux utilisateurs finaux un accès continu sans nuire à l’expérience utilisateur.

<div id="automatic-reuse-detection">
  ## Détection automatique de la réutilisation
</div>

Lorsqu’un client a besoin d’un nouveau jeton d’accès, il envoie le jeton d’actualisation dans la requête à Auth0 pour obtenir une nouvelle paire de jetons. Dès que cette nouvelle paire est émise par Auth0, le jeton d’actualisation utilisé dans la requête est invalidé. Cela protège votre application contre les attaques par rejeu résultant de jetons compromis.

Sans contrainte d’émetteur, il est impossible pour le <Tooltip tip="Serveur d’autorisation : serveur centralisé qui contribue à définir les limites de l’accès d’un utilisateur. Par exemple, votre serveur d’autorisation peut contrôler les données, les tâches et les fonctionnalités accessibles à un utilisateur." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=authorization+server">serveur d’autorisation</Tooltip> de savoir quel acteur est légitime ou malveillant en cas d’attaque par rejeu. Il est donc important que le jeton d’actualisation émis le plus récemment soit lui aussi immédiatement invalidé lorsqu’un jeton d’actualisation déjà utilisé (et déjà invalidé) est envoyé au serveur d’autorisation. Cela empêche l’utilisation de tout jeton d’actualisation de la même famille (c’est-à-dire tous les jetons d’actualisation dérivés du jeton d’actualisation initial émis pour le client) pour obtenir de nouveaux jetons d’accès.

Par exemple, prenons le scénario suivant :

<Frame>
  <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/33fe73R81Cpm6eTmOWfAnm/e7d168edc27861507a121910b32f1ee2/reuse-detection1.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=f38db99d1301278466def0e78d33cb85" alt="Diagramme d’état de détection de réutilisation de la rotation des jetons d’actualisation" width="1500" height="1105" data-path="docs/images/cdy7uua7fh8z/33fe73R81Cpm6eTmOWfAnm/e7d168edc27861507a121910b32f1ee2/reuse-detection1.png" />
</Frame>

1. Le client légitime possède le **jeton d’actualisation 1**, et celui-ci est divulgué au client malveillant ou volé par celui-ci.
2. Le client légitime utilise le **jeton d’actualisation 1** pour obtenir une nouvelle paire jeton d’actualisation/jeton d’accès.
3. Auth0 renvoie le **jeton d’actualisation 2/jeton d’accès 2**.
4. Le client malveillant tente ensuite d’utiliser le **jeton d’actualisation 1** pour obtenir un jeton d’accès. Auth0 détecte que le jeton d’actualisation 1 est réutilisé et invalide immédiatement toute la famille de jetons d’actualisation, y compris le **jeton d’actualisation 2**.
5. Auth0 renvoie une réponse d’accès refusé au client malveillant.
6. Le **jeton d’accès 2** expire et le client légitime tente d’utiliser le **jeton d’actualisation 2** pour demander une nouvelle paire de jetons. Auth0 renvoie une réponse d’accès refusé au client légitime.
7. Une nouvelle authentification est requise.

Ce mécanisme de protection fonctionne, que ce soit le client légitime ou le client malveillant qui parvienne à échanger le **jeton d’actualisation 1** contre une nouvelle paire de jetons avant l’autre. Dès qu’une réutilisation est détectée, toutes les requêtes suivantes sont refusées jusqu’à ce que l’utilisateur s’authentifie de nouveau. Lorsqu’une réutilisation est détectée, Auth0 consigne dans les journaux les [événements](/fr-CA/docs/deploy-monitor/logs/log-event-type-codes) de réutilisation détectée (comme `ferrt`, qui indique un échange échoué). Cela peut être particulièrement utile avec les capacités de [diffusion des journaux](/fr-CA/docs/customize/log-streams) d’Auth0 pour détecter les activités suspectes.

Un autre exemple est celui où le client malveillant vole le **jeton d’actualisation 1** et l’utilise avec succès pour obtenir un jeton d’accès avant que le client légitime ne tente d’utiliser le **jeton d’actualisation 1**. Dans ce cas, l’accès du client malveillant serait de courte durée, car le **jeton d’actualisation 2** (ou tout jeton d’actualisation émis par la suite) est automatiquement révoqué lorsque le client légitime essaie d’utiliser le **jeton d’actualisation 1**, comme l’illustre le diagramme suivant :

<Frame>
  <img src="https://mintcdn.com/translations/3nS3prIggmJG9TUI/docs/images/cdy7uua7fh8z/36rAUgLOAqW7k7Fdl1eRN1/c1a57be5093416b50d42ec41a1e3a233/reuse-detection2.png?fit=max&auto=format&n=3nS3prIggmJG9TUI&q=85&s=b89ad8a6b2462ef5d0a443d5cdca40d0" alt="Diagramme d’état de détection de réutilisation de la rotation des jetons d’actualisation" width="1500" height="1189" data-path="docs/images/cdy7uua7fh8z/36rAUgLOAqW7k7Fdl1eRN1/c1a57be5093416b50d42ec41a1e3a233/reuse-detection2.png" />
</Frame>

<div id="sdk-support">
  ## Prise en charge des SDK
</div>

Les SDK suivants prennent en charge la rotation des jetons d’actualisation et la détection automatique de leur réutilisation.

* SDK SPA Auth0
* Flutter (Web)
* SDK Swift (iOS)
* SDK Android
* Flutter
* SDK React Native
* WPF / Winforms
* Xamarin

Pour obtenir la documentation spécifique à ces SDK, consultez la page [Bibliothèques SDK Auth0](/fr-CA/docs/libraries).

Vous pouvez choisir de stocker les jetons soit dans le stockage local, soit dans la mémoire du navigateur. Par défaut, ils sont stockés dans la mémoire du navigateur. Consultez [Bonnes pratiques relatives aux jetons](/fr-CA/docs/secure/tokens/token-best-practices) pour des recommandations sur le stockage des jetons. Vous devez activer l’accès hors ligne et demander la portée d’accès hors ligne dans le SDK client.

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

* [Configurer la rotation des jetons d’actualisation](/fr-CA/docs/secure/tokens/refresh-tokens/configure-refresh-token-rotation)
* [Désactiver la rotation des jetons d’actualisation](/fr-CA/docs/secure/tokens/refresh-tokens/disable-refresh-token-rotation)
* [Configurer l’expiration des jetons d’actualisation](/fr-CA/docs/secure/tokens/refresh-tokens/configure-refresh-token-expiration)
* [Bonnes pratiques relatives aux jetons](/fr-CA/docs/secure/tokens/token-best-practices)
