ASP.NET OWIN Azure Ad登录无法在iPhone(Safari)浏览器上运行。在其他浏览器上很好

时间:2018-06-15 23:46:13

标签: asp.net azure-active-directory owin

我使用Visual Studio中为ASP.NET MVC项目提供的模板构建了一个非常(非常)简单的ASP.NET MVC项目。我已经通过Azure AD为此项目添加了Owin身份验证,并尝试运行它(没有任何其他更改/自定义)。

该网站让我在所有浏览器和设备(例如Android手机,Windows平板电脑,Windows PC,Chrome,Firefox,Edge)中100%罚款,除了我需要移动网站工作的一台设备 - iPhone上的Safari! !登录iPhone时,会显示Microsoft登录页面,可以输入凭据,然后当它尝试登录并显示要加载的URL(我的页面)时,它就在那里。永远。它永远不会结束。从不加载。进度条只有10%左右,空白页面。

这是我的启动代码:

public void ConfigureAuth(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());

    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions
        {
            ClientId = clientId,
            Authority = authority,
            PostLogoutRedirectUri = postLogoutRedirectUri,
            RedirectUri = "http://mypad-prod.ap-southeast-2.elasticbeanstalk.com/Home/About"
        });
}

它几乎没有从Visual Studio中提供的模板更改。有人可以帮忙吗?我迫切希望能够在iPhone上运行,而不必告诉用户他们必须获得适用于iPhone的Chrome(该网站也可以使用)。这是我尝试过的。

  • 在iPhone上检查并配置了设置(例如,确保'阻止所有Cookie'已关闭)。

  • 尝试将此添加到web.config

    表格loginUrl ="〜/ Account / SignIn"超时=" 2880" Cookie的=" UseCookies" /

  • 尝试将此添加到globals.asax

    public void Application_PreSendRequestHeaders(Object sender, EventArgs e)
    {
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
    }
    

请帮帮我:(

1 个答案:

答案 0 :(得分:0)

Seamless SSO在Firefox和Microsoft Edge浏览器上无法在私有浏览模式下工作。如果浏览器在“增强保护”模式下运行,它也无法在Internet Explorer上运行。

对于SSO实施,请考虑发布于here的浏览器注意事项文档

根据最新更新,此处支持浏览器列表和兼容性

Mozilla Firefox(所有平台)

Mozilla Firefox不会自动使用Kerberos身份验证。每个用户必须使用以下步骤手动将Azure AD URL添加到其Firefox设置:

  • 运行Firefox,然后在地址栏中输入about:config。取消看到的所有通知。
  • 搜索network.negotiate-auth.trusted-uris首选项。此首选项列出--Firefox的Kerberos身份验证可信站点。
  • 单击鼠标右键,然后选择“修改”。 在字段中输入https://autologon.microsoftazuread-sso.com
  • 选择“确定”,然后重新打开浏览器。

Safari(macOS)

确保将运行macOS的计算机连接到AD。 AD加入macOS设备的说明不在本文讨论范围之内。

Google Chrome浏览器(所有平台)

如果您已覆盖环境中的AuthNegotiateDelegateWhitelist或AuthServerWhitelist策略设置,请确保还向其中添加Azure AD的URL(https://autologon.microsoftazuread-sso.com)。

Google Chrome(macOS和其他非Windows平台)

对于Mac OS和其他非Windows平台上的Google Chrome浏览器,请参阅Chromium项目策略列表,以获取有关如何将Azure AD URL列入白名单以进行集成身份验证的信息。

使用第三方Active Directory组策略扩展将Azure AD URL推出到Mac用户上的Firefox和Google Chrome不在本文范围之内。

希望有帮助。