Connexion utilisateur
- Hosted Lock : utilisez une instance du widget Lock hébergée sur l’infrastructure d’Auth0.
- Embedded Lock : intégrez le widget Lock dans une page web de votre application. Vous disposez de quelques options de personnalisation pour le widget Lock lui-même et d’un contrôle total sur le reste du HTML de la page.
- Custom UI : développez une page web entièrement personnalisée pour l’écran de connexion. Le formulaire HTML personnalisé transmettra les données à votre serveur, qui authentifiera ensuite l’utilisateur à l’aide de l’Authentication API. Pour en savoir plus sur les cas où utiliser une Custom UI, consultez Customize Classic Login Pages with Lock or SDK.
Automatiser Home Realm Discovery (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 à n’importe quelle connexion définie dans votre Dashboard. 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 Embedded Lock, il suffit d’écrireauth0.show({connections: ['{yourConnection}']});.- Il existe plusieurs façons pratiques d’obtenir la valeur de
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 sous-traitants externes utiliseronthttps://external.yoursite.com.
- Il existe plusieurs façons pratiques d’obtenir la valeur de
-
Utiliser des domaines de courriel : Lock peut utiliser les domaines de courriel pour acheminer les requêtes d’authentification. Les connexions d’entreprise dans Auth0 peuvent être associées à des
domains. Si une connexion est configurée ainsi, le champ du mot de passe se désactive automatiquement lorsqu’on saisit un courriel avec un domaine associé. Notez que vous pouvez associer plusieurs domaines à une seule connexion.
Gestion des sessions
- Application Session : la première est la session à l’intérieur de l’application. Même si votre application utilise Auth0 pour authentifier les utilisateurs, vous devrez tout de même garder 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.
- Auth0 session : ensuite, Auth0 conservera aussi une session et stockera les informations de l’utilisateur dans un cookie. La prochaine fois qu’un utilisateur sera redirigé vers l’écran Auth0 Lock, ses informations seront conservées.
- fournisseur d’identité session : 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 sont déjà connectés auprès de ce fournisseur, ils n’auront pas à se connecter de nouveau. Ils pourraient simplement devoir accorder les permissions nécessaires pour partager leurs informations avec Auth0 et, par conséquent, avec votre application.
Comment contrôler la durée de la session locale de l’utilisateur dans l’application ? Puis-je la gérer à partir d’Auth0 ?
L’application web contrôle entièrement la session locale de l’utilisateur. La façon de le faire dépend habituellement de la pile web utilisée (par exemple, ASP.NET). Quoi qu’il en soit, toutes les approches utilisent ultimement un ou plusieurs cookies pour contrôler la session. Le développeur peut choisir d’utiliser l’expiration du JWT ID Token retourné par Auth0 pour contrôler la durée de sa session, ou de l’ignorer complètement. Certains développeurs stockent le 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 donne un contrôle centralisé sur la durée d’une session utilisateur à partir de l’Auth0 Dashboard.
- Lancer le flux d’authentification OIDC : le navigateur de l’utilisateur enverra une requête à Auth0 pour lancer le flux OIDC.
- Définir le cookie SSO : Auth0 définira un cookie pour stocker les informations de l’utilisateur.
- Effectuer l’échange de code et retourner le ID Token : Auth0 enverra une requête au serveur web et retournera le code. Le serveur web échangera le code contre un ID Token.
- Définir le cookie d’authentification et envoyer la réponse : le serveur web renverra une réponse au navigateur et définira 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 subséquente : le cookie d’authentification de l’application sera envoyé avec chaque requête subséquente comme preuve que l’utilisateur est authentifié.
Comment 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 peut détecter si une session SSO Auth0 existe et demander à l’utilisateur s’il souhaite se connecter de nouveau en tant que ce même utilisateur.
Déconnexion de l’utilisateur
- Application Session : Vous devez déconnecter l’utilisateur de votre application Web en supprimant sa session.
- Auth0 session : Vous devez déconnecter l’utilisateur d’Auth0. Pour ce faire, redirigez l’utilisateur vers
https://{yourDomain}/v2/logout. Rediriger l’utilisateur vers cette URL efface tous les définis par Auth0 pour l’utilisateur. - fournisseur d’identité session : 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 Logout :https://{yourDomain}/v2/logout?federated.
returnTo avec l’URL cible comme valeur : https://{yourDomain}/v2/logout?returnTo=http://www.example.com. Notez que vous devrez ajouter l’URL returnTo aux Allowed Logout URLs. Pour en savoir plus sur la façon de mettre cela en œuvre, consultez : Logout.
Le flux de déconnexion (sans inclure la déconnexion fédérée) se déroule comme suit :

- Lancer le flux de déconnexion : Le flux de déconnexion est lancé depuis le navigateur, par exemple lorsque l’utilisateur clique sur un lien Logout. Une requête est alors envoyée au serveur Web.
- Effacer la session locale de l’utilisateur : L’Application Session / le cookie de l’utilisateur sera effacé.
- Rediriger le navigateur vers Auth0 Logout : Le navigateur de l’utilisateur sera redirigé vers l’URL de Logout d’Auth0.
- Effacer le cookie SSO : Auth0 effacera le cookie SSO de l’utilisateur.
- Rediriger vers l’URL post-déconnexion : Auth0 renverra une réponse de redirection et redirigera 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’Auth0 Authorization Extension.
- En utilisant des groupes Active Directory. Ceux-ci peuvent être utilisés avec l’Authorization Extension en mappant les groupes Active Directory aux groupes que vous définissez à l’aide de l’Authorization Extension.
- En ajoutant des metadata au profil de l’utilisateur à l’aide des rules.
- En appelant des services externes depuis une rule.
Authorization Extension
À l’heure actuelle, l’Authorization Extension est principalement conçue pour appliquer une autorisation générale, 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 contrôler un accès plus granulaire (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 qui leur permettra d’approuver les feuilles de temps. L’Authorization Extension permet de mapper des groupes à une appartenance à des groupes existante.
Tous les administrateurs des feuilles de temps seront attribués au groupe Timesheet Administrators dans Active Directory, lequel sera automatiquement mappé au groupe Admin dans l’application Timesheet.
Lorsque vous installez l’Authorization Extension, elle crée une rule en arrière-plan, qui fait ce qui suit :
- Déterminer l’appartenance de l’utilisateur à des groupes.
- Stocker les renseignements sur l’appartenance de l’utilisateur à des groupes dans
app_metadata. - Ajouter l’appartenance de l’utilisateur à des groupes au token sortant.
- Vérifier que l’utilisateur a reçu 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 mappés au groupe Admin dans notre application.
Pour en savoir plus, consultez la documentation de l’Authorization Extension.
Appliquer les permissions dans votre application
authorization contenant tous les paramètres liés à l’autorisation pour un utilisateur donné. Les groups d’un utilisateur sont ajoutés comme sous-claim du claim authorization, sous le nom groups, et tous les groups auxquels l’utilisateur appartient sont ajoutés à ce claim sous forme de tableau. Voici un exemple de ce à quoi peut ressembler le payload JSON d’un ID Token lorsque les groups y sont listé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 consulter afin de déterminer s’il dispose des permissions nécessaires pour effectuer une certaine action en fonction de son appartenance à un groupe.
Consultez la mise en œuvre dans ASP.NET Core.