Requisição HTTP ao SharePoint Retorna 403: Causa Raiz e Correção
🔍 WiseChecker

Requisição HTTP ao SharePoint Retorna 403: Causa Raiz e Correção

Quando você faz uma requisição HTTP a um site do SharePoint e recebe um erro 403 Forbidden, a requisição chega ao servidor, mas o acesso é negado. Esse erro indica que o servidor SharePoint reconheceu sua requisição, mas determinou que você não tem permissão para visualizar o recurso. A causa raiz é quase sempre uma falha de autenticação ou autorização, não um problema de rede ou servidor. Este artigo explica os motivos mais comuns para o erro 403 no SharePoint, incluindo tokens expirados, permissões incorretas e restrições de IP. Você aprenderá correções passo a passo para cada cenário.

Principais Conclusões: Erros HTTP 403 no SharePoint

  • Token do Azure AD expirado ou inválido: Atualize ou reobtenha o token para requisições ao SharePoint Online.
  • Permissões do site SharePoint: Verifique se a conta tem pelo menos acesso de Leitura ao site ou item.
  • Restrições de IP ou localização: Verifique as políticas de Acesso Condicional e as políticas de localização no centro de administração do SharePoint.

ADVERTISEMENT

Por que o SharePoint Retorna um Erro 403 Forbidden

Um erro 403 do SharePoint significa que o servidor entendeu a requisição, mas se recusa a autorizá-la. Isso é diferente de um erro 401 Unauthorized, que indica que a requisição não possui credenciais de autenticação válidas. No 403, as credenciais estão presentes, mas não concedem acesso ao recurso específico.

As causas mais comuns são:

Token de Acesso do Azure AD Expirado ou Inválido

O SharePoint Online usa o Azure Active Directory para autenticação. Toda requisição HTTP deve incluir um token Bearer válido no cabeçalho Authorization. Os tokens têm um tempo de vida padrão de 60 a 90 minutos. Se seu código ou ferramenta usar um token em cache que expirou, o SharePoint retorna um 403. Além disso, se o token foi emitido para um ID de aplicativo ou público diferente, a requisição falha.

Permissões Insuficientes no SharePoint

Mesmo com um token válido, o usuário ou aplicativo deve ter permissões explícitas para o site, lista, biblioteca ou item do SharePoint. As permissões do SharePoint são separadas das funções do Azure AD. Um usuário pode ser Administrador Global no Azure AD, mas ainda receber um 403 se não for adicionado ao site do SharePoint.

Restrições de IP ou Localização

Os administradores do SharePoint podem bloquear o acesso de intervalos de IP ou localizações geográficas específicas. Isso é configurado no centro de administração do SharePoint, em Políticas de acesso, ou por meio do Acesso Condicional do Azure AD. Se sua requisição originar de um IP bloqueado, o SharePoint retorna um 403 mesmo com credenciais válidas.

Permissões de Aplicativo Ausentes ou Mal Configuradas

Ao usar autenticação somente de aplicativo (client ID e client secret ou certificado), o aplicativo deve ter as permissões de API corretas no Azure AD. Para o SharePoint, o aplicativo precisa da permissão Sites.Read.All ou Sites.ReadWrite.All. Se a permissão estiver ausente ou não tiver consentimento do administrador, a requisição retorna um 403.

Passos para Diagnosticar e Corrigir o Erro 403

