【发布时间】:2016-04-20 14:50:01
【问题描述】:
我有一个使用 OpenIdConnect 和 Azure AD 作为 Office 365 身份提供程序的多租户 ASP.NET 应用程序。当用户通过身份验证时,我会在 ClaimsPrincipal.Current 中收到我的声明。
我想识别一个用户并将这个 id 引用存储在我的数据库中。我问了this question。 有人回复说
在尝试唯一标识用户时,[NameIdentifier] 应该是您的首选。
但似乎NameIdentifier 声称,http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
取决于应用程序。准确地说,如果我在 Azure AD 中创建另一个应用程序,那么对于同一 real Office365 用户,NameIdentifier 将不一样。请记住,我们可能必须创建另一个 Azure AD 清单(因为我们可能需要其他范围)并且我们应该能够找到相同的最终用户。
同时,我评论了另一个声明:ObjectIdentifierhttp://schemas.microsoft.com/identity/claims/objectidentifier
似乎ObjectIdentifier 对于给定 Office 365 用户的所有受 Azure AD 保护的应用程序都是相同的。
您能否准确解释这两种说法之间的区别?更重要的是,您能否确认 ObjectIdentifier 可以用作任何 Office 365 订阅中用户的“通用”标识符。
【问题讨论】:
标签: azure-active-directory claims-based-identity office365api azure-ad-graph-api