Skip to main content
La prise en charge du mot de passe du 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 et un . 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.

Fonctionnalités concernées

Ce changement vous concerne si vous utilisez le 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-, vous pouvez maintenant utiliser le mode Passwordless dans Lock à la place.
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.

Actions

Modifications apportées aux requêtes

Auparavant, la charge utile d’une requête envoyée à /oauth/ro ressemblait à ceci :
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 :
  • 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’ à laquelle le jeton est destiné.

Modifications des réponses

Les réponses de /oauth/ro avaient un format semblable à ce qui suit :
  • 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 ) 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 .
  • Un 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 :

Vérifier la migration

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