У нас есть приложение 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 утверждений, включая objectidentifier.
Когда мы запускаем точно такой же код, но входим в систему с помощью Chrome, удостоверение содержит только 7 утверждений и не включает идентификатор объекта.
Любая идея, почему это происходит?