Azure AD未为Chrome用户提供对象标识符声明



我们有一个ASP.Net MVC 5应用程序,它正在根据Azure AD进行身份验证。

当用户浏览到控制器操作时,我们希望从ClaimsPrincipal获得对象标识符,因此我们使用以下代码:

var objectIdentifier = Guid.Parse(new ClaimsPrincipal(identity)
   .FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier")
   .Value);

这在IE 11中完全符合预期——身份有9个声明,包括对象标识符。

当我们运行完全相同的代码,但使用Chrome登录时,标识上只有7个声明,并且不包括objectidentifier。

知道为什么会发生这种事吗?

很抱歉回答我自己的问题,但事实证明,我们登录的两个浏览器使用了两个不同的用户身份,其中一个是AAD中的用户,另一个是添加到AAD的LiveId。后者具有较少的相关属性,包括没有对象标识符。

最新更新