Limites de durée de vie des sessions

Les limites de durée de vie des sessions déterminent la durée pendant laquelle le système doit conserver une session de connexion. Dans Auth0, deux paramètres peuvent être configurés pour la durée de vie de la session.

  • Délai d’inactivité : Délai après lequel la session d’un utilisateur expirera si le témoin de sa session n’a pas interagi avec le serveur d’autorisation. Il sera remplacé par les limites du système s’il dépasse 3 jours pour les plans en libre-service ou 100 jours pour les plans Enterprise.

  • Exiger la connexion après : Délai après lequel un utilisateur devra se reconnecter, peu importe son activité. Il sera remplacé par les limites du système s’il dépasse 30 jours pour les plans en libre-service ou 365 jours pour les plans Enterprise.

Ces paramètres sont configurés sur le locataire; vous pouvez les configurer à l’aide de Auth0 Dashboard ou de Management API.

Lorsqu’un utilisateur effectue une nouvelle connexion standard, la session de connexion est réinitialisée. Voici un exemple :

  1. Vous fixez le délai d’inactivité à 3 jours et la limite Exiger la connexion après à 30 jours.

  2. Un utilisateur se connecte et les valeurs que vous avez saisies sont définies pour sa session.

    1. Si l’utilisateur est actif pendant le délai d’inactivité de trois jours, la durée de vie de la session est prolongée de trois jours. Tant que l’utilisateur est actif au cours des trois jours suivants, la durée de vie de sa session est prolongée de trois jours supplémentaires, jusqu’à ce que la limite Exiger la connexion après soit atteinte. À ce moment-là, l’utilisateur devra se connecter à nouveau.

    2. Si l’utilisateur est inactif pendant trois jours, il sera automatiquement déconnecté.

  3. Pendant que l’utilisateur est connecté, vous prolongez les limites de durée de vie des sessions existantes. Les nouveaux paramètres ne prendront effet qu’à la fin de la session existante et lorsque l’utilisateur se connectera à nouveau.

  4. Pendant que l’utilisateur est connecté, vous réduisez les limites de durée de vie existantes. Les nouveaux paramètres prendront effet dès la prochaine activité de l’utilisateur. Cela vous permet de réduire la durée de vie des sessions à des fins de sécurité.

URL de déconnexion propres à l’application

Il y a deux choses importantes à prendre en compte lorsque vous utilisez des URL de déconnexion spécifiques à une application :

  • Vous devez envoyer le paramètre de requête client_id lorsque vous appelez le point de terminaison /oidc/logout et l’URL id_token_hint doit figurer dans la liste des URL de déconnexion autorisées de l’application.

  • Cela mettra fin à la session Auth0 pour l’ensemble du locataire, c’est-à-dire pour toutes les applications définies, et pas seulement celle qui correspond au client_id fourni. La transmission de client_id indique au point de terminaison de déconnexion où chercher la liste blanche des URL de déconnexion.

Après la déconnexion de l’utilisateur, Auth0 ne redirigera que vers une URL définie dans cette liste.

Si vous redirigez l’utilisateur vers l’application après la déconnexion et que l’application redirige vers un fournisseur d’identités qui a toujours une session authentifiée pour cet utilisateur, l’utilisateur sera automatiquement reconnecté à votre application; la déconnexion aura l’air de ne pas avoir fonctionné. Dans ces cas, nous vous recommandons d’avoir une page de redirection de déconnexion spécifique dans votre application afin que vous puissiez dire à l’utilisateur qu’il s’est déconnecté avec succès et, si vous le souhaitez, vous pouvez également l’avertir qu’il peut encore être connecté à son fournisseur d’identités.

Dans le cas où l’utilisateur n’a pas effectué d’actions entraînant la mise à jour de la session Auth0, nous vous recommandons de lui indiquer qu’il doit choisir de poursuivre explicitement sa session. Cette approche permet à la session de devenir inactive si l’utilisateur n’est plus présent, mais elle fournit également un moyen de déclencher l’actualisation silencieuse du jeton afin que l’utilisateur puisse poursuivre sa session sans qu’il soit nécessaire de lui demander à nouveau ses informations d’identification.

  • Minuteur d’inactivité : ajoutez un minuteur au wrapper de la trousse SDK pour React qui s’aligne sur la durée maximale d’inactivité de la session Auth0. Chaque fois qu’un jeton est renvoyé à l’application, réinitialisez le minuteur.

  • Modale de délai d’expiration : lorsque le délai d’expiration atteint 60 secondes, une modale de délai d’expiration doit s’afficher, demandant à l’utilisateur de se déconnecter ou de poursuivre sa session.

    • Poursuivre la session : si l’utilisateur choisit de poursuivre sa session, utilisez la méthode getTokenSilently() pour demander un nouveau jeton sans rediriger l’utilisateur de la page avec laquelle il est en train d’interagir.

    • Déconnexion : si l’utilisateur choisit de se déconnecter, la méthode logout() doit être appelée pour s’assurer que la session Auth0 est également terminée.

    • Délai d’inactivité : si le délai d’inactivité est atteint, aucune action immédiate n’est nécessaire. Pour tenir compte du fait que l’utilisateur peut encore être actif dans un autre onglet, le comportement ne doit pas consister à déconnecter l’utilisateur.

    • D’autres options consistent à mettre à jour la fenêtre modale avec un bouton de connexion, à utiliser l’événement window.onfocus pour déclencher getTokenSilently(), ou à rediriger l’utilisateur vers une page d’accueil.

En savoir plus