/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 :
- 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_colorci-dessus, n’est plus un scope valide. - Le paramètre
devicea été supprimé. - Le paramètre
audienceest facultatif.
/oauth/token :
- Le type d’octroi indiqué ici est
password-realm, plutôt que lepasswordstandard. - Les paramètres
client_id,usernameetpassworddemeurent inchangés. - Le
realmest inclus parce que nous utilisons le type d’octroi Password Realm et qu’il remplace le paramètreconnectiondes appels précédents. - Le paramètre
scopeest essentiellement le même, mais il n’accepte pas de valeurs non OIDC. - Le paramètre
audiencepeut ê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ètreaudienceutilise 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_accessa été accordée et que l’option Allow offline access est activée pour l’API.
/oauth/token :
Vérifier la migration
- 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.
- Faites défiler jusqu’à Migrations et désactivez Legacy
/oauth/roEndpoint. En désactivant ce commutateur, vous désactivez le point de terminaison obsolète pour votre tenant, ce qui empêche son utilisation.