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


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

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

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

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

Важно!

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

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

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

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

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

Настройка ApplicationAccessPolicy

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

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

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

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

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

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

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

    Test-ApplicationAccessPolicy -Identity [email protected] -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 организации, чтобы убедиться в наличии у вашего приложения разрешения на доступ к ресурсу почтового ящика.