Solucionar errores de autorización de Microsoft Graph
Los errores de autorización se pueden producir como resultado de varios problemas diferentes, la mayoría de los cuales generan un error 403 (con algunas excepciones). Por ejemplo, lo siguiente puede dar lugar a errores de autenticación:
- Flujos de adquisición de token de acceso incorrectos
- Ámbitos de permiso mal configurado
- Ausencia de consentimiento
- Ausencia de permisos
Pasos para resolver errores comunes
Para resolver errores comunes de autorización, pruebe los pasos descritos para el error que más se aproxime al error que está recibiendo. Es posible que se aplique más de un error. También puede mirar las respuestas que ya están disponibles en Microsoft Q&A para errores 401 y errores 403. Si no encuentra una solución al problema, haga una nueva pregunta en Microsoft Q&A y etiquete con microsoft-graph*.
Error 401 No autorizado: ¿es válido el token?
Asegúrese de que la aplicación presenta un token de acceso válido a Microsoft Graph como parte de la solicitud. Este error suele significar que el token de acceso puede faltar en el encabezado de solicitud de autenticación HTTP o que el token no es válido o ha expirado. Le recomendamos encarecidamente que use la biblioteca de autenticación de Microsoft (MSAL) para la adquisición de tokens de acceso. Además, este error puede producirse si intenta usar un token de acceso delegado concedido a una cuenta de Microsoft personal para tener acceso a una API que solo admite cuentas profesionales o educativas (cuentas de organización).
Error 403 Prohibido: ¿ha elegido el conjunto adecuado de permisos?
Compruebe que ha solicitado el conjunto de permisos correcto en función de las API de Microsoft Graph a las que llama la aplicación. Los permisos con privilegios mínimos que se recomiendan se proporcionan en todos los artículos de referencia del método de Microsoft Graph API. Además, un usuario o un administrador deben conceder esos permisos a la aplicación. La concesión de permisos normalmente se produce a través de una página de consentimiento o mediante la concesión de permisos mediante la hoja de registro de aplicaciones del Centro de administración de Microsoft Entra.
Error 403 Prohibido: ¿ha adquirido su aplicación un token para coincidir con los permisos seleccionados?
Asegúrese de que el tipo de permisos solicitado o concedido coincida con el tipo de token de acceso que la aplicación adquiere. Es posible que solicite y conceda permisos de aplicación, pero que use tokens de flujo de código interactivo delegados en lugar de tokens de flujo de credenciales de cliente, o bien que solicite y conceda permisos delegados, pero que utilice tokens de flujo de credenciales de cliente en lugar de los tokens de flujo de código delegado.
- Obtener acceso en nombre de usuarios y permisos delegados
- Azure AD v 2.0: Flujo de código de autenticación de OAuth 2.0
- Obtener acceso sin usuario (servicio de demonio) y permisos de aplicación
- Azure AD v 2.0: Flujo de credenciales de cliente de OAuth 2.0
Error 403 Prohibido:: restableciendo contraseña
Actualmente, no hay permisos de servicio a servicio de demonio de permisos de aplicación que permitan restablecer las contraseñas de usuario. Las API solo se admiten con el código delegado interactivo en los flujos con una sesión de administrador iniciada.
Error 403 Prohibido: ¿tiene acceso el usuario y está autorizado?
En el caso de los flujos de código delegado, Microsoft Graph evalúa si se permite la solicitud en función de los permisos concedidos a la aplicación y los permisos que tiene el usuario que ha iniciado sesión. Por lo general, este error indica que el usuario no tiene privilegios suficientes para realizar la solicitud o el usuario no tiene licencia para tener acceso a los datos. Solo los usuarios con los permisos o licencias necesarios pueden realizar la solicitud correctamente.
Error 403 Prohibido: ¿seleccionó la API de recurso adecuada?
Los servicios de API como Microsoft Graph comprueban que la notificación aud (audiencia) en el token de acceso recibido coincida con el valor que espera para sí mismo y, si no es así, se produce un error 403 Forbidden
. Un error común que provoca este error es cuando se intenta usar un token adquirido para las API de Azure AD Graph, las API de Outlook o las API de SharePoint o OneDrive para llamar a Microsoft Graph (o viceversa). Asegúrese de que el recurso (o ámbito) para el que la aplicación está adquiriendo un token coincida con la API a la que llama la aplicación.
400 Solicitud incorrecta o 403 Prohibido: ¿cumple el usuario las directivas de acceso condicional (CA) de su organización?
En función de las directivas de acceso condicional de una organización, un usuario que tenga acceso a los recursos de Microsoft Graph a través de la aplicación podría tener dificultades para obtener información adicional que no se encuentre en el token de acceso que ha adquirido originalmente la aplicación. En este caso, la aplicación recibe un error 400 con interaction_required durante la adquisición del token de acceso o un error 403 con insufficient_claims cuando se llama a Microsoft Graph. En ambos casos, la respuesta del error contiene información adicional que puede mostrarse al punto de conexión de autorización para pedir al usuario información adicional (por ejemplo, autenticación multifactor o inscripción de dispositivo).
- Manejar solicitudes de acceso condicional con MSAL
- Guía para desarrolladores para el acceso condicional de Microsoft Entra
403 Prohibido: El acceso a OData está deshabilitado
Muchas API de Microsoft Graph acceden a Exchange Online. Estas API están sujetas a las directivas de aplicación de EWS de Exchange Online. Las aplicaciones pueden recibir 403 Forbidden
errores con el siguiente cuerpo de respuesta.
{
"error": {
"code": "ErrorAccessDenied",
"message": "Access to OData is disabled."
}
}
Esto puede deberse a las directivas de acceso de EWS de la organización. Un administrador de Exchange puede comprobarlo mediante el módulo de PowerShell de Exchange Online.
Para determinar si se aplica una directiva de toda la organización:
Get-OrganizationConfig | fl EwsApplicationAccessPolicy,EWS*List
Para determinar si se aplica una directiva específica del usuario:
Get-CASMailbox <user-principal-name> | fl EwsApplicationAccessPolicy,EWS*List
Si se establece EwsApplicationAccessPolicy , se aplica una directiva.
- Si
EwsApplicationAccessPolicy
se establece enEnforceAllowList
, el valor de laUser-Agent
aplicación debe agregarse al valor EwsAllowList . - Si
EwsApplicationAccessPolicy
se establece enEnforceBlockList
, el valor de laUser-Agent
aplicación debe quitarse del valor de EwsBlockList .
Nota:
Los cambios en las directivas de aplicación de EWS tardan tiempo en surtir efecto. Es posible que la aplicación siga recibiendo 403 Forbidden
errores durante algún tiempo después de realizar un cambio.
403 Error prohibido: ¿Está la aplicación intentando acceder a un grupo que contiene otros grupos con permisos diferentes?
Revise los grupos que pertenecen al grupo al que no puede acceder la aplicación. Si hay grupos anidados en los que el grupo primario, un grupo que posee otros grupos como miembros, tiene permisos suficientes a los que puede acceder la aplicación, pero el grupo secundario, un grupo que es miembro de otro grupo, no lo hace, provoca un error en el acceso tanto al grupo secundario como a los grupos primarios.
En algunos casos, una aplicación puede no leer grupos o entidades de servicio debido a permisos insuficientes. Este error puede producirse incluso cuando la aplicación anteriormente pudo leer estos grupos que contienen grupos anidados con permisos insuficientes o entidades de servicio debido a los avances en la protección de la seguridad que se producen en Microsoft.