相关疑难解决方法(0)

NameIdentifier vs ObjectIdentifier

我有一个多租户ASP.NET应用程序使用OpenIdConnect和Azure AD作为Office 365的身份提供程序.当用户通过身份验证后,我收到了我的声明ClaimsPrincipal.Current.

我想识别用户并将此id引用存储在我的数据库中.我问了这个问题.有人回答说

当尝试唯一地识别用户时[NameIdentifier]应该是您的首选.

但似乎NameIdentifier声称,http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier 取决于应用程序.确切地说,如果我在Azure AD中创建另一个应用程序,那么NameIdentifier对于同一个真正的 Office365用户来说,它们将是不一样的.请记住,我们可能必须创建另一个Azure AD清单(因为我们可能需要其他范围),我们应该能够找回相同的最终用户.

与此同时,我评论了另一个主张: ObjectIdentifier http://schemas.microsoft.com/identity/claims/objectidentifier

ObjectIdentifier对于给定的Office 365用户,所有Azure AD保护的应用程序似乎都是相同的.

你能准确解释这两种说法之间的区别吗?更重要的是,您是否可以确认ObjectIdentifier可以在任何Office 365订阅中将其用作用户的"通用"标识符.

claims-based-identity azure-active-directory office365api azure-ad-graph-api

17
推荐指数
1
解决办法
3221
查看次数