我们使用 OpenId Connect 协议和 OWIN 中间件在我们的 ASP.NET Web 应用程序中实现了多租户单点登录场景。我们遵循了官方的示例项目,例如: https ://github.com/AzureADSamples/WebApp-WebAPI-MultiTenant-OpenIdConnect-DotNet
通过这样做,Office 365 用户(或一般的 Azure AD 用户)可以登录到我们的 Web 应用程序,这通常可以正常工作。
现在,我们遇到了 Azure AD Premium 的多重身份验证 (MFA) 功能和“不要再询问 x 天”选项的问题。在启用 MFA 和“不询问”选项的情况下首次登录我们的 Web 应用程序时,身份验证过程成功。关闭并重新打开浏览器后,登录过程不再起作用。详细复现步骤:
- 确保浏览器缓存已被清除。
- 打开浏览器并转到 Web 应用程序。
- 当被重定向到 Azure AD 登录页面 (login.microsoftonline.com) 时,使用您的 Azure AD/O365 帐户凭据登录并选中选项以存储登录信息以在关闭浏览器后仍然进行身份验证。
- 输入将发送到您的移动设备(或其他设备)的 MFA 验证码,并选中“不要再询问 x 天”选项。
- 您将作为经过身份验证的用户重定向到 Web 应用程序。
- 现在关闭并重新打开浏览器。
- 再次转到 Web 应用程序。
- 当被重定向到 Azure AD 登录页面时,您无法继续。您的帐户凭据已存储,但您无法继续。当一次又一次地点击登录按钮时,什么也没有发生。
以下页面显示,MFA 功能仍处于公共预览阶段,因此该功能可能仍存在错误: http ://technet.microsoft.com/en-us/library/dn270518.aspx#user_suspend_mfa
我们已经尝试使用 WS-Federation 中间件而不是 OpenId Connect,但问题仍然存在,所以我认为这不是与协议相关的问题。
我现在正试图联系负责的工程师团队报告这个错误。我们非常感谢让我们的用户能够使用 MFA 登录我们的网络应用程序。
谢谢你的帮助。
此致,
达斯汀