Connexion utilisateur
- Lock hébergé : utilisez une instance du widget Lock hébergée sur l’infrastructure d’Auth0.
- Lock intégré : intégrez le widget Lock dans une page Web de votre application. Vous disposez de certaines options de personnalisation pour le widget Lock lui-même et d’un contrôle total sur le reste du code HTML de la page.
- Interface utilisateur personnalisée : développez une page Web entièrement personnalisée pour l’écran de connexion. Le formulaire HTML personnalisé enverra les données à votre serveur qui, à son tour, authentifiera l’utilisateur à l’aide de l’Authentication API. Pour savoir quand utiliser une interface utilisateur personnalisée, consultez Personnaliser les pages de Classic Login avec Lock ou le SDK.
Automatiser la détection du domaine d’origine (HRD)
-
Identifier l’IdP par programmation : lorsque vous lancez une transaction d’authentification avec Auth0, vous pouvez envoyer, au besoin, un paramètre
connection. Cette valeur correspond directement à toute connexion définie dans votre tableau de bord. Lorsque vous utilisez la version hébergée de Lock en appelant le point de terminaison/authorize, vous pouvez transmettre un paramètre de chaîne de requêteconnectioncontenant le nom de la connexion. Sinon, si vous utilisez Lock intégré, c’est aussi simple que d’écrireauth0.show({connections: ['{yourConnection}']});.- Il existe plusieurs façons pratiques d’obtenir la valeur
connection. L’une d’elles consiste à utiliser des URL personnalisées : par exemple, les employés de l’entreprise utiliseronthttps://internal.yoursite.com, tandis que les consultants externes utiliseronthttps://external.yoursite.com.
- Il existe plusieurs façons pratiques d’obtenir la valeur
-
Utiliser des domaines de courriel : Lock peut utiliser les domaines de courriel pour acheminer les demandes d’authentification. Les connexions d’entreprise dans Auth0 peuvent être associées à des
domains. Si une connexion est configurée ainsi, la zone de texte du mot de passe est automatiquement désactivée lorsqu’on saisit un courriel ayant un domaine associé. Notez que vous pouvez associer plusieurs domaines à une seule connexion.
Gestion des sessions
- Session d’application : la première est la session à l’intérieur de l’application. Même si votre application utilise Auth0 pour authentifier les utilisateurs, vous devez tout de même garder la trace du fait que l’utilisateur s’est connecté à votre application. Dans une application web classique, cela se fait en stockant des informations dans un cookie.
- Session Auth0 : ensuite, Auth0 conserve aussi une session et stocke les informations de l’utilisateur dans un cookie. La prochaine fois qu’un utilisateur est redirigé vers l’écran Auth0 Lock, ses informations sont conservées.
- Session du fournisseur d’identité : la dernière couche est celle du fournisseur d’identité, par exemple Facebook ou Google. Lorsque vous permettez aux utilisateurs de se connecter avec l’un de ces fournisseurs et qu’ils y sont déjà connectés, ils n’auront pas à se reconnecter. Ils pourraient simplement devoir accorder les autorisations nécessaires pour partager leurs informations avec Auth0, puis avec votre application.
Comment puis-je contrôler la durée de la session locale de l’application de l’utilisateur ? Puis-je la piloter depuis Auth0 ?
L’application web contrôle entièrement la session locale de l’utilisateur. La façon de procéder dépend généralement de la pile web utilisée (par exemple, ASP.NET). Dans tous les cas, les différentes approches s’appuient ultimement sur un ou plusieurs cookies pour contrôler la session. Le développeur peut choisir d’utiliser la date d’expiration du JWT ID Token renvoyé par Auth0 pour contrôler la durée de sa session, ou de l’ignorer complètement. Certains développeurs stockent l’ID Token lui-même dans l’état de session et mettent fin à la session de l’utilisateur lorsqu’il expire.La raison d’utiliser l’expiration du jeton pour déterminer celle de la session locale est qu’elle vous permet de contrôler de manière centralisée la durée de la session d’un utilisateur depuis l’Auth0 Dashboard.
- Lancer le flux d’authentification OIDC : le navigateur de l’utilisateur envoie une requête à Auth0 pour lancer le flux OIDC.
- Définir le cookie SSO : Auth0 définit un cookie pour stocker les informations de l’utilisateur.
- Échanger le code et renvoyer l’ID Token : Auth0 renvoie une requête au serveur web avec le code. Le serveur web échange le code contre un ID Token.
- Définir le cookie d’authentification et envoyer la réponse : le serveur web renvoie une réponse au navigateur et définit le cookie d’authentification de l’application pour stocker les informations de session de l’utilisateur.
- Le cookie d’authentification est envoyé avec chaque requête suivante : le cookie d’authentification de l’application est envoyé avec chaque requête suivante comme preuve que l’utilisateur est authentifié.
En quoi la session SSO d’Auth0 a-t-elle une incidence sur la session de l’application ?
Auth0 gère sa propre session d’authentification unique. Les applications peuvent choisir de tenir compte de cette session SSO ou de l’ignorer lorsqu’il s’agit de maintenir leur propre session locale. Le widget Lock offre même une fonctionnalité spéciale qui lui permet de détecter l’existence d’une session SSO Auth0 et de demander à l’utilisateur s’il souhaite se reconnecter avec ce même compte.
Déconnexion de l’utilisateur
- Session d’application : vous devez déconnecter l’utilisateur de votre application Web en supprimant sa session.
- Session Auth0 : vous devez déconnecter l’utilisateur d’Auth0. Pour ce faire, redirigez l’utilisateur vers
https://{yourDomain}/v2/logout. La redirection de l’utilisateur vers cette URL efface tous les témoins d’ définis par Auth0 pour l’utilisateur. - Session du fournisseur d’identité : bien que ce ne soit pas une pratique courante, vous pouvez forcer l’utilisateur à se déconnecter du fournisseur d’identité utilisé, par exemple Facebook ou Google. Pour ce faire, ajoutez le paramètre de chaîne de requête
federatedà l’URL de déconnexion :https://{yourDomain}/v2/logout?federated.
returnTo dont la valeur est l’URL cible : https://{yourDomain}/v2/logout?returnTo=http://www.example.com. Notez que vous devez ajouter l’URL returnTo à Allowed Logout URLs. Pour en savoir plus sur l’implémentation, consultez : Logout.
Le flux de déconnexion (sans inclure la déconnexion fédérée) est le suivant :

