Ограничение разрешений для приложений с указанием определенных почтовых ящиков 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. Определите идентификатор клиента приложения и группу безопасности с поддержкой электронной почты, чтобы ограничить доступ приложения.

    • Определите идентификатор приложения (клиента) на портале регистрации приложений Azure.
    • Создайте новую группу безопасности с поддержкой электронной почты или используйте существующую и определите адрес электронной почты для группы.
  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.

Примечание. Изменение политик доступа к приложениям может занять более 1 часа, чтобы затронуть вызовы REST API Microsoft Graph, даже если 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 организации, чтобы убедиться в наличии у вашего приложения разрешения на доступ к ресурсу почтового ящика.

См. также