Skip to content

Auth0 refresh token expiration

L’utilisation d’actions vous permet de configurer les fonctionnalités de détection et de réponse des risques post-authentification pour protéger vos applications et vos utilisateurs contre les jetons d’actualisation compromis. Vous pouvez également personnaliser dynamiquement les expirations des jetons d’actualisation.

Pour faciliter cela, les actions post-connexion comportent deux objets clés :

  • event.refresh_token : Fournit des informations pertinentes pour les refresh_tokens existants, y compris , , des informations, telles que , et , et pour les flux basés sur un navigateur, . Cet objet est renseigné par les flux d’échange de jetons d’actualisation. 

  • api.refreshToken : vous permet de gérer les jetons d’actualisation existants en révoquant les sessions ou en modifiant les dates d’expiration.

Vous pouvez utiliser l’objet pour examiner la propriété et évaluer les risques associés à la Transactions. Vous pouvez également combiner l’objet avec d’autres objets d’événement, tels que le . 

Vous pouvez ensuite utiliser l’objet pour définir les dates d’expiration du jeton d’actualisation ou révoquer le jeton d’actualisation. 

Pour en savoir plus sur ces objets, consultez :

  • Objet d’événement : En savoir plus sur l’objet d’actualisation Objet d’événement et ses propriétés.

  • Objet API : découvrez l’objet et les méthodes de l’API du jeton d’actualisation.

Révoquer les jetons d’actualisation à l’aide d’actions

La méthode api.refreshToken.revoke(reason) vous  permet de réagir aux risques associés à une transaction. La révocation du jeton d’actualisation invalide le jeton d’actualisation, renvoie un code d’état HTTP 403 pour refuser la transaction en cours et consigne un événement de jeton d’actualisation révoqué dans les journaux du locataire ().

Si vous souhaitez utiliser la méthode, assurez-vous que l’objet event.refresh_token existe.

Surveiller les événements de journal de révocation

L’opération de révocation ajoute l’événement de journal suivant dans vos journaux de locataire :

Un code d’événement indiquant qu’un jeton d’actualisation a été révoqué. 

Si le jeton d’actualisation est lié à une session précédemment authentifiée, le journal inclut une référence à la session authentifiée dans l’attribut.

Modifier les dates d’expiration des jetons d’actualisation à l’aide d’Actions

Vous pouvez modifier les dates d’expiration des jetons d’actualisation à l’aide des méthodes de post-connexion suivantes :

  • api.refreshToken.setExpiresAt(absolute) vous permet de définir une nouvelle date d’expiration absolue pour un jeton d’actualisation spécifié.

  • api.refreshToken.setIdleExpiresAt(idle) vous permet de définir un nouveau Date d’expiration du délai d’inactivité d’un jeton d’actualisation spécifié. 

Vous pouvez utiliser ces méthodes pour personnaliser dynamiquement les stratégies de durée de vie et d’inactivité du jeton d’actualisation en fonction des éléments suivants :

  • L’organisation d’un utilisateur

  • Une connexion Auth0 d’un utilisateur L’appartenance

  • à
  • un groupe ou un profil d’un utilisateur spécifique Évaluation

  •  

  • des risques Tout autre critère dynamique disponible lors de l’exécution de l’Action

Les  méthodes et permettent de définir l’expiration d’un jeton de rafraîchissement, avant son émission, ou de modifier l’expiration d’un jeton de rafraîchissement existant lors d’un flux d’échange de jeton de rafraîchissement.

Les  méthodes et convertissent les  jetons d’actualisation non expirants en jetons d’actualisation arrivant à expiration à l’aide des expirations par défaut des jetons d’actualisation paramètres comme valeurs maximales.

La méthode définit le délai d’inactivité des jetons d’actualisation. Si la méthode n’est pas appelée dans tous les échanges réussis, le délai d’inactivité sera remplacé à l’aide des paramètres d’application de durée de vie du jeton d’actualisation.

Limitations

Les jetons d’actualisation émis à partir du 21-09-2023 (22-02-2024 pour les locataires de la région US-3) contiennent la propriété ID de session () avec la valeur appropriée. Les jetons d’actualisation émis avant cette date contiennent cette propriété avec une valeur.

