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