Поделиться через


Контроль доступа на основе ролей для приложений в Exchange Online

В этой статье описывается использование детализированного и масштабируемого управления доступом на уровне ресурсов: контроль доступа на основе ролей (RBAC) для приложений в Exchange Online.

Обзор

RBAC для приложений в Exchange Online позволяет администраторам предоставлять разрешения приложению, которое независимо обращается к данным в Exchange Online. Это предоставление можно связать с область доступа (область ресурсов), чтобы указать, к каким почтовым ящикам приложение может получить доступ. Эта функция расширяет текущую модель RBAC в Exchange Online и заменяет политики доступа к приложениям. Эти разрешения не зависят от неуправляемых разрешений в Microsoft Entra ID.

Основой этой системы является конфигурация назначения ролей управления, которая выражает намерение администратора разрешить субъекту доступ к данным. В этом случае приложение может выполнять определенную роль по отношению к набору целевых ресурсов. Например, администратор может настроить систему бронирования помещений с доступом к данным календаря только в определенных регионах с помощью области управления. На следующей схеме показана модель назначения ролей:

Схема модели назначения ролей с примером.

Инструкции по настройке

Ниже приведены инструкции по созданию этих назначений RBAC для приложений:

  1. Создание область ресурса (необязательно)
  2. Создание указателя на субъект-службу Microsoft Entra
  3. Выберите соответствующую роль приложения
  4. Создание назначения новой роли
  5. Тестирование нового субъекта-службы

Требования

Группа ролей "Управление организацией " имеет делегированное назначение роли для новых ролей RBAC приложения. Чтобы назначить эти разрешения, необходимо быть членом группы ролей Управление организацией. Кроме того, можно использовать Exchange Online RBAC для предоставления делегированных назначений этим ролям приложений по своему назначению. В Microsoft Entra ID для назначения этих разрешений требуется роль администратора Exchange.

Определение области ресурсов

Области управления

Области управления позволяют администратору область набор почтовых ящиков на основе свойств этих объектов. Сведения о добавлении, удалении, настройке см. в документации по области управления. Ниже приведен список фильтруемых свойств в области управления.

Примечание.

Хотя существует свойство с именем Административные единицы, рекомендуется использовать собственный параметр Администратор Units для назначения роли, чтобы избежать создания область в качестве промежуточного объекта указателя.

Субъекты-службы

Субъекты-службы представляют экземпляр приложения в организации. Субъект-службу в Exchange следует рассматривать как указатель на существующий субъект-службу в Microsoft Entra ID. Субъекты-службы нельзя создавать напрямую с помощью средств Exchange Online. средства Microsoft Entra используются для управления регистрациями субъектов-служб в организациях. Exchange предотвращает создание недопустимого указателя и автоматически отражает все удаления субъектов-служб в Microsoft Entra ID.

Новый субъект-служба

New-ServicePrincipal -AppId <Client Application ID in AAD> -ObjectId <Service principal object ID in AAD> -DisplayName <name>

На следующем снимке экрана показано, как найти эти идентификаторы в Microsoft Entra ID:

Снимок экрана страницы Microsoft Entra корпоративных приложений.

Примечание.

Не используйте идентификаторы со страницы Регистрация приложений, так как на ней отображаются разные значения. Красным контуром "Идентификатор приложения" является AppID, а "Идентификатор объекта" — ServiceID.

Вы можете использовать другой подход для поиска этих идентификаторов с помощью Get-MgServicePrincipal.

Удаление субъекта-службы

Remove-ServicePrincipal -Identity <ObjectID, AppID, or DisplayName>

Настройка субъекта-службы

Set-ServicePrincipal -Identity <ObjectID, AppID, or DisplayName > -DisplayName <Updated name>

Роли приложения

Роли приложения — это особый тип роли управления в Exchange Online, который можно назначить только приложению. Эти роли можно перечислить с помощью Get-ManagementRole.

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

Назначения ролей управления связывают между собой субъект, роль и пользовательский ресурс область доступа. Это назначение выступает в качестве назначения разрешений для субъекта-службы, выполняющего роль в область.

