Limitando permissões de escopo de aplicativo para caixas de correio específicas do Exchange Online

Os administradores que desejam limitar o acesso do aplicativo a caixas de correio específicas podem criar uma política de acesso de aplicativo usando o cmdlet New-ApplicationAccessPolicy do PowerShell. Este artigo aborda as etapas básicas para configurar o controle de acesso. Estas etapas são específicas aos recursos do Exchange Online e não se aplicam a outras cargas de trabalho do Microsoft Graph.

Histórico

Alguns aplicativos chamam o Microsoft Graph usando sua própria identidade e não em nome de um usuário. Geralmente, são serviços de segundo plano ou aplicativos daemon executados em um servidor sem a presença de um usuário conectado. Esses aplicativos usam o fluxo de concessão de credenciais do cliente OAuth 2.0 para autenticar e são configurados com permissões de aplicativo, que por padrão permitem que esses aplicativos acessem todas as caixas de correio de uma organização no Exchange Online. Por exemplo, a permissão de aplicativo Mail.Read permite que os aplicativos leiam emails em todas as caixas de correio sem um usuário conectado.

Importante

Por padrão, os aplicativos que receberam permissões de aplicativo para os seguintes conjuntos de dados podem acessar todas as caixas de correio da organização:

  • Calendários
  • Contatos
  • Email
  • Configurações da Caixa de Correio

Os administradores podem configurar a política de acesso a aplicativos para limitar o acesso do aplicativo a caixas de correio específicas.

Há cenários em que os administradores podem querer limitar um aplicativo apenas a caixas de correio específicas e não a todas as caixas de correio do Exchange Online na organização. Os administradores podem identificar o conjunto de caixas de correio para permitir o acesso colocando-as em um grupo de segurança habilitado para email. Em seguida, os administradores podem limitar o acesso de aplicativos de terceiros apenas a esse conjunto de caixas de correio criando uma política de acesso de aplicativo para acesso a esse grupo.

Conforme descrito na seção permissões com suporte e recursos adicionais abaixo, a política de acesso ao aplicativo restringe o acesso à caixa de correio para aplicativos que foram concedidos a qualquer um dos escopos de permissão do Microsoft Graph ou dos Serviços Web do Exchange aos quais a política dá suporte.

Configurar ApplicationAccessPolicy

Para configurar uma política de acesso a aplicativos e limitar o escopo das permissões de aplicativos:

  1. Conecte-se ao PowerShell do Exchange Online. Para detalhes, consulte Conectar-se ao PowerShell do Exchange Online.

  2. Identifique a ID do cliente do aplicativo e um grupo de segurança habilitado para email para restringir o acesso do aplicativo.

  3. Crie uma política de acesso a aplicativos.

    Execute o seguinte comando, substituindo os argumentos AppId, PolicyScopeGroupId e 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. Teste a política de acesso a aplicativos recém-criada.

    Execute o comando a seguir, substituindo os argumentos para Identity e AppId.

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

    A saída desse comando indicará se o aplicativo tem acesso à caixa de correio do User1.

Observação

As alterações nas políticas de acesso ao aplicativo podem levar mais de 1 hora para entrar em vigor nas chamadas de API REST do Microsoft Graph, mesmo quando Test-ApplicationAccessPolicy mostram resultados positivos.

Permissões compatíveis e recursos adicionais

Os administradores podem usar os cmdlets ApplicationAccessPolicy para controlar o acesso à caixa de correio de um aplicativo que recebeu qualquer uma das seguintes permissões de aplicativo do Microsoft Graph ou permissões de Serviços Web do Exchange.

Permissões de aplicativos do 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

Escopo de permissão dos Serviços Web do Exchange: full_access_as_app.

Para obter mais informações sobre como configurar a política de acesso a aplicativos, consulte a referência de cmdlet do PowerShell para New-ApplicationAccessPolicy.

Como lidar com erros da API

Você poderá encontrar o seguinte erro quando uma chamada de API for negada devido a uma política de acesso de aplicativo configurada.

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

Se as chamadas da API do Microsoft Graph de seu aplicativo retornarem esse erro, trabalhe com o administrador do Exchange Online da organização para garantir que seu aplicativo tenha permissão para acessar o recurso de caixa de correio.