Ce tutoriel vous aidera à appeler votre propre API à l’aide du flux de mot de passe du propriétaire de la ressource. Si vous souhaitez comprendre le fonctionnement de ce flux et pourquoi vous devriez l’utiliser, consultez Flux de mot de passe du propriétaire de la ressource.
Prérequis
-
Enregistrez votre application auprès d’Auth0.
- Sélectionnez un Application Type de Regular Web Apps.
- Ajoutez une Allowed Callback URL de
{https://yourApp/callback}. Ce champ ne peut pas être laissé vide, sinon un message d’erreur sera renvoyé. - Assurez-vous que les Grant Types de votre application incluent Password. Pour savoir comment faire, consultez Update Grant Types.
- Si vous souhaitez que votre application puisse utiliser des Jetons d’actualisation, assurez-vous que les Grant Types de l’application incluent Refresh Token. Pour savoir comment faire, consultez Update Grant Types. Pour en savoir plus sur les Jetons d’actualisation, consultez Refresh Tokens.
-
Enregistrez votre API auprès d’Auth0
- Si vous souhaitez que votre API puisse recevoir des Jetons d’actualisation afin d’obtenir de nouveaux jetons lorsque les précédents expirent, activez Allow Offline Access.
-
Configurez une connexion
- Assurez-vous que votre connexion peut authentifier les utilisateurs à l’aide d’un nom d’utilisateur et d’un mot de passe (par exemple, les connexions de base de données, ou les connexions d’entreprise AD/LDAP, ADFS ou Azure Active Directory d’entreprise).
-
Mettez à jour ou désactivez toutes les Rules afin qu’elles ne s’appliquent qu’à des connexions spécifiques. Si vous obtenez une erreur
access_deniedpendant le test du Password Owner Resource Grant, cela pourrait être dû à une règle de contrôle d’accès.
Étapes
- Configurer le locataire:Définissez la connexion par défaut du locataire.
- Demander des jetons: Échangez votre code d’autorisation contre des jetons.
- Appeler l’API: Utilisez le Jeton d’accès obtenu pour appeler votre API.
- Actualiser les jetons: Utilisez un Jeton d’actualisation pour demander de nouveaux jetons lorsque les jetons actuels expirent.
Configurer le locataire
- Accédez à Auth0 Dashboard > Paramètres du locataire, puis faites défiler la page jusqu’au paramètre Default Directory.
- Saisissez le nom de la connexion que vous souhaitez utiliser. Assurez-vous qu’elle peut authentifier les utilisateurs au moyen d’un nom d’utilisateur et d’un mot de passe.
Obtenir des jetons
POST à l’URL du jeton.
Exemple de requête POST vers l’URL du jeton
Paramètres
Réponse
HTTP 200 avec un payload contenant les valeurs access_token, refresh_token, id_token, token_type et expires_in :
Flux de mot de passe du propriétaire de la ressource et scopes standard
Comme la fourniture d’un mot de passe donne un accès complet, tout échange fondé sur un mot de passe donne accès à tous les scopes. Par exemple, si vous n’incluez aucun scope d’API dans la requête, tous les scopes d’API seront inclus dans le Jeton d’accès. De même, si vous incluez seulement le scope
openid dans la requête, tous les scopes OpenID Connect standard seront renvoyés. Dans ces cas, le paramètre scope sera inclus dans la réponse et listera les scopes émis.Obtenir les renseignements de l’utilisateur sans ID Token
Si vous avez besoin des renseignements de l’utilisateur, incluez le scope
openid dans votre requête. Si l’API utilise RS256 comme algorithme de signature, le Jeton d’accès inclura /userinfo comme audience valide, ce qui signifie que vous pouvez l’utiliser pour appeler le point de terminaison /userinfo et récupérer les claims de l’utilisateur.Appeler l’API
Jetons d’actualisation
- configuré votre API pour autoriser l’accès hors ligne
- inclus le scope
offline_accesslorsque vous avez lancé la demande d’authentification au moyen du point de terminaison authorize.
POST au point de terminaison /oauth/token de l’Authentication API, en utilisant grant_type=refresh_token.
Exemple de requête POST à l’URL du jeton
Paramètres
Réponse
HTTP 200 avec un payload contenant un nouvel access_token, sa durée de validité en secondes (expires_in), les valeurs de scope accordées et le token_type.
Exemples de cas d’utilisation
Personnaliser les jetons
Configurer la prise en charge des realms
- Définir le paramètre de requête
grant_typesurhttp://auth0.com/oauth/grant-type/password-realm. - Envoyer un paramètre de requête supplémentaire appelé
realmet lui attribuer le nom du realm auquel l’utilisateur appartient. Par exemple, si vous avez configuré une connexion de base de données pour les employés internes nomméeemployees, et que votre utilisateur en fait partie, définissezrealmsuremployees.
Connexions en tant que realms
Toute connexion qui prend en charge l’authentification active peut être configurée comme un realm, y compris les connexions de base de données, les connexions Passwordless et les connexions d’entreprise AD/LDAP, ADFS et Azure Active Directory.