- event.session : Fournit des renseignements pertinents, y compris les données
id
,created_at
,expires_at
,idle_expires_at
etupdated_at
,clients
,authentication_at
et des données liées àdevice
, commeASN
,IP
etUser_agent
. - api.session: Vous permet de gérer les sessions existantes en révoquant les sessions ou en modifiant les dates d’expiration
expiry
.
event.session
et api.session
prennent en charge les flux interactifs basés sur le 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 l’horodatage des dernières interactions 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, tels que 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 : En savoir plus sur l’objet de session Event et ses propriétés
- Objet API : En savoir plus sur l’objet de session API et ses méthodes.
Révoquer des sessions à l’aide des Actions
La méthode post-connexion api.session.revoke(reason, options) vous permet de réagir aux risques associés à une transaction. Cette méthode comprend une option pour vous permettre de conserver les jetons d’actualisation liés à la transaction révoquée. En plus de révoquer la session, la méthode lancera également un initiateur de déconnexion de canal d’appui OIDCsession-revoked
pour déconnecter les utilisateurs de toutes les applications liées à la session en cours et enregistrer un événement session_revoked dans les journaux du locataire.
Vous pouvez utiliser cette méthode pour :
- invalider la transaction de la session en cours dans Auth0;
- refuser la transaction en cours;
-
révoquer tous les jetons d’actualisation associés à la session existante avec une valeur
session_id
correspondante.- Il s’agit d’une option personnalisable, vous pouvez choisir de conserver les jetons d’actualisation plutôt que de les révoquer. Cette opération s’exécute de manière asynchrone et devient finalement 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 l’authentification du premier facteur sera à nouveau requise.Surveiller les événements de révocation du journal
L’opération de révocation ajoute l’événement de journal suivant dans vos journaux du locataire: Un code d’événementsession_revoked
indiquant une session révoquée avec son attribut session_id
associé.
Cas d’utilisation des sessions avec Actions
Vous pouvez modifier les dates d’expiration de la session avec les méthodes de post-connexion suivantes :- api.session.setExpiresAt(absolute) vous permet de définir une nouvelle date d’expiration de session absolue (Nécessiter la connexion après) pour une session spécifiée.
- api.session.setIdleExpiresAt(idle) vous permet de définir une nouvelle date d’expiration du délai d’inactivité pour une session spécifiée.
- L’organisation d’un utilisateur
- La connexion Auth0 d’un utilisateur
- L’adhésion ou le profil de groupe d’un utilisateur spécifique
- L’évaluation des risques
- Tout autre critère dynamique disponible lors de l’exécution de l’Action
Si vous souhaitez 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, telle que 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 réappliquée, les interactions ultérieures réussies remplaceront le délai d’inactivité à l’aide des paramètres de délai d’inactivité de la session.Limites
Les sessions émises avant la publication des méthodes API post-connexionapi.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 API post-connexion api.session.revoke(reason, options)
ne contiendront pas les propriétés event.session.device suivantes :
initial_ip
initial_asn
initial_user_agent
w
) dans les journaux du locataire.
Cas d’utilisation : Révoquer une session
Vous pouvez utiliser les Actions pour configurer les détections de risques et révoquer les sessions risquées et leurs jetons d’actualisation associés avec la méthode post-connexionapi.session.revoke(reason, options)
et l’objet event.session
.
Révoquer une session en raison d’une liaison réseau ASN
Vous pouvez utiliser les propriétés de l’objet post-connexion,event.session.device.initial_asn
et event.request.asn
pour lier les transactions de session à un réseau autonomous system number (ASN) spécifique pour leur durée et nécessiter 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 ses jetons d’actualisation associés;
- inviter à la réauthentification.
Révoquer une session en raison d’une liaison IP
Vous pouvez utiliser les propriétés de l’objet post-connexionevent.session.device.initial_ip
et event.request.ip
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
conservent la même adresse IP pendant la transaction. Si la vérification échoue, l’Action appelle alors api.session.revoke()
pour :
- invalider la session;
- refuser la transaction en cours;
- révoquer tous ses jetons d’actualisation associés;
- inviter à la réauthentification.
Cas d’utilisation : Personnaliser les dates d’expiration d’une session
Vous pouvez utiliser des Actions pour personnaliser les dates d’expiration d’inactivité et absolue de la session. Plus précisément, vous pouvez configurer les dates d’expiration d’une transaction de session particulière à l’aide des méthodes post-connexionapi.session.setExpiresAt(absolute)
et api.session.setIdleExpiresAt(idle)
et de l’objet event.session
.
Personnalisation le délai d’expiration absolu de la session en fonction des connexions
Vous pouvez utiliser les propriétés d’objet post-connexion suivantes pour définir une durée de vie pour la connexion utilisée pour authentifier un utilisateur.- event.session.created_at
- event.session.expires_at
event.connection.metadata.session_timeout define
un délai d’expiration de connexion spécifique.
session_timeout
définie dans la connexion actuelle. Dans ce cas, l’Action définit l’expiration de la session comme étant égale à la date de création created
de la session, plus le paramètre connection_lifetime
.
Personnalisation du délai d’inactivité de session en fonction de l’organisation
Vous pouvez définir une variablecurrent_time
et utiliser une nouvelle métadonnée d’Organization appelée idle_session_timeout
pour définir le délai d’inactivité souhaité pour une organization.
current_time
plus la valeur idle_organization_lifetime
.