Azure AD v2.0 终结点是否会传递相同的名称标识符作为同一 Microsoft 帐户的访问控制服务?

Will the Azure AD v2.0 endpoint pass the same nameidentifier through as Access Control Services for the same Microsoft Account?

我们目前正在使用 Azure 访问控制服务 (***.accesscontrol.windows.net) 以允许拥有个人管理的 Microsoft 帐户(身份提供者)的客户登录到我们的客户自助服务门户(依赖方应用程序),它们是由 Web API 服务提供支持的 Angular 应用程序。在我们的访问控制服务中,我们目前正在将来自 Windows Live ID 的名称标识符 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier 声明传递给依赖方 API,后者将该令牌与我们应用程序中的身份相匹配。

我们希望通过用户身份提供者的 Azure AD v2.0 service, but do not understand how to migrate our existing users to the new system. The code examples suggest that the OWIN middleware returns the NameIdentifier claim 支持企业和个人 Microsoft 帐户,但如果该身份提供者是同一个 Microsoft 帐户(又名 Windows Live ID),这与我们当前通过访问控制服务直通接收的 NameIdentifier 相同吗?

如能提供任何帮助 and/or 说明此转换的工作原理的文档,我们将不胜感激。

如果来自 ACS 的 nameidentifier 是随机生成的值,那么您有点卡住了,因为该值对于 ACS/RP/User 是唯一的。如果它返回实际的 Live ID,那么显然只有当 Azure AD 用户具有相同的电子邮件地址时它才会匹配。

我不知道是否有任何文档描述了如何处理这种情况。我的建议是只需要在同一会话中从每个来源进行一次性身份验证,并将两个结果结合起来。这基本上意味着

  1. 向 Azure AD 进行身份验证
  2. 您的应用:嘿,您没有任何用户详细信息,要关联一个 Live ID 吗?
  3. 验证实时 ID
  4. 将 Live ID 与 Azure AD 相关联

然后,如果他们将来想使用其中任何一个帐户登录,您在两者之间有一个 link。