Ограничение разрешений для приложений с указанием определенных почтовых ящиков Exchange Online

Администраторы, которые хотят ограничить доступ приложения определенными почтовыми ящиками, могут создать политику доступа приложений с помощью командлета PowerShell New-ApplicationAccessPolicy. В этой статье описаны основные действия по настройке управления доступом. Эти инструкции относятся к ресурсам Exchange Online и не относятся к другим рабочим нагрузкам Microsoft Graph.

Общие сведения

Некоторые приложения вызывают Microsoft Graph от своего имени, а не от имени пользователя. Обычно это фоновые службы и управляющие программы, которые работают на сервере без выполнившего вход пользователя. В таких приложениях используется поток предоставления учетных данных клиента OAuth 2.0, обеспечивающий проверку подлинности, и заданы настройки разрешений для приложений, которые по умолчанию позволяют таким приложениям получать доступ ко всем почтовым ящикам организации в Exchange Online. Например с помощью разрешения для приложения Mail.Read приложения могут считывать почту во всех почтовых ящиках без необходимости входа пользователя.

Важно!

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

  • Календари
  • Контакты
  • Почта
  • Параметры почтового ящика

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

Существуют сценарии, в которых администраторам может потребоваться разрешить приложению доступ только к определенным почтовым ящикам, а не ко всем почтовым ящикам Exchange Online в организации. Администраторы могут определить набор почтовых ящиков для разрешения доступа, поместив их в группу безопасности с поддержкой почты. Затем администраторы могут ограничить доступ к сторонним приложениям только этим набором почтовых ящиков, создав политику доступа к приложениям для доступа к этой группе.

Как описано далее в разделе Поддерживаемые разрешения и дополнительные ресурсы, политика доступа приложений ограничивает доступ к почтовым ящикам только приложениями, которым были предоставлены любые разрешения Microsoft Graph или веб-служб Exchange, поддерживаемые политикой.

Настройка ApplicationAccessPolicy

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

  1. Подключитесь к Exchange Online PowerShell. Подробнее см. статью Подключение к Exchange Online PowerShell.

  2. Определите идентификатор клиента приложения и группу безопасности с поддержкой почты, чтобы ограничить доступ приложения.

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

    Выполните указанную ниже команду, заменив аргументы AppId, PolicyScopeGroupId и Description.

    New-ApplicationAccessPolicy -AppId e7e4dbfc-046f-4074-9b3b-2ae8f144f59b -PolicyScopeGroupId EvenUsers@contoso.com -AccessRight RestrictAccess -Description "Restrict this app to members of distribution group EvenUsers."
    
  4. Протестируйте созданную политику доступа приложений.

    Выполните указанную ниже команду, заменив аргументы Identity и AppId.

    Test-ApplicationAccessPolicy -Identity user1@contoso.com -AppId e7e4dbfc-046-4074-9b3b-2ae8f144f59b
    

    Выходные данные этой команды указывают, имеет ли приложение доступ к почтовому ящику User1.

Примечание.

Изменения в политиках доступа к приложениям могут входить в силу в вызовах REST API Microsoft Graph дольше 1 часа, даже если Test-ApplicationAccessPolicy отображаются положительные результаты.

Поддерживаемые разрешения и дополнительные ресурсы

Администраторы могут использовать командлеты ApplicationAccessPolicy для управления доступом к почтовым ящикам для приложения, которому предоставлены указанные ниже разрешения приложений Microsoft Graph или разрешения веб-служб Exchange.

Разрешения приложений Microsoft Graph:

  • Mail.Read
  • Mail.ReadBasic
  • Mail.ReadBasic.All
  • Mail.ReadWrite
  • Mail.Send
  • MailboxSettings.Read
  • MailboxSettings.ReadWrite
  • Calendars.Read
  • Calendars.ReadWrite
  • Contacts.Read
  • Contacts.ReadWrite

Область разрешений веб-служб Exchange: full_access_as_app.

Дополнительные сведения о настройке политики доступа приложения см. в справочнике по командлету PowerShell New-ApplicationAccessPolicy.

Обработка ошибок API

Если API-вызову будет отказано в доступе из-за настроек политики доступа приложения, может появиться указанное ниже сообщение об ошибке.

{
    "error": {
        "code": "ErrorAccessDenied",
        "message": "Access to OData is disabled.",
        "innerError": {
            "request-id": "2f038156-cf40-403d-8e46-831fe42a8229",
            "date": "2019-05-24T10:16:21"
        }
    }
}

Если вызовы API Microsoft Graph из вашего приложения возвращают такое сообщение об ошибке, обратитесь к администратору Exchange Online организации, чтобы убедиться в наличии у вашего приложения разрешения на доступ к ресурсу почтового ящика.