- event.session: Fournit des renseignements pertinents, notamment un
idunique, les datescreated_at,expires_at,idle_expires_atetupdated_at, ainsi que l’information surclients,authentication_atetdevice, commeASN,IPetUser_agent. - api.session: Vous permet de gérer les sessions existantes en révoquant des sessions ou en modifiant les dates
expiry.
event.session et api.session prennent tous deux en charge les flux interactifs sur le Web, y compris le flux du code d’autorisation, le flux implicite, le flux du 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 aussi 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 soit pour réinitialiser les dates d’expiration de la session existante, soit pour révoquer la session.
Pour en savoir plus sur ces objets, consultez :
- Event object: Découvrez l’objet Event de session et ses propriétés.
- API object: 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 consigner un événement session_revoked dans les journaux du tenant.
Vous pouvez utiliser cette méthode pour :
- Invalider la transaction de la session en cours dans Auth0
- Rejeter 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 personnalisable; vous pouvez choisir de conserver les jetons d’actualisation au lieu de les révoquer. Cette opération s’exécute de façon asynchrone et devient cohérente à terme.
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() rejettera la transaction en cours et révoquera aussi la session; une authentification du premier facteur sera donc 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 qui y est associé.
Modifier les dates d’expiration des sessions avec Actions
- api.session.setExpiresAt(absolute) vous permet de définir, pour une session donnée, une nouvelle date d’expiration absolue de la session (Require log in after).
- api.session.setIdleExpiresAt(idle) vous permet de définir, pour une session donnée, une nouvelle date d’expiration du délai d’inactivité.
- l’organisation d’un utilisateur
- la connexion Auth0 d’un utilisateur
- l’appartenance d’un utilisateur à un groupe ou son profil
- l’évaluation du risque
- 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, par exemple event.session.id.La méthode api.session.setIdleExpiresAt(idle) définit le délai d’inactivité de la session pour l’interaction en cours. Si la méthode n’est pas appliquée de nouveau, les interactions réussies suivantes remplaceront le délai d’inactivité en fonction des paramètres de délai 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 nouvelle authentification lorsque le navigateur est fermé pour certains appareils ou certaines plages d’adresses IP
- Réduire la durée de la session dans des environnements non fiables ou partagés (p. ex., des ordinateurs publics)
La méthode
api.session.setCookieMode() remplace le paramètre par défaut du tenant 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 dans de futurs flux d’authentification silencieuse.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, la requête échoue silencieusement.Limitations
api.session.setExpiresAt(absolute) et api.session.setIdleExpiresAt(idle) ne contiendront pas la propriété event.session suivante : last_interacted_at.
Les sessions émises avant la publication de la méthode d’API post-login api.session.revoke(reason, options) ne contiendront pas les propriétés event.session.device suivantes :
initial_ipinitial_asninitial_user_agent
w) dans les journaux du tenant.
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 au réseau ASN
event.session.device.initial_asn et event.request.asn, pour lier les transactions de session à un réseau numéro de système autonome (ASN) précis pendant toute leur durée et exiger une nouvelle authentification si le réseau ASN change.
event.session.device.initial_asn et event.request.asn appartiennent toujours au même réseau ASN au cours de la transaction. Si cette vérification échoue, l’Action appelle api.session.revoke() pour :
- Invalider la session
- Rejeter la transaction en cours
- Révoquer tous les jetons d’actualisation associés
- Exiger une réauthentification
Révoquer une session en raison d’une association à une adresse IP
event.session.device.initial_ip et event.request.ip pour vous assurer qu’une transaction de session utilise la même adresse IP pendant toute sa durée. Dans ce scénario, tout changement d’IP est considéré comme un risque, et l’utilisateur devra s’authentifier de nouveau.
event.session.device.initial_ip et event.request.ip conservent la même adresse IP tout au long de la transaction. Si la vérification échoue, l’Action appelle ensuite api.session.revoke() pour :
- Invalider la session
- Rejeter la transaction en cours
- Révoquer tous les jetons d’actualisation associés
- Exiger une ré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 d’une 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. Le cas échéant, l’Action définit l’expiration de la session 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, à l’aide de nouvelles métadonnées d’organisation appelées idle_session_timeout, configurer le délai d’inactivité voulu pour une organisation.
current_time plus idle_organization_lifetime .