Добавление ролей приложения в приложение и их получение в токене
Управление доступом на основе ролей (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:
Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.
Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, содержащий регистрацию приложения из меню каталогов и подписок.
Перейдите к приложениям> удостоверений>Регистрация приложений и выберите приложение, в которое нужно определить роли приложений.
В разделе "Управление ролями приложения" и выберите " Создать роль приложения".
На панели Создание роли приложения введите параметры для роли. В таблице, следующей за изображением, описывается каждый параметр.
Поле Описание: Пример Отображаемое имя Отображаемое имя для роли приложения, которое присутствует на страницах согласия администратора и назначения приложения. Это значение может содержать пробелы. Survey Writer
Разрешенные типы элементов Указывает, может ли эта роль приложения назначаться пользователям, приложениям или обоим.
Если доступноapplications
, роли приложения отображаются в виде разрешений приложения в разделе Управление регистрации приложения >Разрешения API > Добавить разрешение > Мои интерфейсы API > Выберите API > Разрешения приложения.Users/Groups
Value Определяет значение утверждения ролей, которое приложение должно ожидать в токене. Это значение должно точно совпадать со строкой, на которую ссылается код приложения. Это значение не может содержать пробелы. Survey.Create
Description Более подробное описание роли приложения, отображаемое при назначении приложения администратора и предоставлении согласия. Writers can create surveys.
Хотите включить эту роль приложения? Указывает, включена ли роль приложения. Чтобы удалить роль приложения, снимите этот флажок и примените изменения, прежде чем выполнять операцию удаления. Этот параметр управляет использованием и доступностью роли приложения при временном или окончательном отключении ее без полного удаления. Помечено Щелкните Применить, чтобы сохранить изменения.
Если роль приложения включена, все пользователи, приложения или группы, назначаемые им, включаются в маркеры. Это могут быть маркеры доступа, когда приложение является API, вызываемого приложением или маркерами идентификаторов, когда ваше приложение входит в систему пользователя. Если задано значение "Отключено", он становится неактивным и больше не может назначаться. Все предыдущие назначенные клиенты по-прежнему будут иметь роль приложения, включенную в их маркеры, но она не влияет, так как она больше не будет активно назначаться.
Назначение владельца приложения
Если вы еще не сделали этого, вам потребуется назначить себя владельцем приложения.
- В разделе "Управление" в разделе "Управление" выберите "Владельцы" и "Добавить владельцев".
- В новом окне найдите и выберите владельцев, которые нужно назначить приложению. Выбранные владельцы отображаются на правой панели. После этого подтвердите нажатие кнопки Select. Теперь владельцы приложений будут отображаться в списке владельцев.
Примечание.
Убедитесь, что приложение API и приложение, которое вы хотите добавить разрешения для обоих владельцев, в противном случае API не будет указан при запросе разрешений API.
Назначение ролей приложения для приложений
После добавления ролей приложения в приложение можно назначить роль приложения клиентскому приложению с помощью Центра администрирования Microsoft Entra или программно с помощью Microsoft Graph. Это не следует путать с назначением ролей пользователям.
При назначении ролей для приложения создаются разрешения приложения. Разрешения приложения обычно используются управляющими приложениями или серверными службами, которые должны пройти проверку подлинности и сделать полномочные вызовы API собственными, без взаимодействия с пользователем.
Чтобы назначить роли приложения приложению с помощью Центра администрирования Microsoft Entra, выполните следующие действия.
- Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.
- Перейдите к приложениям> удостоверений>Регистрация приложений и выберите "Все приложения".
- Щелкните Все приложения, чтобы просмотреть полный список приложений. Если приложение не отображается в списке, используйте фильтры в верхней части списка Все приложения, чтобы сократить список, или прокрутите его вниз и найдите приложение.
- Выберите приложение, которому необходимо назначить роль.
- Выберите Разрешения API>Добавить разрешение.
- Перейдите на вкладку Мои API и выберите приложение, для которого вы определили роли приложения.
- В разделе "Разрешение" выберите роли, которые вы хотите назначить.
- Нажмите кнопку Добавить разрешения, чтобы завершить добавление ролей.
Вновь добавленные роли должны появиться в области Разрешения API регистрации приложения.
Предоставление согласия администратора
Поскольку это разрешения приложения, а не делегированные разрешения, администратор должен предоставить согласие на использование назначенных приложению ролей.
- В области Разрешений API регистрации приложения выберите Предоставить согласие администратора для <имя арендатора>.
- Выберите Да при появлении запроса на предоставление согласия с запрошенными разрешениями.
Столбец Состояние должен отражать, что согласие предоставлено для <имя арендатора>.
Сценарий использования для ролей приложений
Если вы реализуете бизнес-логику роли приложения, которая выполняет вход для пользователей в вашем сценарии приложения, сначала определите роли приложения в разделе Регистрации приложения. Затем администратор назначает их пользователям и группам в области Корпоративные приложения. Эти назначенные роли приложений включаются в любой маркер, выданный для вашего приложения.
Если вы реализуете бизнес-логику роли приложения в сценарии API-интерфейса с вызовом приложения, то получаете две регистрации приложения. Одна регистрация приложения предназначена для приложения, а вторая — для API. В этом случае определите роли приложения и назначьте их пользователю или группе в регистрации приложения, относящейся к API. Когда пользователь выполняет проверку подлинности в приложении и запрашивает маркер доступа для вызова API, в этот маркер включается утверждение ролей. Следующим шагом является добавление кода в веб-API для проверки этих ролей при вызове API.
Чтобы узнать, как добавить авторизацию в ваш веб-API, см. статью Защищенный веб-API: проверка областей и ролей приложений.
Роли приложений и группы
Несмотря на то что для авторизации можно использовать роли или группы приложений, основные различия между ними могут повлиять на то, что вы решите использовать в сценарии.
Роли приложения | Группы |
---|---|
Они относятся к приложению и определяются в регистрации приложения. Они перемещаются с приложением. | Они не относятся к приложению, но к клиенту Microsoft Entra. |
Роли приложений удаляются при удалении их регистрации приложения. | Группы не изменяются, даже если приложение удалено. |
Указывается в утверждении roles . |
Предоставляется в утверждении groups . |
Разработчики могут использовать роли приложения для управления тем, может ли пользователь входить в приложение, или приложение может получить маркер доступа для веб-API. Чтобы расширить этот элемент управления безопасностью до групп, разработчики и администраторы могут также назначать группы безопасности ролям приложений.
Разработчики предпочитают использовать роли приложений, когда им нужно описывать и контролировать параметры авторизации в своих приложениях. Например, приложение, использующее группы для авторизации, будет прерываться в следующем клиенте, так как идентификатор группы и имя могут отличаться. Приложение, использующее роли приложения, остается безопасным. Фактически, назначение групп ролям приложений широко используется в приложениях SaaS по тем же причинам, так как оно позволяет подготовить приложение SaaS в нескольких арендаторах.
Назначение пользователям и группам ролей Microsoft Entra
После добавления ролей приложений в приложение можно назначить пользователей и группы ролям Microsoft Entra. Назначение пользователей и групп ролям можно выполнить через пользовательский интерфейс на портале или программным путем, используя Microsoft Graph. Когда пользователи, назначенные различным ролям, войдите в приложение, их маркеры будут иметь свои назначенные роли в утверждении roles
.
Чтобы назначить пользователей и группы ролям с помощью Центра администрирования Microsoft Entra, выполните следующие действия.
- Войдите в Центр администрирования Microsoft Entra как минимум облачные приложения Администратор istrator.
- Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, содержащий регистрацию приложения из меню каталогов и подписок.
- Перейдите к приложениям Identity>Applications>Enterprise.
- Щелкните Все приложения, чтобы просмотреть полный список приложений. Если приложение не отображается в списке, используйте фильтры в верхней части списка Все приложения, чтобы сократить список, или прокрутите его вниз и найдите приложение.
- Выберите приложение, в котором для ролей необходимо назначить пользователей или группы безопасности.
- В разделе Управление выберите Пользователи и группы.
- Щелкните Добавить пользователя, чтобы открыть область Добавление назначения.
- В области Добавление назначения щелкните Пользователи и группы. Отобразится список пользователей и групп безопасности. В списке можно выполнить поиск определенного пользователя или группы, а также выбрать несколько пользователей и групп.
- Выбрав пользователей и группы, нажмите кнопку Выбрать для продолжения.
- Выберите Выбрать роль в области Добавление назначения. Появятся все роли, определенные для приложения.
- Выберите роль и выберите кнопку Выбрать.
- Выберите Назначить, чтобы завершить назначение пользователей и групп для приложения.
Убедитесь, что добавленные пользователи и группы отображаются в списке Пользователи и группы.
Следующие шаги
Дополнительные сведения о ролях приложений см. в следующих ресурсах.
- Примеры кода на GitHub
- Справочная документация
- Видео. Реализация авторизации в приложениях с помощью платформы удостоверений Майкрософт (1:01:15)