使用联合用户登录Windows设备

时间:2017-08-10 15:42:52

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

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

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

到目前为止,这么好。我们可以毫无问题地提供和WebO中的SSO工作。尽管如此,我们还是使用了自定义STS。其上的STS使用我们的ADFS进行授权。

我们遇到的问题是,当我们使用Windows 10设备并尝试使用联盟用户登录时,我们始终会收到“用户名或密码错误”的通知。我们已经对密码进行了三次检查,这是正确的(请记住网络流程正常工作)。

经过数小时的研究,我们得出结论,我们需要WsFed作为我们的身份验证协议。您似乎在使用设备登录时,步骤如下:

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

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

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

  

“invalid_grant”,“error_description”:“AADSTS70002:验证错误   证书。 AADSTS50155:设备未经过身份验证。

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

当我们规避自己的STS并直接链接到ADFS everthings时,这是不可取的,因为我们需要一个适用于多个租户的解决方案(也是我们不使用AADSync的原因)。

欢迎任何建议!

2 个答案:

答案 0 :(得分:1)

也许您可以使用所需的流程和有效的流程发布原理图概述?

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

答案 1 :(得分:0)

使用ECP端点,但该端点仅处理来自Exchange客户端(如iPhone,Outlook for Windows等)的调用,并且像魅力一样工作。 Windows登录不使用该端点,所以我不认为可以在那里找到解决方案。我怀疑当我们使用自己的STS时,翻译中有索赔丢失,但我找不到一个消息来源告诉我在处理设备时会有哪些声明。

更新:我们能够让ADFS与多个域一起使用。通过遵循https://docs.microsoft.com/nl-nl/azure/active-directory/device-management-hybrid-azuread-joined-devices-setup提示,我们可以翻译声明,以便多个域可以正常工作。