Les jetons d’actualisation émis avant la publication de la méthode d’API post-connexion ne contiennent pas d’informations.

Les jetons d’actualisation qui n’expirent pas ou qui n’ont pas été échangés ne contiennent pas la propriété .

Pour des raisons de sécurité, les délais d’inactivité et d’expiration absolus ne peuvent pas être définis au-dessus des paramètres de jeton d’actualisation de l’application définis dans Expirations du jeton d’actualisation. Si vous tentez de définir une date au-dessus des paramètres d’expiration, les méthodes de l’API sont mises à jour jusqu’aux expirations du jeton d’actualisation et consignent un événement d’avertissement () dans les journaux du locataire.

Cas d’utilisation : Révoquer un jeton d’actualisation

Vous pouvez utiliser Actions pour configurer les détections de risque et révoquer les jetons d’actualisation avec la méthode et les objets d’événement.

Révoquer les jetons d’actualisation en raison d’ImpossibleTravel

Vous pouvez utiliser l’objet assessments pour déterminer si un utilisateur se connecte à partir d’un emplacement qui indique ImpossibleTravel et révoquer le jeton d’actualisation actuel associé à la transaction.

Dans cet exemple,  une vérification a lieu au début de l’action pour vérifier que est égal à . Si , l’action appelle l’option à : 

  • Refuser la transaction

  • Révoquer le jeton d’actualisation

  • Renvoyer une réponse 403 access_denied erreur

  • Émettre l’erreur « Jeton d’actualisation révoqué en raison d’un déplacement impossible »

Révoquer les jetons d’actualisation en raison d’une liaison IP

Si vous utilisez les propriétés de l’objet post-connexion et pour vous assurer qu’une transaction de jeton d’actualisation reste avec la même adresse IP pendant toute sa durée. Dans ce scénario, toute modification d’adresse IP est considérée comme un risque et un nouveau jeton d’actualisation est requis. 

Dans cet exemple, une vérification se produit au début de l’action pour assurer le suivi des adresses IP avec les propriétés et . L’action détermine si l’adresse IP de la transaction a changé. Si , l’action appelle la commande à : 

  • Refuser la transaction

  • Révoquer le jeton d’actualisation

  • Renvoyer une réponse error

  • Émettre l’erreur «  » Alternativement

, pour une action moins restrictive, vous pouvez garder une trace de l’événement. et des propriétés pour surveiller les modifications d’ASN au lieu des modifications d’IP. 

Cas d’utilisation : Personnaliser les dates  d’expiration du jeton d’actualisation

Vous pouvez utiliser des actions pour personnaliser la durée de vie et les dates d’inactivité du jeton d’actualisation. Plus précisément, vous pouvez configurer les dates d’inactivité et d’expiration absolues du jeton d’actualisation pour une transaction particulière à l’aide des méthodes post-login et .

Personnaliser la date d’expiration du jeton d’actualisation absolue en fonction de l’organisation

Vous pouvez utiliser l’action post-connexion pour définir la durée de vie du jeton d’actualisation par organisation. L’exemple ci-dessous utilise les métadonnées de l’organisation pour définir le délai d’expiration du jeton d’actualisation.

Dans cet exemple, S’il existe un délai d’expiration absolu spécifique défini pour une organisation, l’action définit le délai d’expiration absolu du jeton d’actualisation comme suit :

  • Jetons nouvellement émis : plus

  • Jetons existants : plus

Personnaliser le délai d’inactivité du jeton d’actualisation en fonction du rôle

d’appartenance Vous pouvez utiliser l’action de post-connexion pour définir un délai d’inactivité de jeton d’actualisation à l’aide des métadonnées de l’application et de l’utilisateur. L’exemple ci-dessous utilise les rôles de métadonnées utilisateur pour définir le rôle d’appartenance de l’utilisateur et les métadonnées d’application pour définir le délai d’inactivité attendu du jeton d’actualisation.

Dans cet exemple, si un délai d’inactivité spécifique est défini pour l’application et que l’utilisateur est un administrateur, l’action définit le délai d’inactivité du jeton d’actualisation pour qu’il soit égal à plus le . Notez que nous modifions le délai d’expiration pour les jetons nouvellement émis et ceux existants lors de l’échange de jetons d’actualisation.