> ## 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 migrer vos appels d’API et les réponses associées de /oauth/ro vers /oauth/token.

# Migrez votre flux Resource Owner Password

La prise en charge du mot de passe du <Tooltip tip="Resource Owner : Entité (comme un utilisateur ou une application) capable d’accorder l’accès à une ressource protégée." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=resource+owner">propriétaire de la ressource</Tooltip> a été ajoutée à `/oauth/token`. L’utilisation du point de terminaison `/oauth/ro` a été marquée comme obsolète le 8 juillet 2017. Le point de terminaison `/oauth/ro` servait auparavant à échanger un mot de passe à usage unique (OTP) reçu par courriel ou par SMS par l’utilisateur final contre un <Tooltip tip="ID Token : Information d’identification destinée au client lui-même plutôt qu’à l’accès à une ressource." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=ID+token">jeton d’identité</Tooltip> et un <Tooltip tip="Access Token : Information d’autorisation, sous la forme d’une chaîne opaque ou d’un JWT, utilisée pour accéder à une API." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=access+token">jeton d’accès</Tooltip>. Auth0 a mis en place une nouvelle API qui remplace `/oauth/ro` pour ce cas d’utilisation, et nous vous recommandons de migrer vers ce nouveau point de terminaison.

<div id="features-affected">
  ## Fonctionnalités concernées
</div>

Ce changement vous concerne si vous utilisez le [Resource Owner Password Flow](/docs/fr-ca/get-started/authentication-and-authorization-flow/resource-owner-password-flow) (parfois appelé Resource Owner Password Grant ou ROPG) et faites une requête directement à `/oauth/ro` sans utiliser de bibliothèques Auth0 ni de SDKs. Les bibliothèques Auth0 comme Lock ou Auth0.js ont été mises à jour pour ne plus utiliser `/oauth/ro` en interne. Si vous utilisez la bibliothèque lock-<Tooltip tip="Passwordless : forme d’authentification qui ne repose pas sur un mot de passe comme premier facteur." cta="Consulter le glossaire" href="/docs/fr-ca/glossary?term=passwordless">passwordless</Tooltip>, vous pouvez maintenant utiliser le mode Passwordless dans Lock à la place.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Lorsqu’un jeton d’accès basé sur `/oauth/ro` d’un utilisateur expire, Auth0 l’oblige à s’authentifier de nouveau (déconnexion forcée requise), car le jeton d’actualisation `/oauth/ro` ne peut pas être utilisé pour faire une requête à `/oauth/token` afin d’obtenir un nouveau jeton d’accès. Tous les utilisateurs actuellement connectés devront se connecter de nouveau pendant la migration de `/oauth/ro` vers `/oauth/token`.
</Callout>

<div id="actions">
  ## Actions
</div>

<div id="change-requests">
  ### Modifications apportées aux requêtes
</div>

Auparavant, la charge utile d’une requête envoyée à `/oauth/ro` ressemblait à ceci :

```json lines theme={null}
{
  "grant_type": "password",
  "client_id": "123",
  "username": "alice",
  "password": "A3ddj3w", 
  "connection": "my-database-connection",
  "scope": "openid email favorite_color offline_access",
  "device": "my-device-name"
}
```

La nouvelle mise en œuvre comprend les changements suivants :

* Le point de terminaison pour exécuter les échanges de tokens est maintenant `/oauth/token`.
* Le type d’octroi propre à Auth0 est utilisé pour authentifier les utilisateurs à partir d’une connection précise (ou realm).
* Auth0 prend en charge les scopes OIDC standard, ainsi que les scopes que vous avez définis dans votre API personnalisée.
* Un scope qui n’entre dans aucune de ces catégories, comme `favorite_color` ci-dessus, n’est plus un scope valide.
* Le paramètre `device` a été supprimé.
* Le paramètre `audience` est facultatif.

Voici un exemple de charge utile de la requête d’une request envoyée à `/oauth/token` :

```json lines theme={null}
{
  "grant_type": "http://auth0.com/oauth/grant-type/password-realm",
  "client_id": "123",
  "username": "alice",
  "password": "A3ddj3w",
  "realm": "my-database-connection",
  "scope": "openid email offline_access",
  "audience": "https://api.example.com"
}
```

* Le type d’octroi indiqué ici est `password-realm`, plutôt que le `password` standard.
* Les paramètres `client_id`, `username` et `password` demeurent inchangés.
* Le `realm` est inclus parce que nous utilisons le type d’octroi Password Realm et qu’il remplace le paramètre `connection` des appels précédents.
* Le paramètre `scope` est essentiellement le même, mais il n’accepte pas de valeurs non OIDC.
* Le paramètre `audience` peut être ajouté pour indiquer l’<Tooltip tip="Audience : identificateur unique de l’audience d’un jeton émis. Nommée aud dans un jeton, sa valeur contient l’ID d’une application (Client ID) pour un ID Token ou d’une API (API Identifier) pour un Access Token." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=audience">audience</Tooltip> à laquelle le jeton est destiné.

<div id="response-changes">
  ### Modifications des réponses
</div>

Les réponses de `/oauth/ro` avaient un format semblable à ce qui suit :

```json lines theme={null}
{
  "access_token": "SlAV32hkKG",
  "token_type": "Bearer",
  "refresh_token": "8xLOxBtZp8",
  "expires_in": 3600,
  "id_token": "eyJ..."
}
```

* Le jeton d’accès renvoyé est valide pour appeler le point de terminaison `/userinfo` (à condition que l’API spécifiée par le paramètre `audience` utilise RS256 comme <Tooltip tip="Algorithme de signature : algorithme utilisé pour signer numériquement les 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>) et, le cas échéant, l’API personnalisée si elle a été spécifiée.
* Le jeton d’identité sera systématiquement signé avec RS256 s’il est demandé par un <Tooltip tip="Client public : client (application) qui ne peut pas conserver ses identifiants de façon sécurisée. 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>.
* Un <Tooltip tip="Jeton d’actualisation : jeton utilisé pour obtenir un jeton d’accès renouvelé sans obliger les utilisateurs à se connecter de nouveau." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Refresh+Token">jeton d’actualisation</Tooltip> sera renvoyé uniquement si la portée `offline_access` a été accordée et que l’option **Allow offline access** est activée pour l’API.

Voici un exemple de la réponse conforme à OIDC provenant de `/oauth/token` :

```json lines theme={null}
{
  "access_token": "eyJ...",
  "token_type": "Bearer",
  "refresh_token": "8xLOxBtZp8",
  "expires_in": 3600,
  "id_token": "eyJ..."
}
```

<div id="verify-migration">
  ### Vérifier la migration
</div>

1. Une fois votre base de code migrée et lorsque vous êtes certain que vos applications n’utilisent plus le point de terminaison, accédez à [Dashboard > Tenant Settings > Advanced](https://manage.auth0.com/#/tenant/advanced).
2. Faites défiler jusqu’à **Migrations** et désactivez **Legacy** `/oauth/ro` **Endpoint**. En désactivant ce commutateur, vous désactivez le point de terminaison obsolète pour votre tenant, ce qui empêche son utilisation.

Si la désactivation de ce commutateur entraîne des échecs de connexion, c’est le signe que vous n’avez pas encore complètement supprimé toutes les occurrences de code hérité dans vos applications.

Une fois les migrations effectuées avec succès dans les environnements de production, le commutateur peut être désactivé et laissé ainsi afin de garantir que les fonctionnalités obsolètes ne puissent plus être utilisées.
