Passer au contenu principal
Comme le flux Resource Owner Password (ROP) implique que l’application traite le mot de passe de l’utilisateur, il ne doit pas être utilisé par des applications tierces.
Bien que nous ne le recommandions pas, les applications hautement fiables peuvent utiliser le flux Password (défini dans OAuth 2.0 RFC 6749, section 4.3 et parfois appelé Resource Owner Password Grant ou ROPG), qui demande aux utilisateurs de fournir des identifiants (nom d’utilisateur/courriel/téléphone et mot de passe), généralement au moyen d’un formulaire interactif. Comme les identifiants sont transmis au backend et peuvent y être stockés pour une utilisation ultérieure avant d’être échangés contre un , il est impératif que l’application soit absolument digne de confiance pour traiter ces renseignements. Même si cette condition est remplie, le flux Resource Owner Password ne devrait être utilisé que lorsque les flux basés sur la redirection (comme le flux Authorization Code) ne peuvent pas être utilisés.

Fonctionnement

Schéma - flux Resource Owner Password
  1. L’utilisateur clique sur Connexion dans l’application et saisit ses identifiants.
  2. Votre application transmet les identifiants de l’utilisateur à votre serveur d’autorisation Auth0 (point de terminaison /oauth/token).
  3. Votre serveur d’autorisation Auth0 valide les identifiants.
  4. Votre serveur d’autorisation Auth0 renvoie un Jeton d’accès (et, au besoin, un Jeton d’actualisation).
  5. Votre application peut utiliser le Jeton d’accès pour appeler une API afin d’obtenir des informations sur l’utilisateur.
  6. L’API renvoie les données demandées.

Comment le mettre en œuvre

La façon la plus simple de mettre en œuvre le flux Resource Owner Password consiste à suivre notre tutoriel pour utiliser nos points de terminaison d’API afin d’appeler votre API à l’aide du flux Resource Owner Password.

Prise en charge des realms

Auth0 fournit un type d’octroi d’extension offrant des fonctionnalités semblables à celles du type d’octroi Resource Owner Password, tout en vous permettant de conserver des répertoires d’utilisateurs distincts (associés à des connexions distinctes) et de préciser lequel utiliser pendant le flux. Par exemple, supposons que vous souhaitiez afficher une liste déroulante dans l’interface de connexion de votre application afin de permettre aux utilisateurs de choisir leur type d’utilisateur : Employees ou Customers. Dans ce cas, vous configureriez Employees et Customers comme realms (et configureriez une connexion correspondante pour chacun), ce qui permet de conserver les identifiants des employés et des clients dans des répertoires d’utilisateurs distincts. Lorsque vous demandez un jeton, vous soumettez la valeur du realm avec les identifiants de l’utilisateur, et le realm soumis sera utilisé pour vérifier le mot de passe. Pour en savoir plus sur l’implémentation de ce type d’octroi d’extension, consultez Appeler votre API à l’aide du flux Resource Owner Password : configurer la prise en charge des realms.

Rules

Rules s’exécutent avec le flux Resource Owner Password (y compris le mécanisme d’octroi d’extension Realm). Cependant, les règles de redirection ne fonctionneront pas. Si vous tentez d’effectuer une redirection en spécifiant context.redirect dans votre règle, le flux d’authentification renverra une erreur. Pour en savoir plus sur Rules, consultez Auth0 Rules. Pour en savoir plus sur les règles de redirection, consultez Redirect Users from Within Rules.

Prise en charge de la MFA

Si vous devez utiliser le flux Resource Owner Password, mais que vous avez besoin d’une authentification renforcée, vous pouvez ajouter l’ (MFA). Pour savoir comment procéder, consultez S’authentifier à l’aide du flux Resource Owner Password avec MFA.

Protection contre les attaques

Lorsque vous utilisez le flux Resource Owner Password avec la , certaines fonctionnalités de peuvent ne pas fonctionner. Il est toutefois possible d’éviter certains problèmes courants. Pour en savoir plus, consultez Éviter les problèmes courants avec le flux Resource Owner Password et la protection contre les attaques.

Pour en savoir plus