Solicitud HTTP a SharePoint devuelve 403: causa raíz y solución
🔍 WiseChecker

Solicitud HTTP a SharePoint devuelve 403: causa raíz y solución

Cuando realizas una solicitud HTTP a un sitio de SharePoint y recibes un error 403 Forbidden, la solicitud llega al servidor pero se deniega el acceso. Este error indica que el servidor de SharePoint reconoció tu solicitud pero determinó que no tienes permiso para ver el recurso. La causa raíz es casi siempre un fallo de autenticación o autorización, no un problema de red o una caída del servidor. Este artículo explica las razones más comunes de un error 403 en SharePoint, incluidos tokens caducados, permisos incorrectos y restricciones de IP. Aprenderás soluciones paso a paso para cada escenario.

Conclusiones clave: Errores HTTP 403 en SharePoint

  • Caducidad o invalidez del token de Azure AD: Renueva o vuelve a adquirir el token para solicitudes a SharePoint Online.
  • Permisos del sitio de SharePoint: Verifica que la cuenta tenga al menos acceso de lectura al sitio o elemento.
  • Restricciones basadas en dirección IP o ubicación: Revisa las políticas de acceso condicional y las políticas de ubicación del centro de administración de SharePoint.

ADVERTISEMENT

Por qué SharePoint devuelve un error 403 Forbidden

Un error 403 de SharePoint significa que el servidor entendió la solicitud pero se niega a autorizarla. Esto es diferente de un error 401 No autorizado, que significa que la solicitud carece de credenciales de autenticación válidas. Con un 403, las credenciales están presentes pero no otorgan acceso al recurso específico.

Las causas más comunes son:

Token de acceso de Azure AD caducado o inválido

SharePoint Online utiliza Azure Active Directory para la autenticación. Cada solicitud HTTP debe incluir un token Bearer válido en el encabezado Authorization. Los tokens tienen una vida útil predeterminada de 60 a 90 minutos. Si tu código o herramienta utiliza un token en caché que ha caducado, SharePoint devuelve un 403. Además, si el token se emitió para un ID de aplicación o audiencia diferente, la solicitud falla.

Permisos insuficientes de SharePoint

Incluso con un token válido, el usuario o la aplicación deben tener permisos explícitos para el sitio, lista, biblioteca o elemento de SharePoint. Los permisos de SharePoint son separados de los roles de Azure AD. Un usuario podría ser Administrador Global en Azure AD pero aún recibir un 403 si no se le agrega al sitio de SharePoint.

Restricciones de dirección IP o ubicación

Los administradores de SharePoint pueden bloquear el acceso desde rangos de IP específicos o ubicaciones geográficas. Esto se configura en el centro de administración de SharePoint bajo Políticas de acceso o mediante Acceso condicional de Azure AD. Si tu solicitud se origina desde una IP bloqueada, SharePoint devuelve un 403 incluso con credenciales válidas.

Permisos de aplicación faltantes o mal configurados

Al usar autenticación solo de aplicación (ID de cliente y secreto de cliente o certificado), la aplicación debe tener los permisos de API correctos en Azure AD. Para SharePoint, la aplicación necesita el permiso Sites.Read.All o Sites.ReadWrite.All. Si el permiso falta o no se otorga consentimiento de administrador, la solicitud devuelve un 403.

Pasos para diagnosticar y solucionar el error 403

