Azure Active Directory 和联合身份验证

Azure Active Directory and Federated Authentication

我们使用带有联合身份验证的 Azure Active Directory。这没有问题 - 但我们需要能够让用户使用登录 Windows 凭据以外的凭据登录。

现在发生的事情是

It looks like this email is used with more than one account from Microsoft. Which one do you want to use? Work or school account Work or school account Assigned by your work or school

Redirecting We're taking you to your organization's sign-in page.

https://ds1.mydomain.com/adfs/ls/auth/integrated/?username=me%40mydomain.com&wa=wsignin1.0&wtrealm=urn%3afederation%3aMicrosoftOnline&wctx=estsredirect%3d2%26estsrequest%xxxxx&popupui=1

如果我使用非域(本地)帐户使用 Windows 会话导航到 URL https://ds1.mydomain.com/adfs/ls/auth/integrated/?username=me%40mydomain.com&wa=wsignin1.0&wtrealm=urn%3afederation%3aMicrosoftOnline&wctx=estsredirect%3d2%26estsrequest%xxxxx&popupui=1,我会收到标准的集成身份验证提示

所以 - 我们的 ADFS 服务器似乎在 IIS 网站上使用集成 Windows 身份验证。

我的问题是 - 如何允许用户以不同的域用户身份登录 Web 应用程序。有没有我可以使用的特殊 ADFS 登录 URL?如果是这样,我如何告诉 Azure 应用程序使用那个 URL。或者有没有办法根据需要以其他方式禁用集成身份验证?

谢谢。

更新:

我发现如果我将 ADFS URL 指向基本身份验证端点

https://ds1.mydomain.com/adfs/ls/auth/basic/?username=me%40mydomain.com&wa=wsignin1.0&wtrealm=urn% 3afederation%3aMicrosoftOnline&wctx=estsredirect%3d2%26estsrequest%xxxxx&popupui=1

系统提示我进行基本身份验证(正是我想要的)...那么如何告诉我的 Azure AD 或 Azure AD 应用程序使用什么登录名 URL?我怎样才能有条件地控制它?

您需要从相关计算机上的本地 Intranet 区域中删除 AD FS,以便它们提示,或者更好地查看 AD FS 中基于用户代理的定位,并将这些计算机配置为发送用户代理触发基于表单的 AuthN。

查看 https://technet.microsoft.com/en-us/library/dn727110.aspx 了解更多信息。

答案实际上很简单(在 Fiddler 的帮助下):

重定向到 login.microsoftonline.com 时,将 &prompt=login 添加到 ADAL JavaScript 生成的查询字符串中。这会导致 MS 门户重定向到 ADFS Forms Auth URL 而不是使用集成安全性的那个。