【问题标题】:Why authentication works in some browsers but not in others为什么身份验证在某些浏览器中有效,而在其他浏览器中无效
【发布时间】:2019-09-28 16:49:56
【问题描述】:

我的应用在 Azure AD 上,我正在使用以下代码在 Auth Service 上请求身份验证:

HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/Home/Index" }, WsFederationAuthenticationDefaults.AuthenticationType);

发生的情况是,这在某些浏览器中有效(没有模式),有时在其他浏览器中无效。

当应用程序重定向到 /home/index 时,有时对象 User.Identity 有用户的电子邮件,但有时它没有信息。

为什么会这样?

【问题讨论】:

  • 在您的问题中,您缺少用于提取电子邮件的代码。在您看来,您只是在使用标准的@User.Identity.Name 吗? Request.IsAuthenticated 的状态是什么?也许你有一个错误处理程序吞下了错误?
  • 那么它总是在哪些浏览器中工作,有时在哪些浏览器中工作?私人浏览有什么模式吗?你的问题并没有表明很多分析

标签: asp.net-mvc authentication azure-active-directory multi-factor-authentication


【解决方案1】:

无缝 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 首选项。此首选项列出 - - 用于 Kerberos 身份验证的 Firefox 受信任站点。
  • 右键单击并选择修改。 在字段中输入https://autologon.microsoftazuread-sso.com。
  • 选择确定,然后重新打开浏览器。

Safari (macOS)

确保运行 macOS 的机器已加入 AD。 AD 加入 macOS 设备的说明超出了本文的范围。

谷歌浏览器(所有平台)

如果您在您的环境中覆盖了 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 组策略扩展在 Mac 用户上向 Firefox 和 Google Chrome 推出 Azure AD URL 不在本文的讨论范围内。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2011-04-13
    • 2017-04-04
    • 1970-01-01
    • 2012-09-16
    • 2011-09-20
    • 2015-11-20
    • 2015-10-21
    • 2018-11-30
    相关资源
    最近更新 更多