- Guides de démarrage rapide pour applications Web classiques : la manière la plus simple d’implémenter le flux.
- Authentication API : Si vous préférez créer votre propre solution, continuez à lire pour savoir comment appeler notre API directement.
/userinfo
ou vos propres API protégées. Pour en savoir plus sur les jetons d’ID, consultez Jetons d’ID. Pour en savoir plus sur les jetons d’accès, lisez Jetons d’accès.
Vous demanderez l’autorisation de l’utilisateur et le redirigerez vers votre application avec un authorization_code
. Vous échangerez ensuite le code contre des jetons.
Prérequis
Enregistrez votre application auprès d’Auth0. Pour en savoir plus, lisez Enregistrer des applications Web classiques.- Sélectionnez Application Web ordinaire comme Type d’application.
- Ajoutez une URL de rappel autorisée de
{https://yourApp/callback}
. - Assurez-vous que les Grant Types (Types d’autorisation) de votre application comprennent le code d’autorisation. Pour en savoir plus, lisez Mettre à jour les types d’autorisation.
Autoriser l’utilisateur
Pour lancer le flux, vous aurez besoin l’autorisation de l’utilisateur. Cette étape peut comprendre un ou plusieurs des procédés suivant :- Authentifier l’utilisateur
- Redirection de l’utilisateur vers un fournisseur d’identité pour gérer l’authentification
- Obtenir le consentement de l’utilisateur pour le niveau de permission demandé, sauf si obtenu précédemment
Exemple d’URL d’autorisation
Paramètres
Nom du paramètre | Description |
---|---|
response_type | Indique le type d’identifiant qu’Auth0 renverra (code ou token ). Pour ce flux, la valeur doit être code . |
client_id | L’ID client de votre application. Vous pouvez trouver cette valeur dans vos paramètres d’application. |
redirect_uri | L’URL vers laquelle Auth0 redirigera le navigateur une fois l’autorisation accordée par l’utilisateur. Le code d’autorisation sera indiqué dans le paramètre URL code . Vous devez spécifier cette URL comme une URL de rappel dans vos Application Settings (Paramètres d’application). Avertissement: Selon la Spécification OAuth 2.0, Auth0 supprime tout ce qui suit le hachage et ne respecte aucun fragment. |
scope | Spécifie les permissions que vous demandez, qui déterminent les demandes (ou attributs utilisateur) que vous voulez renvoyer. Elles doivent être séparées par un espace. Pour obtenir un jeton d’ID dans la réponse, vous devez préciser une permissions d’au moins openid . Si vous souhaitez obtenir le profil complet de l’utilisateur, vous pouvez demander openid profile . Vous pouvez demander n’importe laquelle des permissions standard OpenID Connect (OIDC) sur les utilisateurs, comme email , ou des demandes personnalisées conformes à un format à espaces de noms. Inclure offline_access pour obtenir un Jeton d’actualisation (assurez-vous que le champ Allow Offline Access est activé dans les paramètres de l’application). |
state | (recommandé) Une chaîne alphanumérique arbitraire opaque que votre application ajoute à la demande initiale qu’Auth0 inclut lors de la redirection vers votre application. Pour savoir comment utiliser cette valeur afin de prévenir les attaques de falsification de requête intersites (CSRF), voir Atténuer les attaques CSRF avec les paramètres d’état. |
connection | (facultatif) Oblige l’utilisateur à se connecter avec une connexion spécifique. Par exemple, vous pouvez passer une valeur de github pour envoyer l’utilisateur directement à GitHub pour se connecter avec son compte GitHub. Si non spécifié, l’utilisateur voit l’écran Auth0 Lock avec toutes les connexions configurées. Vous pouvez voir une liste de vos connexions configurées sur l’onglet Connexions de votre application. |
organization | (facultatif) ID de l’organisation à utiliser pour authentifier un utilisateur. Lorsqu’il n’est pas fourni, si votre application est configurée pour Display Organization Prompt (Afficher l’invite de l’organisation), l’utilisateur pourra entrer le nom de l’organisation lors de l’authentification. |
invitation | (facultatif) ID du ticket de l’invitation de l’organisation. Lorsque vous (invitez un membre à une organisation, votre application doit traiter l’acceptation de l’ invitation en transmettant les paires clé-valeur invitation et organization lorsque l’utilisateur accepte l’invitation. |
login_hint | (facultatif) Remplit le champ d’identification de la page de connexion ou d’inscription lors de la redirection vers Auth0. Pris en charge par l’expérience de connexion universelle. |
Réponse
Si tout se passe bien, vous recevrez une réponseHTTP 302
. Le code d’autorisation est compris à la fin de cette URL :
Jetons de requête
Maintenant que vous avez un code d’authentification, vous pouvez l’échanger pour des jetons. En utilisant le code d’autorisation (code
) extrait de l’étape précédente, vous devrez POST
sur l’URL du jeton.
Exemple d’URL « POST to token »
Paramètres
Nom de paramètres | Description |
---|---|
grant_type | Définir sur authorization_code . |
code | authorization_code récupéré à l’étape précédente de ce tutoriel. |
client_id | L’ID client de votre application. Vous pouvez trouver cette valeur dans les paramètres de votre application. |
client_secret | Le secret client de votre application. Vous pouvez trouver cette valeur dans les paramètres de votre application. Pour en savoir plus sur les méthodes d’authentification d’application disponibles, lisez Identifiants d’applications. |
redirect_uri | L’URL de rappel valide définie dans les paramètres de votre Application. Cela doit correspondre exactement à redirect_uri passé à l’ URL d’autorisation à l’étape précédente de ce tutoriel. Notez que cela doit être codé URL. |
Réponse
Si tout se passe bien, vous recevrez une réponse HTTP 200 avec une charge utile contenant les valeursaccess_token
, refresh_token
, id_token
, et token_type
:
Validez vos jetons avant de les enregistrer. Pour en savoir plus, lisez Valider les jetons d’ID et Valider les jetons d’accès.
refresh_token
ne sera présent dans la réponse que si vous avez inclus la permission offline_access
et activé Autoriser l’accès hors ligne pour votre API dans le Dashboard.
Les jetons d’actualisation doivent être stockés en toute sécurité car ils permettent aux utilisateurs de rester authentifiés pratiquement indéfiniment.
Cas d’utilisation
Demande d’authentification de base
Cet exemple montre la requête la plus basique que vous pouvez faire lorsque vous autorisez l’utilisateur à l’étape 1. L’écran de connexion Auth0 permet à l’utilisateur de se connecter avec l’une des connexions configurées.Demander le nom et la photo de profil de l’utilisateur
Outre l’authentification habituelle de l’utilisateur, cet exemple montre comment demander des informations supplémentaires sur l’utilisateur, telles que son nom et sa photo. Pour demander le nom et la photo de l’utilisateur, vous devez ajouter les permissions appropriées lors de l’autorisation de l’utilisateur :Demande de connexion d’un utilisateur avec GitHub
En plus de l’authentification habituelle des utilisateurs, cet exemple montre comment envoyer les utilisateurs directement à un fournisseur d’identité sociale, tel que GitHub. Vous devrez d’abord configurer la connexion appropriée dans Auth0 Dashboard > Authentication (Authentification) > Social et obtenir le nom de la connexion à partir de l’onglet Settings (Paramètres). Pour envoyer les utilisateurs directement à l’écran de connexion GitHub, vous devez passer le paramètreconnection
et définir sa valeur sur le nom de la connexion (dans ce cas, github
) lors de l’autorisation de l’utilisateur à l’étape 1 :
sub
avec l’ID unique de l’utilisateur renvoyé par GitHub. Lorsque vous décodez le jeton d’ID, il ressemble à ce qui suit :