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 você não conseguir encontrar uma solução para o problema, faça uma nova pergunta sobre o Microsoft Q&A e marque com 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 pode ocorrer se você tentar usar um token de acesso delegado concedido a uma conta pessoal da Microsoft, para acessar uma API que só dê suporte 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 tópicos de referência de método da API do Microsoft Graph. Além disso, essas permissões devem ser concedidas ao aplicativo por um usuário ou administrador. A concessão de permissões normalmente acontece por meio de uma página de consentimento ou pela concessão de permissões usando a folha centro de administração do Microsoft Entra registro do aplicativo.

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

No momento, não há permissões de serviço a serviço de permissão de aplicativo daemon que permitam a redefinição de senhas dos usuários. 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 Exchange Online. Essas APIs estão sujeitas às políticas de aplicativo EWS de Exchange Online. Os aplicativos podem receber 403 Forbidden erros com o corpo da resposta a seguir.

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

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

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

Get-OrganizationConfig | fl EwsApplicationAccessPolicy,EWS*List

Para determinar se uma política específica do usuário foi 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 de aplicativo EWS levam tempo para entrar em vigor. Seu aplicativo pode continuar recebendo 403 Forbidden erros por algum tempo depois de fazer uma alteração.