Назначение новой роли

New-ManagementRoleAssignment [[-Name] <String>] -Role <RoleIdParameter> -App <ObjectID, AppID, or DisplayName> -CustomResourceScope <Management Scope> (or -RecipientAdministrativeUnitScope)

Задание назначения ролей

Set-ManagementRoleAssignment [-Identity] <RoleAssignmentIdParameter> -CustomResourceScope <Management Scope> (or -RecipientAdministrativeUnitScope)

Удаление назначения ролей

Сведения об удалении назначения ролей см. в разделе Удаление назначения управления.

Проверка авторизации

Командлет теста можно использовать для имитации поведения, включенного назначениями RBAC для конкретного субъекта-службы.

Примечание.

Этот метод исключает разрешения, которые могут предоставляться отдельно в Microsoft Entra ID.

При тестировании авторизации можно включить необязательный параметр ресурса, чтобы оценить, какие разрешения области применяются к целевому почтовому ящику. InScope will = true or false значение , если значение true, что разрешение применяется к данному почтовому ящику для этого субъекта-службы, или значение false, что субъект-служба имеет это разрешение, но не относится к конкретному почтовому ящику. Пропуск этого флага приводит к выводу "Не выполняться".

Результаты теста всегда включают разрешенный ресурс область для определенного назначенного разрешения.

Проверка доступа к субъекту-службе

Test-ServicePrincipalAuthorization -Identity <ObjectID, AppID, or DisplayName> [-Resource] <target mailbox>

Примеры

После использования Connect-ExchangeOnline в PowerShell выполните следующие действия.

Пример 1. Настройка доступа на чтение календаря для канадских пользователей с помощью область управления

New-ServicePrincipal -AppId 71487acd-ec93-476d-bd0e-6c8b31831053 -ObjectId 6233fba6-0198-4277-892f-9275bf728bcc -DisplayName "example"

DisplayName   ObjectId                              AppId
-----------   ---------                              -----
example       6233fba6-0198-4277-892f-9275bf728bcc   71487acd-ec93-476d-bd0e-6c8b3183105
New-ManagementScope -Name "Canadian users" -RecipientRestrictionFilter "CustomAttribute1 -eq '012332'"

Name                 ScopeRestrictionType      Exclusive      RecipientRoot          RecipientFilter
----                 --------------------      ---------      -------------          ---------------
Canadian users    RecipientScope            False                                CustomAttribute1 -eq '012332'
New-ManagementRoleAssignment -App 6233fba6-0198-4277-892f-9275bf728bcc -Role "Application Calendars.Read" -CustomResourceScope "Canadian users"

Name                      Role                 RoleAssigneeName       RoleAssigneeType        AssignmentMethod
----                      ----                 ----------------       ----------------        ----------------
Application Calendar...   Application Ca...    6233fba6-0198-...      ServicePrincipal        Direct

Пример 2. Настройка Почтовых ящиков Mail.Read для всех почтовых ящиков единиц Администратор Европы

New-ServicePrincipal -AppId eb19847b-5563-42ea-b719-ea47cb0cf4b3 -ObjectId 59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36 -DisplayName "example"

DisplayName    ObjectId                                  AppId
-----------    ---------                                  -----
example        59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36       eb19847b-5563-42ea-b719-ea47cb0cf4b3
New-ManagementRoleAssignment -App 59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36 -Role "Application Mail.Read" -RecipientAdministrativeUnitScope 4d819ce9-9257-44d7-af20-68a49e6697f4

Name                         Role                RoleAssigneeName         RoleAssigneeType             AssignmentMethod
----                         ----                ----------------          ----------------            ----------------
Application Mail.Rea...      Application Ma...   59b7c6cb-58d3-...         ServicePrincipal            Direct

Пример 3. Тестирование разрешений, назначенных субъекту-службе

Test-ServicePrincipalAuthorization -Resource b -Identity "DemoB" |Format-Table