- Initier le flux de déconnexion : le flux de déconnexion est lancé à partir du navigateur, par exemple lorsque l’utilisateur clique sur un lien Logout. Une requête est envoyée au serveur Web.
- Effacer la session locale de l’utilisateur : la session ou le témoin d’application de l’utilisateur est effacé.
- Rediriger le navigateur vers la déconnexion Auth0 : le navigateur de l’utilisateur est redirigé vers l’URL de déconnexion Auth0.
- Effacer le cookie SSO : Auth0 efface le cookie SSO de l’utilisateur.
- Rediriger vers l’URL après la déconnexion : Auth0 renvoie une réponse de redirection et redirige le navigateur de l’utilisateur vers le paramètre de chaîne de requête
returnTo.
Contrôle d’accès
- En configurant et en utilisant l’Authorization Extension d’Auth0.
- En utilisant des groupes Active Directory. Ils peuvent être utilisés avec l’Authorization Extension en faisant correspondre des groupes Active Directory aux groupes que vous définissez à l’aide de l’Authorization Extension.
- En ajoutant des métadonnées au profil de l’utilisateur à l’aide de Rules.
- En appelant des services externes depuis une Rule.
Authorization Extension
À ce stade, l’Authorization Extension est principalement conçue pour appliquer une autorisation à gros grain, par exemple pour contrôler l’accès à une application en fonction de l’appartenance d’un utilisateur à un groupe. Elle n’est pas nécessairement conçue pour gérer un contrôle d’accès fin (par exemple, déterminer si un utilisateur peut effectuer une action précise dans l’application), même si c’est ainsi que nous l’utilisons dans ce cas.
Admin, ce qui leur permettra d’approuver les feuilles de temps. L’Authorization Extension permet d’associer des groupes à des appartenances à des groupes existantes.
Tous les administrateurs des feuilles de temps seront affectés au groupe Timesheet Administrators dans Active Directory, qui sera automatiquement associé au groupe Admin dans l’application Timesheet.
Lorsque vous installez l’Authorization Extension, elle crée une Rule en arrière-plan, qui effectue les opérations suivantes :
- Déterminer l’appartenance de l’utilisateur aux groupes.
- Stocker les informations sur l’appartenance de l’utilisateur aux groupes dans
app_metadata. - Ajouter l’appartenance de l’utilisateur aux groupes au jeton sortant.
- Vérifier que l’utilisateur a obtenu l’accès à l’application actuelle.

Timesheet Admins au groupe Admin que vous venez de créer.


Timesheet Admins dans Active Directory, et ces utilisateurs seront automatiquement associés au groupe Admin dans votre application.
Pour en savoir plus, consultez la documentation de l’Authorization Extension.
Appliquez les autorisations dans votre application
authorization contenant tous les paramètres liés à l’autorisation pour un utilisateur donné. Les groupes d’un utilisateur sont ajoutés comme sous-revendication de la revendication authorization, appelée groups, et tous les groupes auxquels cet utilisateur appartient sont ajoutés à cette revendication sous forme de tableau. Voici un exemple de ce à quoi peut ressembler le payload JSON d’un ID Token avec les groupes indiqués :
authorization les groupes auxquels il appartient. Vous pourrez ensuite stocker ces groupes, ainsi que d’autres renseignements sur l’utilisateur, dans sa session, puis les interroger pour déterminer s’il dispose des autorisations nécessaires pour effectuer une action donnée en fonction de son appartenance à un groupe.
Consultez l’implémentation dans ASP.NET Core.