Résoudre les problèmes liés au renouvellement des jetons dans Safari

Dans certains cas, le renouvellement des jetons avec l’authentification silencieuse ne fonctionne pas comme prévu avec la dernière version du navigateur Safari. Les versions récentes du navigateur Safari ont introduit une nouvelle fonctionnalité appelée Prévention intelligente du suivi (ITP). L’ITP est conçu pour empêcher les sites web de suivre l’activité des utilisateurs sur plusieurs sites web. Par défaut, l’ITP est active. Vous pouvez déterminer si la version de Safari que vous utilisez est dotée de l’ITP en vous rendant dans l’onglet Preferences (Préférences) > Privacy (Confidentialité) voir si l’option Prevent cross-site tracking (Empêcher le suivi intersites) est cochée.

ITP et comportement du navigateur

L’activation de l’ITP fait que le navigateur se comporte comme si vous aviez désactivé les témoins tiers dans le navigateur, ce qui rend impossible l’obtention d’un nouveau jeton sans afficher quoi que ce soit à l’utilisateur. Cela s’apparente à la manière dont OpenID Connect (OIDC) utilise les iframes pour gérer les sessions dans les applications à page unique.

Dans la trousse SDK SPA (ce qui est notre recommandation), getTokenSilently effectue une authentification silencieuse à moins que vous ne configuriez la trousse SDK pour qu’il utilise des jetons d’actualisation rotatifs.

Solutions de contournement

Les progrès récents en matière de contrôle de la vie privée dans les navigateurs ont un impact négatif sur l’expérience de l’utilisateur en empêchant l’accès aux témoins de tierces parties. Vous pouvez utiliser la rotation des jetons d’actualisation comme une alternative qui fournit une méthode sécurisée pour l’utilisation de jetons d’actualisation dans les SPA tout en offrant aux utilisateurs finaux un accès transparent aux ressources sans la perturbation de l’expérience utilisateur causée par les technologies de confidentialité telle l’ITP.

Vous pouvez également contourner les problèmes posés par l’ITP en utilisant la fonctionnalité d’Auth0 domaines personnalisés en particulier si le domaine personnalisé se trouve dans un sous-domaine du domaine du site web de l’application. Par exemple, si votre application est hébergée sur example.com, le domaine personnalisé doit avoir le format subdomain.example.com.

Mode de débogage ITP

Safari Technology Preview propose un « Mode de débogage de la prévention du suivi intelligent » que vous pouvez utiliser pour résoudre les problèmes liés à la prévention du suivi intelligent. Vous trouverez des instructions sur la manière de déboguer l’ITP dans cet article de blogue de WebKit.

REMARQUE : Les instructions indiquent comment classer de manière permanente un domaine personnalisé comme ayant des capacités de suivi à des fins de test. Cependant, dans les versions ultérieures de Safari Technology Preview, le domaine dans lequel sont stockées les valeurs par défaut de l’utilisateur pour ce paramètre est passé de com.apple.SafariTechnologyPreview à com.apple.WebKit.Networking. Si vous rencontrez des difficultés avec les commandes mentionnées dans les instructions, essayez celles-ci :

  • Classer un site comme ayant des capacités de suivi : defaults write com.apple.WebKit.Networking ResourceLoadStatisticsManualPrevalentResource example.com

  • Vérifier le paramètre : defaults read com.apple.WebKit.Networking ResourceLoadStatisticsManualPrevalentResource

  • Supprimer le paramètre : defaults delete com.apple.WebKit.Networking ResourceLoadStatisticsManualPrevalentResource

Vous devrez redémarrer Safari Technology Preview chaque fois que vous effectuerez des modifications pour que les paramètres soient pris en compte.