L’expiration des sessions est prise en charge pour les connexions Enterprise Okta et OIDC, mais n’est pas offerte pour les connexions Microsoft Entra ID (Azure AD). Microsoft n’inclut pas la revendication
session_expiry dans les jetons Entra ID.session_expiry conformément à la norme Interoperability Profile for Secure Identity in the Enterprise (IPSIE) pour les connexions Enterprise Okta et OIDC. Lorsqu’elle est activée, Auth0 récupère la revendication session_expiry (représentée en secondes sous forme d’horodatage Unix) auprès de l’Identity Provider (IdP) en amont et l’inclut dans le jeton d’ID émis à votre application.
Auth0 traite la revendication session_expiry et synchronise la session Auth0 locale avec le cycle de vie de la session de l’IdP en amont. Ainsi, lorsqu’une session utilisateur expire auprès de l’IdP Enterprise, la session Auth0 de l’utilisateur prend également fin.
Fonctionnement
session_expiry est activé, Auth0 :
- Récupère la revendication
session_expirydu jeton d’ID de l’IdP en amont. - Calcule l’expiration de la session en évaluant certains paramètres et définit l’expiration finale de la session Auth0 à la valeur minimale (la plus proche) parmi les facteurs suivants :
- La revendication
session_expiryde l’IdP : l’horodatage absolu figurant dans un jeton d’ID de l’Identity Provider en amont. - Le paramètre d’expiration absolue par défaut de votre tenant Auth0 : la limite de durée de vie de session que vous configurez dans Auth0 Dashboard ou Management API. Pour en savoir plus, consultez Configurer les paramètres de durée de vie des sessions.
- Auth0 Actions [
setExpiresAt] : tout horodatage d’expiration personnalisé défini par programmation pendant la transaction de connexion à l’aide de la méthodeapi.session.setExpiresAt()de l’Action Post Login.
- La revendication
- Utilise une Action Post Login que vous configurez lors de l’activation pour transmettre à votre application l’expiration finale de la session, telle qu’évaluée, en l’injectant sous forme de revendication personnalisée dans le jeton d’ID émis par Auth0.
session_expiry est un horodatage UNIX en secondes qui représente la limite d’expiration absolue de la session de l’utilisateur :
La revendication
session_expiry ne remplace pas exp. La valeur exp du jeton d’ID demeure de courte durée et inchangée. session_expiry est une limite au niveau de la session incluse parmi les revendications du jeton.
session_expiry est fixé lors de la connexion. Il est défini une seule fois lorsque l’utilisateur s’authentifie et n’est pas mis à jour lors de l’actualisation des jetons. Un utilisateur déjà connecté avant l’activation de cette fonctionnalité n’aura pas session_expiry dans sa session existante; la revendication n’apparaît qu’après sa prochaine connexion.
Cette fonctionnalité concerne uniquement l’expiration planifiée des sessions. Pour la révocation de session en temps réel, par exemple lorsqu’un utilisateur est retiré en cours de session, nous vous recommandons d’utiliser Back-Channel Logout.
Activer l’application de l’expiration des sessions
- Auth0 Dashboard
- Management API
- Dans le Auth0 Dashboard, accédez à Auth0 Dashboard > Authentication > Enterprise.
- Repérez la connexion Enterprise Okta ou OpenID Connect, puis sélectionnez Browse.
- Choisissez la connexion à configurer.
- Sous Settings, activez Use ID Token for Session Expiry.
- Sélectionnez Save.
Transmettre l’expiration de session à votre application
- Auth0 Dashboard
- Management API
- Dans Auth0 Dashboard, accédez à Auth0 Dashboard > Actions > Library, puis sélectionnez Build Custom Action.
- Saisissez un nom pour l’Action, sélectionnez Login / Post Login comme déclencheur, puis sélectionnez Create.
- Ajoutez le code suivant à votre Action :
- Dans le panneau Test, sélectionnez Run et examinez les résultats.
- Sélectionnez Deploy.
- Accédez à Actions > Triggers, puis sélectionnez Post-Login.
- Repérez votre Action et faites-la glisser dans le flux Login. Sélectionnez Apply.
Utiliser l’expiration de session avec les SDK Auth0
session_expiry dans le jeton d’ID au moment de la connexion, l’enregistre avec la session et considère celle-ci comme expirée dès que l’heure actuelle atteint ou dépasse session_expiry :
L’Action Post Login est nécessaire pour injecter le claim
session_expiry dans le jeton d’ID. Une fois défini, lorsque la session expire, le SDK se comporte comme pour toute autre expiration de session : l’utilisateur est redirigé vers la connexion. Aucune gestion d’erreur supplémentaire n’est requise.
Ajoutez des valeurs d’expiration de session à votre application
session_expiry pour avertir les utilisateurs que leur session arrive à expiration, ou vous pouvez associer la durée de vie de la session de votre application à celle de l’IdP en amont.
- Application monopage
- Application Web classique
- Mobile (Swift)
session_expiry dans un espace de stockage à long terme, comme un cookie ou localStorage, sans la valider de nouveau à chaque lecture. Cette valeur n’a de sens que par rapport à l’heure actuelle.
Vérifier dans les journaux du tenant
s) pour un utilisateur qui s’authentifie au moyen de la connexion Enterprise configurée. Lorsque la valeur session_expiry de l’IdP en amont est inférieure ou égale à la durée de vie absolue des sessions configurée pour votre tenant, l’entrée de journal inclut le champ idp_session_expiry (un horodatage Unix en secondes) :
session_expiry et que vous activez cette fonctionnalité, la connexion échoue et affiche le message d’erreur suivant : The upstream Identity Provider did not return a session_expiry claim.
Désactiver l’application de l’expiration de la session
- Auth0 Dashboard
- Management API
- Dans Auth0 Dashboard, accédez à Authentication > Enterprise.
- Sélectionnez la connexion à configurer.
- Sélectionnez l’onglet Settings.
- Désactivez Use ID Token for Session Expiry.
- Sélectionnez Save.