Passer au contenu principal
Pour de meilleurs résultats lors de la mise en œuvre du natif vers le Web, Auth0 recommande de suivre les bonnes pratiques ci-dessous. Ces recommandations peuvent aider à préserver l’intégrité de la session :

Utilisez les Actions post-login pour limiter la durée de vie des sessions

Utilisez les déclencheurs d’Action post-login pour vous assurer que les sessions Web créées au moyen de la fonctionnalité SSO natif vers le Web sont correctement limitées dans le temps et expirent rapidement lorsqu’elles sont inactives.  Vous pouvez utiliser les Actions post-login pour détecter quand une session est lancée au moyen d’un session_transfer_token et appliquer des délais d’inactivité et des délais absolus plus courts :
exports.onExecutePostLogin = async (event, api) => {
  if (event.session_transfer_token) {
    const now = Date.now();

    // Limiter la session à 30 minutes au total
    api.session.setExpiresAt(now + 30 * 60 * 1000);

    // Définir le délai d'inactivité à 15 minutes
    api.session.setIdleExpiresAt(now + 15 * 60 * 1000);
  }
};

Associer le session_transfer_token à l’appareil ou à l’adresse IP

Pour réduire le risque de rejeu de jeton si un jeton est divulgué, consigné ou intercepté, associez toujours le session_transfer_token à l’environnement d’origine au moyen de enforce_device_binding.

Utilisez des témoins sécurisés plutôt que des paramètres de requête

Envoyez le session_transfer_token à l’application Web au moyen d’un témoin sécurisé, HTTPOnly, associé à votre domaine Auth0 afin d’éviter la journalisation accidentelle du jeton ou son partage dans des URL, et de réduire la surface d’attaque liée à l’interception de jetons. Si vous devez utiliser un paramètre de requête (par exemple, pour Chrome Custom Tabs), assurez-vous que l’URL utilise HTTPS et supprimez le jeton de l’URL après son utilisation.

Évitez d’émettre des jetons d’actualisation pour les applications Web, sauf au besoin

Activez allow_refresh_token uniquement pour les applications Web qui en ont réellement besoin. Dans la plupart des cas, des de courte durée combinés à une authentification silencieuse suffisent et sont plus sûrs dans un navigateur.

Activer Allow Refresh Tokens lorsque c’est approprié pour que les jetons d’actualisation soient « en ligne »

Pour éviter les identifiants orphelins et empêcher les de rester actifs après la déconnexion, utilisez le paramètre allow_refresh_token pour faire en sorte que les jetons d’actualisation émis via SSO natif vers le Web soient liés à la session qui les a générés. Si la session est révoquée ou expire, le jeton d’actualisation est automatiquement invalidé.

Activer la révocation en cascade forcée

Pour garantir que toutes les sessions Web et tous les jetons d’actualisation associés à un session_transfer_token sont révoqués, activez enforce_cascade_revocation dans l’application native. Cette mesure est essentielle pour assurer une invalidation sécurisée des sessions d’une application à l’autre.