使用机构和 Microsoft 帐户进行 Azure AD 身份验证

Azure AD authentication with Institutional and Microsoft accounts

我有一个带有 WebApi 服务的自定义 MVC WebApplication,需要 authentication/authorization。我遵循 GitHub WebApp-WebAPI-OpenIDConnect-DotNet 上的示例。在开发过程中,我在个人 Azure 订阅上创建了一个新的测试目录,一切都运行良好。我可以添加机构帐户(如 jon@mytenantname.onmicrosoft.com)和现有的 Microsoft 帐户(jon@hotmail.com)并将它们分配给不同的组。 当用户在登录页面上输入 liveID 电子邮件地址并将光标移动到密码文本框时,他将被重定向到 Microsoft 帐户登录页面。

现在我将应用程序发布到我们的生产 Web 服务器,并希望将应用程序连接到同步的 Azure Active Directory。它适用于所有机构(工作)账户。但是当我添加 Microsoft 帐户并尝试使用这些凭据登录时,重定向不再起作用。登录页面显示为红色:

We don't recognize this user ID or password Make sure you typed the user ID assigned to you by your organization. It usually looks like someone@example.com or someone@example.onmicrosoft.com. And check to make sure you typed the correct password.

我错过了什么?是否可以在一个目录中同时使用同步的机构和个人 Microsoft 帐户?

如果您像示例中那样使用 openid connect,而不使用 /common 端点,那么这两种情况应该没有区别。 我假设您也是 prod 目录中的管理员?您是否以与在测试目录中完全相同的方式在 prod 目录中配置 Microsoft 帐户?

我的团队拥有 Azure AD 的登录用户体验。 AAD 登录页面识别 outlook.com 等域并将用户重定向到 Microsoft 帐户 (Live ID) 登录页面这一事实纯属偶然。它不适用于所有消费者域,并且不能依赖它来启用 MSA 登录您的应用程序。如果要支持 Azure AD 和 MSA 用户登录,则需要在应用中显示单独的登录按钮。我们正在研究如何从长远来看让这种体验变得更好。 希望这有帮助。