Добавление ролей приложения в приложение и их получение в токене

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

Используя RBAC с ролями приложения и утверждениями ролей, разработчики могут безопасно обеспечить авторизацию в своих приложениях, приложив немного усилий.

Другой подход заключается в использовании групп Microsoft Entra и утверждений групп, как показано в примере кода active-directory-aspnetcore-webapp-openidconnect-v2 на сайте GitHub. Группы и роли приложений Microsoft Entra не являются взаимоисключающими; их можно использовать вместе, чтобы обеспечить более точное управление доступом.

Объявление ролей для приложения

Роли приложения определяются с помощью Центра администрирования Microsoft Entra во время процесса регистрации приложения. Роли приложения определяются в регистрации приложения, представляющего службу, приложение или интерфейс API. Когда пользователь входит в приложение, идентификатор Microsoft Entra выдает roles утверждение для каждой роли, предоставленной пользователем или субъектом-службой. Это можно использовать для реализации авторизации на основе утверждений. Роли приложения могут назначаться пользователю или группе пользователей. Роли приложения также могут назначаться субъекту-службе для другого приложения или субъекту-службе для управляемого удостоверения.

В настоящее время если добавить субъект-службу в группу, а затем назначить роль приложения этой группе, идентификатор Microsoft Entra ID не добавляет roles утверждение к маркерам.

Роли приложений объявляются с помощью пользовательского интерфейса ролей приложений в Центре администрирования Microsoft Entra:

Количество ролей, добавляемых к ограничениям манифеста приложения, применяемым идентификатором Microsoft Entra. Дополнительные сведения об этих ограничениях см. в разделе "Ограничения манифеста" в справочнике по манифесту приложения Microsoft Entra.

Пользовательский интерфейс ролей приложения

Совет

Действия, описанные в этой статье, могут немного отличаться на портале, с который вы начинаете работу.

Чтобы создать роль приложения с помощью пользовательского интерфейса Центра администрирования Microsoft Entra:

  1. Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.

  2. Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, содержащий регистрацию приложения из меню каталогов и подписок.

  3. Перейдите к приложениям> удостоверений>Регистрация приложений и выберите приложение, в которое нужно определить роли приложений.

  4. В разделе "Управление ролями приложения" и выберите " Создать роль приложения".

    An app registration's app roles pane in the Azure portal

  5. На панели Создание роли приложения введите параметры для роли. В таблице, следующей за изображением, описывается каждый параметр.

    An app registration's app roles create context pane in the Azure portal

    Поле Описание: Пример
    Отображаемое имя Отображаемое имя для роли приложения, которое присутствует на страницах согласия администратора и назначения приложения. Это значение может содержать пробелы. Survey Writer
    Разрешенные типы элементов Указывает, может ли эта роль приложения назначаться пользователям, приложениям или обоим.

    Если доступно applications, роли приложения отображаются в виде разрешений приложения в разделе Управление регистрации приложения >Разрешения API > Добавить разрешение > Мои интерфейсы API > Выберите API > Разрешения приложения.
    Users/Groups
    Value Определяет значение утверждения ролей, которое приложение должно ожидать в токене. Это значение должно точно совпадать со строкой, на которую ссылается код приложения. Это значение не может содержать пробелы. Survey.Create
    Description Более подробное описание роли приложения, отображаемое при назначении приложения администратора и предоставлении согласия. Writers can create surveys.
    Хотите включить эту роль приложения? Указывает, включена ли роль приложения. Чтобы удалить роль приложения, снимите этот флажок и примените изменения, прежде чем выполнять операцию удаления. Этот параметр управляет использованием и доступностью роли приложения при временном или окончательном отключении ее без полного удаления. Помечено
  6. Щелкните Применить, чтобы сохранить изменения.

Если роль приложения включена, все пользователи, приложения или группы, назначаемые им, включаются в маркеры. Это могут быть маркеры доступа, когда приложение является API, вызываемого приложением или маркерами идентификаторов, когда ваше приложение входит в систему пользователя. Если задано значение "Отключено", он становится неактивным и больше не может назначаться. Все предыдущие назначенные клиенты по-прежнему будут иметь роль приложения, включенную в их маркеры, но она не влияет, так как она больше не будет активно назначаться.

Назначение владельца приложения

Если вы еще не сделали этого, вам потребуется назначить себя владельцем приложения.

  1. В разделе "Управление" в разделе "Управление" выберите "Владельцы" и "Добавить владельцев".
  2. В новом окне найдите и выберите владельцев, которые нужно назначить приложению. Выбранные владельцы отображаются на правой панели. После этого подтвердите нажатие кнопки Select. Теперь владельцы приложений будут отображаться в списке владельцев.

Примечание.

Убедитесь, что приложение API и приложение, которое вы хотите добавить разрешения для обоих владельцев, в противном случае API не будет указан при запросе разрешений API.

Назначение ролей приложения для приложений

После добавления ролей приложения в приложение можно назначить роль приложения клиентскому приложению с помощью Центра администрирования Microsoft Entra или программно с помощью Microsoft Graph. Это не следует путать с назначением ролей пользователям.

При назначении ролей для приложения создаются разрешения приложения. Разрешения приложения обычно используются управляющими приложениями или серверными службами, которые должны пройти проверку подлинности и сделать полномочные вызовы API собственными, без взаимодействия с пользователем.

