В Azure AD JWT отсутствует узел "groups" при входе в AAD с использованием собственного типа приложения - PullRequest
0 голосов
/ 19 октября 2018

JWT, полученный при входе в Native App, не испускает узел "groups", который JWT получает при входе в веб-приложение.

Обе регистрации приложений настроены для передачиgroups "groupMembershipClaims": "SecurityGroup"

Это сценарий неявного предоставления

1 Ответ

0 голосов
/ 19 октября 2018

Обновление

Это для тех, кто хочет разобраться с решением позже.

После получения дополнительной информации от @LastTribunal оказалось, что было 3 отдельных приложенияиспользуется (веб-приложение SPA, нативное приложение на основе .NET и веб-API).Манифест для третьего приложения, т.е. отсутствует веб-интерфейс "groupMembershipClaims": "SecurityGroup"

Итог : даже если токен получен из собственного приложения для доступа к веб-интерфейсу, если он находится в ИнтернетеМанифест api настроен правильно, токен доступа включает в себя утверждения групп.

Это ссылка на образец, за которым @LastTribunal следовал и имел проблемы с собственным приложением. Интеграция Azure AD в настольное приложение Windows с помощью интерактивной аутентификации

Начальный ответ

Пользователь, для которого вы проверяете, может быть частью 6 илибольше групп.В случае потоков неявного предоставления, если заявка на полные группы расширит фрагмент URI за пределы длины URL-адреса, Azure AD отправит вам утверждение с избыточным объемом вместо утверждения «группы».

Таким образом, вы можете получитьиндикатор превышения через утверждение типа «hasgroups» или «groups: src1» в зависимости от того, будет ли длина токена проблемой или нет.

Например, в случае одностраничных приложений (SPA), вы получитеназад утверждение "hasgroups", в то время как в случае нативного приложения на основе .NET, использующего библиотеку ADAL.NET, где длина токена не является проблемой, я видел, что "groups: src" используется для индикации превышения допустимого.

Обычно вам дают подсказку, что пользователь является частью большого количества групп (в настоящее время партия означает 6 или более), и вам нужно сделать второй вызов, чтобы получить информацию обо всех группах, в которые входит этот пользователь.

Документы Microsoft: Ссылка

enter image description here

...