windows - 使用联合用户登录 Windows 设备

标签 windows azure azure-active-directory adfs azure-ad-graph-api

我们遇到一个与 Windows 设备和联合 Azure 用户有关的问题。我们构建了一个使用 Graph API 向用户配置 Office 365 的应用程序。这些用户也保存在我们的本地事件目录中。

我们还构建了一个为这些用户提供 SSO 的应用程序。此应用程序兼容处理多个 Office 365 租户(通过委派)

到目前为止,一切都很好。我们可以毫无问题地进行配置,并且 Webflow 中的 SSO 可以正常工作。为此,我们使用自定义的 STS。 STS 轮流使用我们的 ADFS 进行授权。

我们遇到的问题是,当我们使用 Windows 10 设备并尝试使用联合用户登录时,我们总是收到“用户名或密码错误”的通知。我们已经对密码进行了三次检查,它是正确的(记住网络流是有效的)。

经过多个小时的研究,我们得出的结论是,我们需要 WsFed 作为我们的身份验证协议(protocol)。好像用设备登录时,步骤如下:

提供用户名 -> Windows 检查域是否联合 -> 调用 MetadataExchange URI -> 调用 ADFS 的 usernamemixed 端点 -> SOAP 消息发送到 Office,您应该登录。

我们花了几个小时才让它发挥作用,但没有成功。现在,我们已在不同的 URL 上创建了 MetadataExchange 的镜像版本,并更改​​了它将尝试从 ADFS 获取用户的位置。调用通过那里,一切似乎都正常,但我们仍然收到“错误的用户名或密码”通知。

使用 fiddler 我们可以看到,在最后一个步骤中,Office 返回以下错误:

"invalid_grant","error_description":"AADSTS70002: Error validating credentials. AADSTS50155: Device is not authenticated.

我们如何让它发挥作用。所有设备授权均在 Azure 端应用(尽管 AAD API 和 Graph API 似乎都有设备授权,我们都应用了所有设备授权)。

当我们绕过自己的 STS 并直接链接到 ADFS 一切正常时,但这并不是我们所希望的,因为我们需要一个可与多个租户一起使用的解决方案(也是我们不使用 AADSync 的原因)。

欢迎任何建议!

最佳答案

也许您可以发布一个示意图概述,其中包含所需的流程和有效的流程?

此流程中是否使用了 EPC 端点?如果是,它是托管在 ADFS 还是自定义 STS 中?

关于windows - 使用联合用户登录 Windows 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45618151/

相关文章:

Azure VM 在未通过远程桌面连接时暂停运行软件

azure - 如何使用 .NET Core 3.1 通过 Visual Studio 2019 开发 Azure Functions 时使用 AD 身份验证

c# - 无法使用身份验证 = Active Directory 托管标识从 dotnet Web 应用程序连接到 Azure SQL MI

windows - Netbeans 更新失败

窗口命令 : Loop FOR with file containing space in his path

java - 将所有目录内容添加到jar中

authentication - Azure AD 身份验证redirect_uri 在 Linux 托管 (Cloud Foundry) ASP.NET Core 2.2 应用程序上不使用 https

windows - WinSock.h & WinSock2.h 使用哪个?

Azure Application Insights 查询加入自定义属性

azure - 将 Azure DevOps 中选定的工件作为 docker 镜像部署到 ECR