RoleName                      GrantedPermissions          AllowedResourceScope        ScopeType                 InScope
--------                      ------------------          --------------------        ---------                 ------
Application Mail.Read         Mail.Read                   Scope-MESGaDN                CustomRecipientScope     False
Application Calendars.Read    Calendars.Read              Scope-DL1                    CustomRecipientScope     False
Application Contacts.Read     Contacts.Read               Scope-MESGa                  CustomRecipientScope     False

Ограничения

  • Приложения не могут входить в группу ролей.
  • Роли приложений могут назначаться только субъектам-службам.
  • Роли приложения невозможно скопировать или получить.
  • Монопольные области управления не ограничивают доступ к приложениям.
  • Изменения разрешений приложения подлежат обслуживанию кэша, которое варьируется от 30 минут до 2 часов в зависимости от недавнего использования приложения. При тестировании конфигураций команда test обходит этот кэш. Кэш приложения без входящих вызовов API сбрасывается через 30 минут. Кэш активного приложения хранится в активном режиме в течение 2 часов.

Поддерживаемые протоколы

  • Microsoft Graph
  • EWS

Поддерживаемые роли приложения

Имя Протокол Список разрешений Описание
Application Mail.Read Microsoft Graph Mail.Read Позволяет приложению читать электронную почту во всех почтовых ящиках без вошедшего пользователя.
Application Mail.ReadBasic Microsoft Graph Mail.ReadBasic Позволяет приложению читать сообщения электронной почты, кроме текста, previewBody, вложений и любых расширенных свойств во всех почтовых ящиках без вошедшего пользователя.
Application Mail.ReadWrite Microsoft Graph Mail.ReadWrite Позволяет приложению создавать, читать, обновлять и удалять сообщения электронной почты во всех почтовых ящиках без вошедшего пользователя. Не включает разрешение на отправку почты.
Application Mail.Send Microsoft Graph Mail.Send Позволяет приложению отправлять почту от имени любого пользователя в случаях, когда вход пользователя не предусмотрен.
Application MailboxSettings.Read Microsoft Graph MailboxSettings.Read Позволяет приложению считывать параметры почтового ящика пользователя во всех почтовых ящиках без вошедшего пользователя.
Application MailboxSettings.ReadWrite Microsoft Graph MailboxSettings.ReadWrite Позволяет приложению создавать, считывать, обновлять и удалять параметры почтового ящика пользователя во всех почтовых ящиках без вошедшего пользователя.
Application Calendars.Read Microsoft Graph Calendars.Read Позволяет приложению считывать события во всех календарях в случаях, когда вход пользователя не предусмотрен.
Application Calendars.ReadWrite Microsoft Graph Calendars.ReadWrite Позволяет приложению создавать, считывать, обновлять и удалять события во всех календарях в случаях, когда вход пользователя не предусмотрен.
Application Contacts.Read Microsoft Graph Contacts.Read Позволяет приложению считывать все контакты во всех почтовых ящиках в случаях, когда вход пользователя не предусмотрен.
Application Contacts.ReadWrite Microsoft Graph Contacts.ReadWrite Позволяет приложению создавать, считывать, обновлять и удалять все контакты во всех почтовых ящиках в случаях, когда вход пользователя не предусмотрен.
Application MailboxFolder.Read Microsoft Graph MailboxFolder.Read.All Позволяет приложению считывать все папки почтовых ящиков пользователей без вошедшего пользователя.
Application MailboxFolder.ReadWrite Microsoft Graph MailboxFolder.ReadWrite.All Позволяет приложению считывать и записывать все папки почтовых ящиков пользователей без вошедшего пользователя.
Application MailboxItem.Read Microsoft Graph MailboxItem.Read.All Позволяет приложению считывать все элементы почтового ящика пользователей без вошедшего пользователя.
Application MailboxItem.ImportExport Microsoft Graph MailboxItem.ImportExport.All Позволяет приложению экспортировать и импортировать все элементы почтового ящика пользователей без входа пользователя.
Application Mail Full Access Microsoft Graph Mail.ReadWrite, Mail.Send Позволяет приложению создавать, читать, обновлять и удалять сообщения электронной почты во всех почтовых ящиках и отправлять почту от имени любого пользователя, не выполнившего вход.
Application Exchange Full Access Microsoft Graph Mail.ReadWrite, Mail.Send, MailboxSettings.ReadWrite, Calendars.ReadWrite, Contacts.ReadWrite Без вошедшего пользователя. Позволяет приложению создавать, читать, обновлять и удалять сообщения электронной почты во всех почтовых ящиках и отправлять почту как любому пользователю. Позволяет приложению создавать, считывать, обновлять и удалять параметры почтового ящика пользователя во всех почтовых ящиках. Позволяет приложению создавать, считывать, обновлять и удалять события всех календарей. Позволяет приложению создавать, читать, обновлять и удалять все контакты во всех почтовых ящиках.
Application EWS.AccessAsApp EWS EWS.AccessAsApp Позволяет приложению использовать веб-службы Exchange с полным доступом ко всем почтовым ящикам.
Application SMTP.SendAsApp Microsoft Graph SMTP.SendAsApp Позволяет приложению использовать отправку клиента SMTP для отправки сообщений в папку исходящих пользователей.

