Ce tutoriel vous aidera à appeler votre propre API à l’aide du Hybrid Flow. Si vous souhaitez comprendre le fonctionnement de ce flux et pourquoi vous devriez l’utiliser, consultez Hybrid Flow.
- API d’authentification : Si vous préférez créer votre propre solution, poursuivez votre lecture pour apprendre à appeler directement notre API.
Prérequis
-
Enregistrez votre Application dans Auth0.
- Sélectionnez le Type d’application approprié.
- Ajoutez
{https://yourApp/callback}comme URL de rappel autorisée. - Assurez-vous que les types d’octroi de votre Application incluent Implicit et Authorization Code. Pour savoir comment faire, consultez Mettre à jour les types d’octroi.
- Si vous voulez que votre Application puisse utiliser des jetons d’actualisation, assurez-vous que les types d’octroi de l’Application incluent jeton d’actualisation. Pour savoir comment faire, consultez Mettre à jour les types d’octroi. Pour en savoir plus sur les jetons d’actualisation, consultez jetons d’actualisation.
-
Enregistrez votre API dans Auth0
- Si vous voulez que votre API reçoive des jetons d’actualisation afin d’obtenir de nouveaux jetons lorsque les précédents expirent, activez autoriser l’accès hors ligne.
Étapes
- Autoriser l’utilisateur: Demandez l’autorisation de l’utilisateur, puis redirigez-le vers votre application avec un code d’autorisation.
- 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.
- Authentifier l’utilisateur
- Rediriger l’utilisateur vers un pour prendre en charge l’authentification
- Vérifier s’il existe des sessions (SSO) actives
- Obtenir le consentement de l’utilisateur pour le niveau d’autorisation demandé, sauf si ce consentement a déjà été accordé.
Paramètres
- devez inclure un paramètre
- pouvez inclure des portées supplémentaires pris en charge par l’API cible
À titre d’exemple, votre extrait HTML pour votre URL d’autorisation lors de l’ajout de la fonctionnalité de connexion à votre application pourrait ressembler à ceci :
Réponse
HTTP 302. Les identifiants demandés sont encodés dans le corps :
response_type que vous avez demandé.
Auth0 renverra également toute valeur
state que vous avez incluse dans votre requête vers l’URL d’autorisation.
Lorsque vous décodez et analysez votre , vous remarquerez une revendication supplémentaire, c_hash, qui contient un hachage du code. Cette revendication est obligatoire lorsqu’un jeton d’identité est émis en même temps qu’un code, et vous devez la valider :
- À l’aide de l’algorithme de hachage indiqué dans la revendication
algde l’en-tête du jeton d’identité, calculez le hachage des octets de la représentation ASCII ducode. - Encodez en Base64url la moitié gauche du hachage.
- Vérifiez que le résultat correspond à la valeur
c_hash.
Demander des jetons
code) extrait à l’étape précédente, vous devrez envoyer une requête POST à l’URL de jeton.
Le que vous recevez à cette étape est celui que vous devez utiliser pour effectuer des requêtes à votre API. Assurez-vous de le garder distinct du jeton d’accès que vous avez reçu à l’étape précédente de ce tutoriel.
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 et token_type :
refresh_token ne sera présent dans la réponse que si vous avez inclus la portée offline_access et activé Autoriser l’accès hors ligne pour votre API dans le Dashboard.
Appeler l’API
Jetons d’actualisation
- configuré votre API pour autoriser l’accès hors ligne
- inclus la portée
offline_accesslorsque vous avez lancé la requête d’authentification par l’intermédiaire du point de terminaison authorize.
POST au point de terminaison /oauth/token dans l’API d’authentification, en utilisant grant_type=refresh_token.
Exemple de requête POST à l’URL du jeton
Paramètres
Réponse
HTTP 200 avec une charge utile contenant un nouvel access_token, sa durée de validité en secondes (expires_in), les valeurs scope accordées et token_type. Si la portée du jeton initial comprenait openid, la réponse comprendra également un nouvel id_token :
Quelques cas d’utilisation
Personnaliser les jetons
portées renvoyés dans les jetons d’accès et/ou ajouter des claims aux jetons d’accès et aux jetons d’ID. (Pour en savoir plus sur les Rules, consultez Auth0 Rules.) Pour ce faire, ajoutez la Rule suivante, qui s’exécutera après l’authentification de l’utilisateur :