web-dev-qa-db-fra.com

Problème de redirection vers Azure Active Directory Safari

Il semble y avoir un problème actuel de connexion à Microsoft Online avec les appareils Mac OS et iOS utilisant la dernière version de Safari (12).

Les mises à jour sur Safari 12 sont affichées ici: https://developer.Apple.com/safari/whats-new/

En raison de certaines des nouvelles mises à jour de sécurité et de confidentialité, il semble y avoir un problème de cookie qui provoque une redirection infinie lors de la connexion au point de terminaison: http://login.microsoftonline.com

Cette nouvelle mise à jour fait que Safari sur Apple entrent dans une boucle de redirection infinie lorsqu'ils se connectent.

Cela est probablement dû au fait que Safari ne laisse pas passer le cookie Microsoft, ce qui oblige les serveurs de Microsoft à rediriger vers la page de connexion pour obtenir le cookie requis. Cependant, le navigateur possède toujours des informations d'identité qui obligent l'utilisateur à se reconnecter automatiquement, redirigeant vers le serveur. Le cookie n'est toujours pas envoyé avec la demande, ce qui oblige le serveur à renvoyer l'utilisateur vers la page de connexion. Cette redirection à partir du serveur et du navigateur semble être la principale raison de la redirection infinie.

Existe-t-il une mise à jour, un raisonnement ou une résolution pour résoudre/contourner le problème derrière le problème de redirection de connexion Safari et Microsoft?

15
Frank Hu MSFT

Il existe une solution documentée par l'équipe aspnet/sécurité sur GitHub.

https://github.com/aspnet/Security/issues/1864

Si vous utilisez ASP.NET Core Identity, vous désactivez la protection en configurant les cookies avec le code suivant

services.ConfigureExternalCookie(options => {
    // Other options
    options.Cookie.SameSite = SameSiteMode.None; }); services.ConfigureApplicationCookie(options => {
    // Other options
    options.Cookie.SameSite = SameSiteMode.None; });

Si vous utilisez l'authentification par cookie sans identité ASP.NET Core, vous pouvez désactiver la protection avec le code suivant

services.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options => {
    // Other options
    options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.None; })

Si vous utilisez des fournisseurs OIDC externes, vous pourrez peut-être éviter le problème en modifiant le mode de réponse utilisé par votre fournisseur de POST à une demande GET, en utilisant le code suivant. Tous les fournisseurs ne prennent pas en charge cette.

.AddOpenIdConnect("myOIDProvider", options => {
    // Other options
    options.ResponseType = "code";
    options.ResponseMode = "query";
};
4
Brian Reiter

Vous avez raison. Il existe des problèmes connus avec la compatibilité Safari d'AAD. Vous pouvez faire une nouvelle demande de fonctionnalité dans User Voice ou upvote et vous abonner à certaines des existantes.

https://support.Microsoft.com/en-us/help/2535227/a-federated-user-is-prompted-unexphttps://feedback.Azure.com/ forums/223579-Azure-portal/suggestions/34373635-fix-sign-in-in-safarihttps://feedback.Azure.com/forums/223579-Azure-portal/suggestions/7513912- ne fonctionne pas bien sur safari mais fonctionne bien sur chr

MISE À JOUR: l'équipe produit est revenue et a répondu que c'était un problème du côté d'Apple. Le statut actuel est que l'équipe Apple Apple et l'équipe PG de Microsoft y travaillent mais il n'y a rien que l'équipe de développement Microsoft puisse faire car il n'y a rien de mal du côté de Microsoft. Le problème est que = Apple n'envoie pas correctement les cookies au serveur login.microsoftonline en raison des nouvelles mises à jour de confidentialité et de sécurité. https://developer.Apple.com/safari/whats-new/ =

13