Sigue estos pasos en orden. Después de cada paso, prueba la solicitud HTTP nuevamente.

  1. Verifica la caducidad del token
    Si estás utilizando un script o herramienta personalizada, decodifica el token Bearer usando una herramienta como jwt.ms. Observa la declaración exp. Si el token ha caducado, vuelve a autenticarte para obtener un token nuevo. Para Microsoft Graph o la API REST de SharePoint, utiliza el flujo de token de actualización OAuth 2.0 o vuelve a adquirir el token de forma interactiva.
  2. Verifica la audiencia del token
    En el token decodificado, verifica la declaración aud. Para SharePoint Online, la audiencia debe ser https://{tenant}.sharepoint.com o https://sharepoint.com. Si la audiencia es para un servicio diferente, la solicitud será rechazada. Vuelve a adquirir el token con la URL de recurso correcta.
  3. Confirma los permisos del sitio de SharePoint
    Ve al sitio de SharePoint. En la esquina superior derecha, selecciona Configuración (icono de engranaje) y luego Permisos del sitio. Verifica que el usuario o grupo que realiza la solicitud aparezca en la lista. Si no es así, agrégalo con al menos el nivel de permiso Lectura. Para acceso solo de aplicación, asegúrate de que la entidad de servicio de la aplicación se agregue al sitio.
  4. Revisa los permisos de la aplicación en Azure AD
    En el centro de administración de Azure AD, ve a Registros de aplicaciones. Selecciona tu aplicación. En Permisos de API, confirma que los permisos de Microsoft Graph o SharePoint incluyan Sites.Read.All o Sites.ReadWrite.All como permisos delegados o de aplicación. Si el permiso aparece como No otorgado, selecciona Otorgar consentimiento de administrador.
  5. Verifica las políticas de acceso del centro de administración de SharePoint
    En el centro de administración de SharePoint, ve a Políticas > Políticas de acceso. Revisa cualquier política basada en ubicación o IP. Si tu IP está bloqueada, agrégala a la lista de permitidas o conéctate desde una red permitida.
  6. Examina las políticas de acceso condicional de Azure AD
    En el centro de administración de Azure AD, ve a Seguridad > Acceso condicional. Verifica si alguna política tiene como objetivo SharePoint Online y requiere un dispositivo compatible, una ubicación específica o autenticación multifactor. Si tu solicitud no cumple estas condiciones, SharePoint devuelve un 403. Ajusta la política o modifica tu solicitud para cumplirla.

ADVERTISEMENT

Si el error 403 persiste después de la solución principal

Error 403 solo al acceder a una lista o biblioteca específica

Si tu solicitud funciona para la raíz del sitio pero falla para una lista o biblioteca específica, el elemento podría tener permisos únicos. Ve a la configuración de la lista o biblioteca. Selecciona Permisos para esta biblioteca de documentos. Si los permisos se heredan, verás un mensaje en la parte superior. Si no se heredan, haz clic en Dejar de heredar permisos y luego en Otorgar permisos para agregar al usuario o grupo.

Error 403 al usar autenticación solo de aplicación con un certificado

Si usas un certificado para la autenticación solo de aplicación, asegúrate de que el certificado sea válido y no haya caducado. Vuelve a cargar el certificado en el registro de la aplicación en Azure AD. También confirma que la huella digital del certificado coincida con la almacenada en Azure AD.

Error 403 en SharePoint PnP PowerShell

Si usas el cmdlet Connect-PnPOnline y obtienes un 403, intenta usar el parámetro -Interactive para forzar la autenticación interactiva. Esto evita los tokens en caché. Para conexiones solo de aplicación, verifica que el ID de cliente y el secreto de cliente o la huella digital del certificado sean correctos.

Error 403 en solicitudes de Microsoft Graph

Al usar Microsoft Graph para acceder a SharePoint, el punto de conexión es /sites/{site-id}. Asegúrate de que el ID del sitio sea correcto. Un error tipográfico en el ID o la ruta del sitio puede causar un 403 porque la solicitud se resuelve a un recurso diferente al que el token no puede acceder.

Permisos delegados vs. permisos de aplicación: diferencias clave

Elemento Permisos delegados Permisos de aplicación
Quién realiza la acción Un usuario con sesión iniciada La aplicación en sí misma sin usuario presente
Ejemplo de ámbito de permiso Sites.Read.All (delegado) Sites.Read.All (aplicación)
Consentimiento de administrador requerido Solo para permisos de alto privilegio Siempre requerido
Funciona con SharePoint Online
Audiencia del token https://{tenant}.sharepoint.com https://{tenant}.sharepoint.com

Ahora puedes identificar la causa de un error 403 en SharePoint verificando el token, los permisos y las políticas de acceso. Comienza con la validación del token porque es la prueba más rápida. Si el token es válido, pasa a los permisos del sitio y las políticas de acceso condicional. Para aplicaciones de producción, implementa lógica de renovación de tokens y registra el cuerpo completo de la respuesta HTTP de SharePoint, ya que a menudo incluye un mensaje de error detallado. Este enfoque reducirá el tiempo de inactividad y mejorará la confiabilidad de tu aplicación.

ADVERTISEMENT