Permissões de escopo de aplicativo para caixas de correio específicas do Exchange OnlineScoping application permissions to specific Exchange Online mailboxes

Alguns aplicativos chamam o Microsoft Graph usando sua própria identidade e não em nome de um usuário.Some apps call Microsoft Graph using their own identity and not on behalf of a user. Geralmente, são serviços de segundo plano ou aplicativos daemon executados em um servidor sem a presença de um usuário conectado.These are usually background services or daemon apps that run on a server without the presence of a signed-in user. 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 permitem que esses aplicativos acessem todas as caixas de correio de uma organização no Exchange Online.These apps make use of OAuth 2.0 client credentials grant flow to authenticate and are configured with application permissions, which enable such apps to access all mailboxes in a organization on 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.For example, the Mail.Read application permission allows apps to read mail in all mailboxes without a signed-in user.

Os administradores que desejem limitar o acesso ao aplicativo a um conjunto específico de caixas de correio podem usar o cmdlet New-ApplicationAccessPolicy do PowerShell para configurar o controle de acesso.Administrators who want to limit the app access to a specific set of mailboxes can use the New-ApplicationAccessPolicy PowerShell cmdlet to configure access control. Este artigo aborda as etapas básicas para configurar uma política de acesso a aplicativos.This article covers the basic steps to configure an application access policy.

Estas etapas são específicas aos recursos do Exchange Online e não se aplicam a outras cargas de trabalho do Microsoft Graph.These steps are specific to Exchange Online resources and do not apply to other Microsoft Graph workloads.

Configurar ApplicationAccessPolicyConfigure ApplicationAccessPolicy

Para configurar uma política de acesso a aplicativos e limitar o escopo das permissões de aplicativos:To configure an application access policy and limit the scope of application permissions:

  1. Conecte-se ao PowerShell do Exchange Online.Connect to Exchange Online PowerShell. Para detalhes, consulte Conectar-se ao PowerShell do Exchange Online.For details, see Connect to Exchange Online PowerShell.

  2. Identifique o ID do cliente do aplicativo e um grupo de segurança habilitado para email para restringir o acesso do aplicativo.Identify the app’s client ID and a mail-enabled security group to restrict the app’s access to.

    • Identifique o ID do aplicativo (cliente) do aplicativo no portal de registro de aplicativos do Azure.Identify the app’s application (client) ID in the Azure app registration portal.
    • Crie um novo grupo de segurança habilitado para email ou use um existente e identifique o endereço de email do grupo.Create a new mail-enabled security group or use an existing one and identify the email address for the group.
  3. Crie uma política de acesso a aplicativos.Create an application access policy.

    Execute o seguinte comando, substituindo os argumentos AppId, PolicyScopeGroupId e Description.Run the following command, replacing the AppId, PolicyScopeGroupId, and Description arguments.

    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.Test the newly created application access policy.

    Execute o seguinte comando, substituindo os argumentos AppId e Identity.Run the following command, replacing the AppId and Identity arguments.

    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 Usuário 1.The output of this command will indicate whether the app has access to User1’s mailbox.

Observação: as alterações nas políticas de acesso a aplicativos podem levar até 30 minutos para entrar em vigor nas chamadas da API REST do Microsoft Graph.Note: Changes to application access policies can take up to 30 minutes to take effect in Microsoft Graph REST API calls.

Permissões compatíveis e recursos adicionaisSupported permissions and additional resources

Os administradores podem usar os cmdlets ApplicationAccessPolicy para controlar o acesso à caixa de correio de um aplicativo que tenha recebido as seguintes permissões de aplicativo:Administrators can use ApplicationAccessPolicy cmdlets to control mailbox access of an app that has been granted any of the following application permissions:

  • Mail.ReadMail.Read
  • Mail.ReadWriteMail.ReadWrite
  • Mail.SendMail.Send
  • MailboxSettings.ReadMailboxSettings.Read
  • MailboxSettings.ReadWriteMailboxSettings.ReadWrite
  • Calendars.ReadCalendars.Read
  • Calendars.ReadWriteCalendars.ReadWrite
  • Contacts.ReadContacts.Read
  • Contacts.ReadWriteContacts.ReadWrite

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.For more information about configuring application access policy, see the PowerShell cmdlet reference for New-ApplicationAccessPolicy.

Como lidar com erros da APIHandling API errors

Você poderá encontrar o seguinte erro quando uma chamada de API for negada devido a uma política de acesso de aplicativo configurada.You might encounter the following error when an API call is denied access due to a configured application access policy.

{
    "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.If Microsoft Graph API calls from your app return this error, work with the Exchange Online administrator for the organization to ensure that your app has permission to access the mailbox resource.

Confira tambémSee also