Сбой 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

Другие вопросы по тегам