Siga estes passos em ordem. Após cada passo, teste a requisição HTTP novamente.

  1. Verifique a Expiração do Token
    Se você estiver usando um script ou ferramenta personalizada, decodifique o token Bearer usando uma ferramenta como jwt.ms. Observe a declaração exp. Se o token estiver expirado, reautentique-se para obter um novo token. Para o Microsoft Graph ou API REST do SharePoint, use o fluxo de token de atualização OAuth 2.0 ou reobtenha o token interativamente.
  2. Verifique o Público do Token
    No token decodificado, verifique a declaração aud. Para o SharePoint Online, o público deve ser https://{tenant}.sharepoint.com ou https://sharepoint.com. Se o público for para um serviço diferente, a requisição será rejeitada. Reobtenha o token com a URL de recurso correta.
  3. Confirme as Permissões do Site SharePoint
    Acesse o site do SharePoint. No canto superior direito, selecione Configurações (ícone de engrenagem) e depois Permissões do site. Verifique se o usuário ou grupo que está fazendo a requisição aparece na lista. Caso contrário, adicione-o com pelo menos o nível de permissão Leitura. Para acesso somente de aplicativo, certifique-se de que o principal do aplicativo foi adicionado ao site.
  4. Revise as Permissões do Aplicativo no Azure AD
    No centro de administração do Azure AD, vá em Registros de aplicativo. Selecione seu aplicativo. Em Permissões de API, confirme se as permissões do Microsoft Graph ou SharePoint incluem Sites.Read.All ou Sites.ReadWrite.All como permissões delegadas ou de aplicativo. Se a permissão estiver listada como Não concedida, selecione Conceder consentimento do administrador.
  5. Verifique as Políticas de Acesso no Centro de Administração do SharePoint
    No centro de administração do SharePoint, vá em Políticas > Políticas de acesso. Revise quaisquer políticas baseadas em localização ou IP. Se seu IP estiver bloqueado, adicione-o à lista de permitidos ou conecte-se de uma rede permitida.
  6. Examine as Políticas de Acesso Condicional do Azure AD
    No centro de administração do Azure AD, vá em Segurança > Acesso Condicional. Verifique se alguma política tem como alvo o SharePoint Online e exige um dispositivo em conformidade, localização específica ou autenticação multifator. Se sua requisição não atender a essas condições, o SharePoint retorna um 403. Ajuste a política ou modifique sua requisição para estar em conformidade.

ADVERTISEMENT

Se o Erro 403 Persistir Após a Correção Principal

Erro 403 Apenas ao Acessar uma Lista ou Biblioteca Específica

Se sua requisição funciona para a raiz do site, mas falha para uma lista ou biblioteca específica, o item pode ter permissões exclusivas. Vá para as configurações da lista ou biblioteca. Selecione Permissões para esta biblioteca de documentos. Se as permissões forem herdadas, você verá uma mensagem no topo. Se não forem, clique em Interromper herança de permissões e depois em Conceder permissões para adicionar o usuário ou grupo.

Erro 403 ao Usar Autenticação Somente de Aplicativo com Certificado

Se você usa um certificado para autenticação somente de aplicativo, certifique-se de que o certificado é válido e não expirou. Refaça o upload do certificado no registro do aplicativo do Azure AD. Confirme também que a impressão digital do certificado corresponde ao que está armazenado no Azure AD.

Erro 403 no SharePoint PnP PowerShell

Se você usa o cmdlet Connect-PnPOnline e obtém um 403, tente usar o parâmetro -Interactive para forçar a autenticação interativa. Isso ignora tokens em cache. Para conexões somente de aplicativo, verifique se o client ID e o client secret ou a impressão digital do certificado estão corretos.

Erro 403 em Requisições do Microsoft Graph

Ao usar o Microsoft Graph para acessar o SharePoint, o endpoint é /sites/{site-id}. Certifique-se de que o ID do site está correto. Um erro de digitação no ID ou caminho do site pode causar um 403 porque a requisição resolve para um recurso diferente que o token não pode acessar.

Permissões Delegadas vs. de Aplicativo: Diferenças Principais

Item Permissões Delegadas Permissões de Aplicativo
Quem executa a ação Um usuário conectado O próprio aplicativo, sem usuário presente
Exemplo de escopo de permissão Sites.Read.All (delegada) Sites.Read.All (aplicativo)
Consentimento do administrador necessário Apenas para permissões de alto privilégio Sempre necessário
Funciona com SharePoint Online Sim Sim
Público do token https://{tenant}.sharepoint.com https://{tenant}.sharepoint.com

Agora você pode identificar a causa de um erro 403 no SharePoint verificando o token, as permissões e as políticas de acesso. Comece pela validação do token, pois é o teste mais rápido. Se o token for válido, vá para as permissões do site e as políticas de Acesso Condicional. Para aplicações em produção, implemente a lógica de renovação de token e registre o corpo completo da resposta HTTP do SharePoint, pois ele geralmente inclui uma mensagem de erro detalhada. Essa abordagem reduzirá o tempo de inatividade e melhorará a confiabilidade da sua aplicação.

ADVERTISEMENT