Чтобы назначить роли приложения приложению с помощью Центра администрирования Microsoft Entra, выполните следующие действия.

  1. Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.
  2. Перейдите к приложениям> удостоверений>Регистрация приложений и выберите "Все приложения".
  3. Щелкните Все приложения, чтобы просмотреть полный список приложений. Если приложение не отображается в списке, используйте фильтры в верхней части списка Все приложения, чтобы сократить список, или прокрутите его вниз и найдите приложение.
  4. Выберите приложение, которому необходимо назначить роль.
  5. Выберите Разрешения API>Добавить разрешение.
  6. Перейдите на вкладку Мои API и выберите приложение, для которого вы определили роли приложения.
  7. В разделе "Разрешение" выберите роли, которые вы хотите назначить.
  8. Нажмите кнопку Добавить разрешения, чтобы завершить добавление ролей.

Вновь добавленные роли должны появиться в области Разрешения API регистрации приложения.

Поскольку это разрешения приложения, а не делегированные разрешения, администратор должен предоставить согласие на использование назначенных приложению ролей.

  1. В области Разрешений API регистрации приложения выберите Предоставить согласие администратора для <имя арендатора>.
  2. Выберите Да при появлении запроса на предоставление согласия с запрошенными разрешениями.

Столбец Состояние должен отражать, что согласие предоставлено для <имя арендатора>.

Сценарий использования для ролей приложений

Если вы реализуете бизнес-логику роли приложения, которая выполняет вход для пользователей в вашем сценарии приложения, сначала определите роли приложения в разделе Регистрации приложения. Затем администратор назначает их пользователям и группам в области Корпоративные приложения. Эти назначенные роли приложений включаются в любой маркер, выданный для вашего приложения.

Если вы реализуете бизнес-логику роли приложения в сценарии API-интерфейса с вызовом приложения, то получаете две регистрации приложения. Одна регистрация приложения предназначена для приложения, а вторая — для API. В этом случае определите роли приложения и назначьте их пользователю или группе в регистрации приложения, относящейся к API. Когда пользователь выполняет проверку подлинности в приложении и запрашивает маркер доступа для вызова API, в этот маркер включается утверждение ролей. Следующим шагом является добавление кода в веб-API для проверки этих ролей при вызове API.

Чтобы узнать, как добавить авторизацию в ваш веб-API, см. статью Защищенный веб-API: проверка областей и ролей приложений.

Роли приложений и группы

Несмотря на то что для авторизации можно использовать роли или группы приложений, основные различия между ними могут повлиять на то, что вы решите использовать в сценарии.

Роли приложения Группы
Они относятся к приложению и определяются в регистрации приложения. Они перемещаются с приложением. Они не относятся к приложению, но к клиенту Microsoft Entra.
Роли приложений удаляются при удалении их регистрации приложения. Группы не изменяются, даже если приложение удалено.
Указывается в утверждении roles. Предоставляется в утверждении groups.

Разработчики могут использовать роли приложения для управления тем, может ли пользователь входить в приложение, или приложение может получить маркер доступа для веб-API. Чтобы расширить этот элемент управления безопасностью до групп, разработчики и администраторы могут также назначать группы безопасности ролям приложений.

Разработчики предпочитают использовать роли приложений, когда им нужно описывать и контролировать параметры авторизации в своих приложениях. Например, приложение, использующее группы для авторизации, будет прерываться в следующем клиенте, так как идентификатор группы и имя могут отличаться. Приложение, использующее роли приложения, остается безопасным. Фактически, назначение групп ролям приложений широко используется в приложениях SaaS по тем же причинам, так как оно позволяет подготовить приложение SaaS в нескольких арендаторах.

Назначение пользователям и группам ролей Microsoft Entra

После добавления ролей приложений в приложение можно назначить пользователей и группы ролям Microsoft Entra. Назначение пользователей и групп ролям можно выполнить через пользовательский интерфейс на портале или программным путем, используя Microsoft Graph. Когда пользователи, назначенные различным ролям, войдите в приложение, их маркеры будут иметь свои назначенные роли в утверждении roles .

Чтобы назначить пользователей и группы ролям с помощью Центра администрирования Microsoft Entra, выполните следующие действия.

  1. Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.
  2. Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, содержащий регистрацию приложения из меню каталогов и подписок.
  3. Перейдите к приложениям Identity>Applications>Enterprise.
  4. Щелкните Все приложения, чтобы просмотреть полный список приложений. Если приложение не отображается в списке, используйте фильтры в верхней части списка Все приложения, чтобы сократить список, или прокрутите его вниз и найдите приложение.
  5. Выберите приложение, в котором для ролей необходимо назначить пользователей или группы безопасности.
  6. В разделе Управление выберите Пользователи и группы.
  7. Щелкните Добавить пользователя, чтобы открыть область Добавление назначения.
  8. В области Добавление назначения щелкните Пользователи и группы. Отобразится список пользователей и групп безопасности. В списке можно выполнить поиск определенного пользователя или группы, а также выбрать несколько пользователей и групп.
  9. Выбрав пользователей и группы, нажмите кнопку Выбрать для продолжения.
  10. Выберите Выбрать роль в области Добавление назначения. Появятся все роли, определенные для приложения.
  11. Выберите роль и выберите кнопку Выбрать.
  12. Выберите Назначить, чтобы завершить назначение пользователей и групп для приложения.

Убедитесь, что добавленные пользователи и группы отображаются в списке Пользователи и группы.

Следующие шаги

Дополнительные сведения о ролях приложений см. в следующих ресурсах.