Сбой Azure AD, в том числе groupMemberClaims в манифесте приложения
Я прочитал несколько блогов, в том числе это:
https://www.codeproject.com/Articles/1254806/Authentication-and-Authorization-in-ASP-NET-Core-2
Я строю приложения, использующие OpenIdConnect, используя активный каталог Azure. Я хочу ограничить доступ к каждому приложению только для пользователей в определенных группах. Например, к приложению 1 могут обращаться только пользователи из группы 1, а к приложению 2 - только пользователи из группы 2.
Поэтому, когда пользователь любого из приложений входит в систему с помощью Azure AD, я хочу, чтобы Azure AD возвращал утверждения группы для вошедшего в систему пользователя. Основываясь на группах, я решаю (со стороны приложения), разрешен ли пользователю доступ к приложению или нет. Я был в состоянии выяснить, как вернуть группы...
НО
Когда я включаю groupMemberClaims в манифест приложения, я получаю ошибку Bad Request..., которая является результатом слишком большого количества заголовков, добавленных к запросу, так как некоторые пользователи принадлежат такому количеству групп безопасности. Это моя дилемма.
Кто-нибудь сталкивался с этой проблемой раньше и как вы ее исправили?
1 ответ
Вместо того чтобы полагаться на группы, вы можете определять роли для пользователей в манифесте приложения. Затем вы можете назначить эти роли пользователям. Если у вас есть платная лицензия для Azure AD (я забыл, какой уровень), вы также можете назначать роли пользователей группам.
Вот пример роли пользователя в манифесте приложения:
{
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"displayName": "Administrator",
"id": "179c1dc0-4801-46f3-bc0d-35f059da1415",
"isEnabled": true,
"description": "Administrators can access advanced features.",
"value": "admin"
}
]
}
value
это то, что дано вашему приложению в токене. После определения роли (ий) нажмите "Управляемое приложение в локальном каталоге" (который является субъектом службы). Там вы можете найти пользователей и группы и назначить роли пользователям (и группам).
Моя статья на тему ролей и пользовательских разрешений: https://joonasw.net/view/defining-permissions-and-roles-in-aad