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 утверждений, включая objectidentifier.

Когда мы запускаем точно такой же код, но входим в систему с помощью Chrome, удостоверение содержит только 7 утверждений и не включает идентификатор объекта.

Любая идея, почему это происходит?


person Colin Desmond    schedule 24.09.2014    source источник


Ответы (1)


Извините, что отвечаю на мой собственный вопрос, но оказывается, что два браузера, в которые мы входим, используя 2 разных идентификатора пользователя, один из которых был пользователем в AAD, а другой был LiveId, добавленным в AAD. Последний имеет меньше связанных с ним свойств, включая отсутствие идентификатора объекта.

person Colin Desmond    schedule 24.09.2014
comment
как насчет короткого имени oid? - person Konstantin Chernov; 01.04.2016