- event.session: Fournit des renseignements pertinents, notamment l’
idunique, les datescreated_at,expires_at,idle_expires_at,updated_atetauthentication_at, ainsi que des renseignements surclientsetdevice, commeASN,IPetUser_agent. - api.session: Vous permet de gérer les sessions existantes en les révoquant ou en modifiant les dates d’
expiry.
event.session et api.session prennent tous deux en charge les flux interactifs Web, y compris le flux de code d’autorisation, le flux implicite, le flux de code d’appareil, ainsi que et .
Vous pouvez utiliser l’objet event.session pour examiner les horodatages des interactions les plus récentes et évaluer les risques associés aux transactions en cours. Vous pouvez également combiner l’objet event.session avec d’autres objets d’événement, comme event.authentication ou event.request.
Vous pouvez ensuite utiliser l’objet api.session pour réinitialiser les dates d’expiration de la session existante ou révoquer la session.
Pour en savoir plus sur ces objets, consultez :
- Objet Event : Découvrez l’objet Event de session et ses propriétés.
- Objet API : Découvrez l’objet API de session et ses méthodes.
Révoquer des sessions avec Actions
session-revoked pour déconnecter les utilisateurs de toutes les applications liées à la session en cours et consigne un événement session_revoked dans les journaux du locataire.
Vous pouvez utiliser cette méthode pour :
- Invalider la transaction de session en cours dans Auth0
- Refuser la transaction en cours
-
Révoquer tous les jetons d’actualisation associés à la session existante ayant une valeur
session_idcorrespondante.- Il s’agit d’une option configurable; vous pouvez choisir de conserver les jetons d’actualisation au lieu de les révoquer. Cette opération s’exécute de manière asynchrone et devient éventuellement cohérente.
Si vous souhaitez utiliser la méthode
api.session.revoke(reason,options), assurez-vous que la propriété event.session.id existe.Contrairement à api.access.deny(), api.session.revoke() refusera la transaction en cours et révoquera également la session; par conséquent, une authentification par premier facteur sera de nouveau requise.Surveiller les événements de journal liés à la révocation
session_revoked indiquant qu’une session a été révoquée, avec l’attribut session_id associé.
Modifier les dates d’expiration des sessions avec Actions
- api.session.setExpiresAt(absolute) vous permet de définir une nouvelle date d’expiration absolue de session (Exiger une nouvelle connexion après) pour une session donnée.
- api.session.setIdleExpiresAt(idle) vous permet de définir une nouvelle date d’expiration après inactivité pour une session donnée.
- l’organisation d’un utilisateur
- la connexion Auth0 d’un utilisateur
- l’appartenance d’un utilisateur à un groupe ou son profil
- l’évaluation des risques
- tout autre critère dynamique disponible pendant l’exécution de l’Action
Si vous voulez utiliser les méthodes
api.session.setExpiresAt(absolute) et api.session.setIdleExpiresAt(idle), assurez-vous qu’une propriété de l’objet event.session existe, comme event.session.id.La méthode api.session.setIdleExpiresAt(idle) définit le délai d’expiration d’inactivité de la session pour l’interaction en cours. Si vous ne réappliquez pas la méthode, les interactions réussies suivantes remplaceront ce délai d’expiration par les paramètres de délai d’expiration d’inactivité de la session.- Imposer des sessions éphémères aux utilisateurs ayant des rôles à risque élevé ou appartenant à des groupes à risque élevé
- Exiger une réauthentification à la fermeture du navigateur pour certains appareils ou certaines plages d’adresses IP
- Réduire la durée de vie des sessions dans des environnements non fiables ou partagés (p. ex., des ordinateurs publics)
| Propriété | Type | Description |
|---|---|---|
persistent | string | La session est stockée dans un témoin persistant et survit aux redémarrages du navigateur, à moins d’être effacée manuellement. |
non-persistent | string | La session est stockée uniquement en mémoire et est effacée lorsque le navigateur ou l’application est fermé. |
La méthode
api.session.setCookieMode() remplace le paramètre par défaut du locataire pour la session en cours.Auth0 conserve ce paramètre de persistance pendant toute la session; il n’est pas nécessaire de le définir de nouveau lors de futures authentifications silencieuses.La méthode api.session.setCookieMode() doit être utilisée dans une Action post-login. Si elle est utilisée dans un contexte où api.session n’est pas disponible, l’appel échoue silencieusement.Limitations
api.session.setExpiresAt(absolute) et api.session.setIdleExpiresAt(idle) ne contiendront pas la propriété suivante de event.session : last_interacted_at.
Les sessions émises avant la mise en disponibilité de la méthode d’API post-login api.session.revoke(reason, options) ne contiendront pas les propriétés suivantes de event.session.device :
initial_ipinitial_asninitial_user_agent
w) dans les journaux du locataire.
Cas d’utilisation : Révoquer une session
api.session.revoke(reason, options) et de l’objet event.session.
Révoquer une session en raison d’une liaison à un réseau ASN
event.session.device.initial_asn et event.request.asn, pour lier les transactions de session à un numéro de système autonome (ASN) précis pendant toute leur durée et exiger une réauthentification si le réseau ASN change.
event.session.device.initial_asn et event.request.asn restent dans le même réseau ASN pendant la transaction. Si cette vérification échoue, l’Action appelle api.session.revoke() pour :
- Invalider la session
- Refuser la transaction en cours
- Révoquer tous les jetons d’actualisation associés
- Exiger une nouvelle authentification
Révoquer une session en raison d’une liaison à une adresse IP
event.session.device.initial_ip et event.request.ip de l’objet post-login pour vous assurer qu’une transaction de session conserve la même adresse IP pendant toute sa durée. Dans ce scénario, tout changement d’adresse IP est considéré comme un risque, et l’utilisateur sera invité à se réauthentifier.
event.session.device.initial_ip et event.request.ip correspondent à la même adresse IP pendant la transaction. Si la vérification échoue, l’Action appelle ensuite api.session.revoke() pour :
- Invalider la session
- Refuser la transaction en cours
- Révoquer tous les jetons d’actualisation associés
- Exiger une nouvelle authentification
Cas d’utilisation : Personnaliser les dates d’expiration d’une session
api.session.setExpiresAt(absolute) et api.session.setIdleExpiresAt(idle), ainsi que de l’objet event.session.
Personnaliser le délai d’expiration absolu de la session en fonction des connexions
- event.session.created_at
- event.session.expires_at
event.connection.metadata.session_timeout définit un délai d’expiration propre à la connexion.
session_timeout est défini dans la connexion actuelle. Dans ce cas, l’Action définit l’expiration de la session pour qu’elle corresponde au moment où la session a été created, plus le connection_lifetime.
Personnaliser le délai d’inactivité de la session en fonction de l’Organisation
current_time et utiliser une nouvelle métadonnée d’Organisation appelée idle_session_timeout pour définir le délai d’inactivité souhaité pour une organisation.
current_time plus idle_organization_lifetime.