Skip to main content
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.
Auth0 prend en charge la revendication 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.
Le client est responsable du traitement de la revendication session_expiry reçue ainsi que de la fermeture et de la gestion des sessions utilisateur dans ses applications.

Avant de commencer

Avant d’activer l’application de l’expiration des sessions :
  • Vous devez disposer d’une connexion Enterprise Okta ou OIDC.
  • L’Identity Provider en amont doit émettre une revendication session_expiry dans son jeton d’ID.

Fonctionnement

Lorsqu’un utilisateur s’authentifie au moyen d’une connexion Enterprise pour laquelle session_expiry est activé, Auth0 :
  1. Récupère la revendication session_expiry du jeton d’ID de l’IdP en amont.
  2. 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_expiry de 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éthode api.session.setExpiresAt() de l’Action Post Login.
  3. 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.
La revendication 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

Configurez l’application de l’expiration des sessions pour votre connexion Enterprise à l’aide du Auth0 Dashboard ou de la Management API.
  1. Dans le Auth0 Dashboard, accédez à Auth0 Dashboard > Authentication > Enterprise.
  2. Repérez la connexion Enterprise Okta ou OpenID Connect, puis sélectionnez Browse.
  3. Choisissez la connexion à configurer.
  4. Sous Settings, activez Use ID Token for Session Expiry.
  5. Sélectionnez Save.

Transmettre l’expiration de session à votre application

Auth0 utilise l’expiration de session calculée pour gérer sa propre couche de session, mais vos applications en aval peuvent aussi avoir besoin de connaître cette heure d’expiration absolue afin d’appliquer des limites de session locales. Configurez une Action Post Login pour ajouter l’expiration de session finale calculée à un jeton d’ID émis par Auth0 et transmettre ce jeton à votre application.
  1. Dans Auth0 Dashboard, accédez à Auth0 Dashboard > Actions > Library, puis sélectionnez Build Custom Action.
  2. Saisissez un nom pour l’Action, sélectionnez Login / Post Login comme déclencheur, puis sélectionnez Create.
  3. Ajoutez le code suivant à votre Action :
  1. Dans le panneau Test, sélectionnez Run et examinez les résultats.
  2. Sélectionnez Deploy.
  3. Accédez à Actions > Triggers, puis sélectionnez Post-Login.
  4. Repérez votre Action et faites-la glisser dans le flux Login. Sélectionnez Apply.

Utiliser l’expiration de session avec les SDK Auth0

Si vous utilisez les SDK Auth0 et avez configuré l’Action Post Login décrite ci-dessus, l’expiration de session est appliquée automatiquement. Le SDK lit 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

Vous pouvez éventuellement ajouter des valeurs d’expiration de session à votre application. Par exemple, votre application peut lire 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.
N’enregistrez pas la valeur 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

Après avoir activé l’application de l’expiration des sessions, vérifiez qu’elle fonctionne en consultant les journaux du tenant. Accédez à Auth0 Dashboard > Monitoring > Logs et recherchez un événement de connexion réussie (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) :
Si l’IdP n’a pas envoyé de claim 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

  1. Dans Auth0 Dashboard, accédez à Authentication > Enterprise.
  2. Sélectionnez la connexion à configurer.
  3. Sélectionnez l’onglet Settings.
  4. Désactivez Use ID Token for Session Expiry.
  5. Sélectionnez Save.

En savoir plus