Вы можете заметить, что эти роли представляют разрешения Microsoft Graph, на которые вы можете согласиться в другом месте платформы Azure identity. Эти разрешения имеют тот же эффект, что и разрешения Graph, за исключением этих назначений ролей, что обеспечивает детальный доступ к ресурсам.

Вопросы и ответы

Почему мое приложение по-прежнему имеет доступ к почтовым ящикам, которые не предоставляются область, которые я использовал в RBAC приложения Exchange Online?

Необходимо убедиться, что вы удалили разрешения, назначенные в Microsoft Entra ID, в масштабах всей организации. Разрешения, назначенные с помощью application RBAC, действуют в дополнение к предоставленным разрешениям в Microsoft Entra ID. Microsoft Entra разрешения можно ограничить только с помощью политик доступа к приложениям. Другими словами, назначенные разрешения представляют собой операцию объединения разрешений от Microsoft Entra ID и разрешений, назначенных в Exchange Online RBAC. Каждый орган может действовать независимо.

Например, если субъект-служба предоставил Mail.Read в Microsoft Entra ID и вы настроили разрешение на уровне Mail.Read ресурсов в application RBAC, важно удалить назначение Mail.Read из Microsoft Entra ID. В противном случае объединение нерегладентного гранта Mail.Read из Microsoft Entra и гранта Mail.Read на уровне ресурсов в application RBAC не приводит к эффективному уточнению области ресурсов.

Как просмотреть и изменить все разрешения приложений в одном интерфейсе?

Чтобы администраторы имели консолидированное представление разрешений приложений, мы предоставляем эти разрешения, предоставленные в Exchange Online, в интерфейсе администратора Microsoft Entra. Эта функция ожидается, следите за новостями.

Как перейти с политик доступа к приложениям на RBAC для приложений?

С помощью политик доступа к приложениям у вас есть субъект-служба, согласие на разрешения в Azure и политика, связанная с субъектом-службой в Exchange Online. Хотя вы можете изменить структуру механизма определения области с помощью областей управления Exchange или административных единиц, ниже приведены некоторые рекомендации по повторному использованию групп в политике доступа к приложениям в качестве область для предоставления RBAC для приложений. Этот процесс не приводит к прерыванию использования приложения.

Этапы миграции.

  1. Создайте новую область управления, которая указывает на группу области из политики доступа к приложениям.

  2. Создайте объект указателя субъекта-службы.

  3. Назначьте субъекту-службе необходимые разрешения в Exchange Online с ограничением область управления.

  4. Удаление согласия на разрешение в Azure.

  5. Удалите политику доступа к приложениям.

    При создании область управления на шаге 1 используется фильтр получателей с параметром MemberOfGroupфильтра . Пример:

    "MemberOfGroup -eq 'CN=mesga20220818210551,OU=Fabrikam346.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR00A001,DC=prod,DC=outlook,DC=com'"

Примечание.

Этот параметр фильтра использует различающееся имя группы, которое можно найти с помощью командлетов Get-Group.

