Наше приложение позволяет назначать разрешения группам, что означает, что для каждого пользователя мы должны надежно определять членство в группе. Пользователь представляет токен, регулярно получаемый с помощью ADAL (некоторые используют .NET, другие используют NodeJS, другие используют CLI).
Некоторые пользователи, похоже, отправляют токен со следующим заявлением:
"hasgroups": true,
Это утверждение задокументировано в Справочник по токенам Azure AD.
Мы хотели бы добавить для этого тестовый пример, но после следующих шагов здесь и здесь, мы всегда получаем токен со следующими утверждениями :
"_claim_names": {
"groups": "src1"
},
"_claim_sources": {
"src1": {
"endpoint": "https://graph.windows.net/{redacted}/users/{redacted}/getMemberObjects"
}
},
Что не так с нашей настройкой? Почему мы не можем получить hasgroups
иск?
Вот дополнительная информация:
- Тип приложения - Собственное (не WebApi).
- В манифесте говорится
"oauth2AllowImplicitFlow": true
. - Приложению предоставляется доступ к Azure Key Vault.
Мы используем следующий код для получения токена (на C #):
var userCredential = new UserCredential( _userName, _password );
result = context.AcquireToken( _resource, _clientId, userCredential );
Где:
_userName
и_password
принадлежат пользователю с большим количеством групп._clientId
- это идентификатор собственного приложения, то есть с"oauth2AllowImplicitFlow": true
._resource
ishttps://vault.azure.net
.
Токен выпущен правильно. Единственная проблема в том, что он показывает _claim_names
и _claims_sources
вместо hasgroups
.