Resolver erros de autorização do Microsoft Graph

Erros de autorização podem ocorrer como resultado de vários problemas diferentes, a maioria dos quais gera um erro 403 (com algumas exceções). Por exemplo, todos os itens a seguir podem levar a erros de autorização:

Etapas para resolver erros comuns

Para resolver erros de autorização comuns, experimente as etapas descritas para o erro que mais se aproxima do erro que está ocorrendo. Pode haver mais de um erro. Você também pode verificar as respostas já disponíveis no Microsoft Q&A para 401 erros e 403 erros. Se não encontrar uma solução para o problema, faça uma nova pergunta nas P&R da Microsoft e marque microsoft-graph*.

Erro 401 Não autorizado: seu token é válido?

Verifique se o seu aplicativo está apresentando um token de acesso válido ao Microsoft Graph como parte da solicitação. Esse erro geralmente significa que o token de acesso pode estar ausente no cabeçalho da solicitação de autenticação HTTP ou que o token é inválido ou expirou. É altamente recomendável que você use a Biblioteca de Autenticação da Microsoft (MSAL) para aquisição de tokens de acesso. Além disso, esse erro poderá ocorrer se você tentar usar um token de acesso delegado concedido a uma conta Microsoft pessoal para acessar uma API que dá suporte apenas a contas corporativas ou de estudante (contas organizacionais).

Erro 403 Proibido: você escolheu o conjunto certo de permissões?

Verifique se você solicitou o conjunto correto de permissões com base nas APIs do Microsoft Graph que seu aplicativo chama. As permissões menos privilegiadas que recomendamos são fornecidas em todos os artigos de referência do método da API do Graph Microsoft. Além disso, o aplicativo deve receber essas permissões de um usuário ou administrador. A concessão de permissões normalmente ocorre por meio de uma página de consentimento ou concedendo permissões usando a folha de registro de aplicativo do centro de administração do Microsoft Entra.

Erro 403 Proibido: seu aplicativo adquiriu um token para corresponder às permissões escolhidas?

Certifique-se de que o tipo de permissão solicitado ou concedido corresponda ao tipo de token de acesso que seu aplicativo adquire. Você pode estar solicitando e concedendo permissões do aplicativo, mas usando tokens de fluxo de código interativo delegados, em vez de tokens de fluxo de credencial de cliente, ou solicitando e concedendo permissões delegadas, mas usando tokens de fluxo de credenciais de cliente em vez de tokens de fluxo de código delegados.

Erro 403 Proibido: redefinindo a senha

Atualmente, não há permissões de serviço a serviço do daemon de permissão do aplicativo que permitam redefinir senhas de usuário. Essas APIs têm suporte somente usando os fluxos de código delegados interativos com um administrador conectado.

403 Proibido: o usuário tem acesso e está licenciado?

Para fluxos de código delegados, o Microsoft Graph avalia se a solicitação é permitida com base nas permissões concedidas ao aplicativo e nas permissões que o usuário conectado possui. Geralmente, esse erro indica que o usuário não tem privilégio suficiente para executar a solicitação ou não está licenciado para os dados que estão sendo acessados. Somente os usuários com as permissões ou licenças necessárias podem fazer a solicitação com êxito.

403 Proibido: você selecionou a API de recurso correta?

Serviços de API como o Microsoft Graph verificam se a declaração aud (audiência) no token de acesso recebido corresponde ao valor esperado para si e, caso contrário, resultam em um erro 403 Forbidden. Um equívoco comum que causa esse erro é tentar usar um token adquirido para APIs do Microsoft Graph, APIs do Outlook ou APIs do SharePoint/OneDrive do Azure AD para chamar o Microsoft Graph (ou vice-versa). Verifique se o recurso (ou escopo) para o qual o seu aplicativo está adquirindo um token corresponde à API que o aplicativo está chamando.

400 Solicitação incorreta ou 403 Proibido: o usuário está em conformidade com as políticas de acesso condicional (CA) da organização?

Com base nas políticas de CA de uma organização, um usuário que acessa os recursos do Microsoft Graph por meio do seu aplicativo pode ser desafiado a obter informações adicionais que não estão presentes no token de acesso que o aplicativo adquiriu originalmente. Nesse caso, seu aplicativo recebe um 400 com um erro interaction_required durante a aquisição de token de acesso, ou um 403 com o erro insufficient_claims ao chamar o Microsoft Graph. Em ambos os casos, a resposta ao erro contém informações adicionais que podem ser apresentadas ao ponto de extremidade de autorização para desafiar o usuário a obter informações adicionais (como autenticação multifator ou registro do dispositivo).

403 Proibido: o acesso ao OData está desabilitado

Muitas APIs do Microsoft Graph acessam o Exchange Online. Essas APIs estão sujeitas às políticas de aplicativo EWS do Exchange Online. Os aplicativos podem receber 403 Forbidden erros com o corpo de resposta a seguir.

{
    "error": {
        "code": "ErrorAccessDenied",
        "message": "Access to OData is disabled."
    }
}

Isso pode ser causado pelas políticas de acesso ao EWS da sua organização. Um administrador do Exchange pode marcar isso usando o módulo do PowerShell do Exchange Online.

Para determinar se uma política em toda a organização é aplicada:

Get-OrganizationConfig | fl EwsApplicationAccessPolicy,EWS*List

Para determinar se uma política específica do usuário é aplicada:

Get-CASMailbox <user-principal-name> | fl EwsApplicationAccessPolicy,EWS*List

Se EwsApplicationAccessPolicy estiver definido, uma política será aplicada.

  • Se EwsApplicationAccessPolicy estiver definido como EnforceAllowList, o valor do User-Agent aplicativo deverá ser adicionado ao valor EwsAllowList .
  • Se EwsApplicationAccessPolicy estiver definido como EnforceBlockList, o valor do User-Agent aplicativo deverá ser removido do valor EwsBlockList .

Observação

As alterações nas políticas do aplicativo EWS demoram para entrar em vigor. Seu aplicativo pode continuar a receber 403 Forbidden erros por algum tempo depois que você fizer uma alteração.

403 Erro proibido: seu aplicativo está tentando acessar um grupo que contém outros grupos com permissões diferentes?

Examine todos os grupos pertencentes ao grupo que o aplicativo não pode acessar. Se houver grupos aninhados em que o grupo pai, um grupo que possui outros grupos como membros, tem permissão suficiente para que o aplicativo possa acessar, mas o grupo filho, um grupo que é membro de outro grupo, não, isso causará falha no acesso aos grupos filho e pai.

Em alguns casos, um aplicativo pode falhar ao ler grupos ou entidades de serviço devido a permissões insuficientes. Essa falha pode acontecer mesmo quando o aplicativo foi capaz de ler esses grupos contendo grupos aninhados com permissões insuficientes ou entidades de serviço devido aos avanços na proteção de segurança que ocorrem na Microsoft.