Ограничения:

  • Вложенные члены группы считаются вне область. Только прямое членство в группе приводит к тому, что участник рассматривается в область для авторизации.
  • поддерживаются Группы Microsoft 365, группы безопасности Mail-Enabled и списки рассылки.

Как RBAC для приложений работает вместе с политиками доступа к приложениям?

Совместимость с политикой доступа к приложениям:

RBAC для приложений заменяет политики доступа к приложениям.

Взаимодействие авторизации можно описать следующим образом:

  • Политики доступа к приложениям ограничивают только разрешения, назначенные в Microsoft Entra ID.

  • RBAC для приложений предлагает альтернативное выражение авторизации со связанным область ресурса.

  • Приложение может иметь как разрешения Microsoft Entra согласия, так и назначения RBAC. Мы ожидаем этот случай, когда приложение имеет (например) общеорганистиционную Mail.Read область и область действия Mail.Send.

  • Разрешения являются аддитивными.

Пример 1. Согласия от двух систем:

  • Приложение имеет Mail.Read Microsoft Entra ID.
  • Это приложение относится к группе безопасности 1 с поддержкой почты с помощью политики доступа к приложениям.
  • Это же приложение предоставило Calendar.Read согласие для области управления 1 в RBAC для приложений.
  • Почтовый ящик A находится в группе безопасности 1 с поддержкой почты.
  • Почтовый ящик B находится в область области управления 1.

Доступ MS Graph к конечной точке требуется как для приложения 1, так Mail.Read и Calendar.Read :

  • Назначение почтового ящика A: сбой.
  • Сбой нацеливания на почтовый ящик B.

Для этой конечной точки требуются и Mail.ReadCalendar.Read. Хотя приложение имеет эти разрешения по отдельности для двух отдельных почтовых ящиков, оно не имеет обоих разрешений для одного почтового ящика.

Пример 2. Назначение одного и того же разрешения дважды:

  • Приложение имеет Mail.Read Microsoft Entra ID.
  • Это приложение относится к группе безопасности 1 с поддержкой почты с помощью политики доступа к приложениям.
  • Это же приложение предоставило Mail.Read согласие для области управления 1 с помощью RBAC для приложений.
  • Почтовый ящик A находится в группе безопасности 1 с поддержкой почты.
  • Область управления 1 позволяет получить доступ к каждому почтовому ящику, кроме почтового ящика A (в соответствии с некоторыми фильтрами, например Alias -ne mbxa).

Доступ MS Graph к конечной точке, необходимой Mail.Read для приложения 1:

  • Нацеливание на почтовый ящик A: разрешить.
  • Нацеливание на почтовый ящик B: разрешить.

Mail.Read В то время как только из Microsoft Entra разрешает доступ к почтовому ящику A, назначение RBAC разрешает доступ ко всем, кроме A. По сути, это назначение разрешает доступ ко всему, так как "A и not A" означает все.

Хотя мы и изложили эти пограничные варианты для полноты, мы не ожидаем, что политики доступа к приложениям обычно используются с RBAC для приложений. Разрешения на уровне организации должны назначаться в Microsoft Entra ID в то время как разрешения на уровне ресурсов должны предоставляться с помощью RBAC для приложений.

Сколько приложений поддерживает RBAC для приложений?

Вы можете использовать до 10 000 приложений на организацию с помощью RBAC для приложений. Сообщите нам, если это ограничение представляет проблему для вас. Мы создали RBAC для приложений в высокомасштабируемом способе, чтобы удовлетворить потребности наших крупнейших клиентов.

Почему автообнаружения не работает?

В настоящее время служба автообнаружения недоступна при использовании ролей приложения RBAC.

Если удалить субъект-службу в Microsoft Entra что происходит в Exchange?

Удаленные субъекты-службы в Microsoft Entra также удаляются в Exchange автоматически. Это удаление удаляет все назначения, сделанные этим субъектам-службам, но не затрагивает области управления.

Отзыв об этой функции

Отзывы об этой функции можно предоставить с помощью exoapprbacpreview@microsoft.com.