Ajouter la connexion au moyen du flux de code d’autorisation
Découvrez comment ajouter la connexion à votre application Web traditionnelle au moyen du flux de code d’autorisation.
Vous pouvez ajouter la connexion à votre application Web traditionnelle à l’aide du flux de code d’autorisation. Pour savoir comment ce flux fonctionne et pourquoi vous devriez l’utiliser, consultez Authorization Code Flow. Pour appeler votre API à partir d’une application Web traditionnelle, consultez Call Your API Using the Authorization Code Flow.Pour mettre en œuvre le flux de code d’autorisation, Auth0 fournit les ressources suivantes :
Authentication API : si vous préférez créer votre propre solution, poursuivez votre lecture pour apprendre à appeler directement notre API.
Après une connexion réussie, votre application aura accès au de l’utilisateur et à son . Le jeton d’identité contient les renseignements de base du profil utilisateur, et le jeton d’accès peut servir à appeler le point de terminaison Auth0 /userinfo ou vos propres API protégées. Pour en savoir plus sur les jetons d’identité, consultez Jetons d’identité. Pour en savoir plus sur les jetons d’accès, consultez Access Tokens.Vous demanderez l’autorisation de l’utilisateur, puis vous serez redirigé vers votre application avec un authorization_code. Vous échangerez ensuite le code contre des jetons.
Sélectionnez Application Web classique comme Type d’application.
Ajoutez une URL de rappel autorisée : {https://yourApp/callback}.
Assurez-vous que les Types d’octroi de votre application incluent le code d’autorisation. Pour en savoir plus, consultez Mettre à jour les type d’octroi.
L’URL vers laquelle Auth0 redirigera le navigateur une fois que l’utilisateur aura accordé l’autorisation. Le code d’autorisation sera disponible dans le paramètre d’URL code. Vous devez indiquer cette URL comme URL de rappel valide dans les Paramètres de l’application.
Avertissement : Conformément à la spécification OAuth 2.0, Auth0 supprime tout ce qui se trouve après le hash et ne tient pas compte des fragments.
scope
Précise les scope pour lesquelles vous souhaitez demander une autorisation, ce qui détermine les claims (ou attributs utilisateur) à renvoyer. Elles doivent être séparées par un espace. Pour obtenir un ID Token dans la réponse, vous devez préciser au minimum la portée openid. Si vous souhaitez renvoyer le profil complet de l’utilisateur, vous pouvez demander openid profile. Vous pouvez demander n’importe laquelle des scope OpenID Connect (OIDC) standard concernant les utilisateurs, comme email, ou des claims personnalisés conformes à un format avec espace de noms. Incluez offline_access pour obtenir un Refresh Token (assurez-vous que le champ Allow Offline Access est activé dans les Paramètres de l’application).
state
(recommandé) Une chaîne alphanumérique opaque arbitraire que votre application ajoute à la requête initiale et qu’Auth0 inclut lors de la redirection vers votre application. Pour voir comment utiliser cette valeur afin de prévenir les attaques de falsification de requêtes intersites (CSRF), consultez Mitigate CSRF Attacks With State Parameters.
connection
(facultatif) Force l’utilisateur à se connecter avec une connexion précise. Par exemple, vous pouvez transmettre la valeur github pour envoyer l’utilisateur directement vers GitHub afin qu’il se connecte avec son compte GitHub. Lorsqu’elle n’est pas précisée, l’utilisateur voit l’écran Auth0 Lock avec toutes les connexions configurées. Vous pouvez consulter la liste de vos connexions configurées dans l’onglet Connections de votre application.
organization
(facultatif) ID de l’organisation à utiliser lors de l’authentification d’un utilisateur. Lorsqu’il n’est pas fourni, si votre application est configurée pour Display Organization Prompt, l’utilisateur pourra saisir le nom de l’organisation au moment de s’authentifier.
invitation
(facultatif) ID du ticket d’invitation de l’organisation. Lorsque vous invitez un membre dans une Organization, votre application doit gérer 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 nom d’utilisateur/courriel sur la page de login ou d’inscription lors de la redirection vers Auth0. Pris en charge par l’expérience Universal Login.
Par exemple, votre extrait HTML pour votre URL d’autorisation lorsque vous ajoutez le login à votre application pourrait ressembler à ceci :
Maintenant que vous avez un code d’autorisation, vous devez l’échanger contre des jetons. À l’aide du code d’autorisation extrait (code) à l’étape précédente, vous devrez envoyer une requête POST à l’URL du jeton.
Le Client Secret de votre application. Vous trouverez cette valeur dans les Paramètres de l’application. Pour en savoir plus sur les méthodes d’authentification d’application disponibles, consultez Identifiants de l’application.
redirect_uri
L’URL de rappel valide définie dans les paramètres de votre application. Elle doit correspondre exactement au redirect_uri transmis à l’URL d’autorisation à l’étape précédente de ce tutoriel. Notez qu’elle doit être encodée dans l’URL.
Les jetons d’identité contiennent des renseignements sur l’utilisateur qu’il faut décoder et extraire.Les jetons d’accès servent à envoyer une requête au point de terminaison /userinfo de l’API d’authentification Auth0 ou à une autre API. Si vous appelez votre propre API, la première chose que votre API devra faire est de vérifier le jeton d’accès.Les jetons d’actualisation sont utilisés pour obtenir un nouveau jeton d’accès ou un nouveau jeton d’identité après l’expiration du précédent. Le refresh_token ne sera présent dans la réponse que si vous avez inclus le scope offline_access et activé Allow Offline Access pour votre API dans le Dashboard.
Les jetons d’actualisation doivent être stockés de façon sécuritaire, puisqu’ils permettent à un utilisateur de rester authentifié pratiquement indéfiniment.
Cet exemple montre la requête la plus simple que vous pouvez effectuer pour autoriser l’utilisateur à l’étape 1. Il affiche l’écran de connexion Auth0 et permet à l’utilisateur de se connecter avec n’importe laquelle de vos connexions configurées :Maintenant, lorsque vous demandez des jetons, votre jeton d’identité contiendra les claims les plus élémentaires. Lorsque vous décoderez le jeton d’identité, il ressemblera à ceci :
Demander le nom de l’utilisateur et sa photo de profil
En plus de l’authentification habituelle de l’utilisateur, cet exemple montre comment demander des renseignements supplémentaires sur l’utilisateur, comme son nom et sa photo de profil.Pour demander le nom et la photo de profil de l’utilisateur, vous devez ajouter les scopes appropriés au moment d’autoriser l’utilisateur :Maintenant, lorsque vous demandez des jetons, votre jeton d’identité contiendra les claims name et picture demandés. Une fois le jeton d’identité décodé, il ressemblera à ceci :
Demander à l’utilisateur de se connecter avec GitHub
En plus du processus habituel d’authentification des utilisateurs, cet exemple montre comment rediriger les utilisateurs directement vers un fournisseur d’identité social, comme GitHub. Vous devez d’abord configurer la connexion appropriée dans Auth0 Dashboard > Authentication > Social et récupérer le nom de la connexion dans l’onglet Settings.Pour envoyer les utilisateurs directement à l’écran de connexion à GitHub, vous devez transmettre le paramètre connection et lui attribuer comme valeur le nom de la connexion (dans ce cas-ci, github) lors de l’autorisation de l’utilisateur à l’étape 1 :Maintenant, lorsque vous demandez des jetons, votre jeton d’identité contiendra un champ sub avec l’ID unique de l’utilisateur renvoyé par GitHub. Lorsque vous décodez le jeton d’identité, il ressemblera à ceci :