Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporcionan instrucciones sobre cómo solucionar problemas de consentimiento en microsoft Entra ID. Se aplica a las autenticaciones basadas en OpenID Connect y OAuth2.
Nota:
Las aplicaciones basadas en SAML pueden presentar errores similares, pero requieren soluciones diferentes, normalmente debido a discrepancias de configuración dentro de la solicitud SAML en el proveedor de servicios SAML de terceros o el identificador de Microsoft Entra.
Síntomas
Cuando una aplicación intenta iniciar sesión o obtener un token de acceso para un recurso que no ha sido consentido por un usuario o administrador, recibirá un mensaje de error similar a uno de los ejemplos siguientes:
-
Se necesita la aprobación del administrador
-
AADSTS65001: el usuario o administrador no ha dado su consentimiento para usar la aplicación con el identificador "<App-ID>" denominado "<Nombre de la aplicación>". Envíe una solicitud de autorización interactiva para este usuario y recurso.
-
AADSTS650056: aplicación mal configurada. Esto puede deberse a uno de los siguientes motivos: el cliente no ha enumerado ningún permiso para "AAD Graph" en los permisos solicitados en el registro de la aplicación del cliente. O bien el administrador no ha dado su consentimiento en el inquilino. Compruebe también el identificador de la aplicación en la solicitud para asegurarse de que coincide con el identificador de la aplicación cliente configurada. Póngase en contacto con su administrador para corregir la configuración o dar su consentimiento en nombre del inquilino.
-
AADSTS90094: un administrador de <TenantDisplayName> ha establecido una directiva que impide concederle <el nombre de la aplicación> los permisos que solicita. Póngase en contacto con un administrador de <TenantDisplayName>, que puede conceder permisos a esta aplicación en su nombre.
-
AADSTS90008: el usuario o administrador no ha dado su consentimiento para usar la aplicación con el identificador "<App-ID>". Esto se ha producido porque la aplicación está mal configurada: debe requerir acceso a Windows Azure Active Directory especificando al menos el permiso "Iniciar sesión y leer perfil de usuario".
-
AADSTS900941: Se requiere consentimiento del administrador. La aplicación se considera de riesgo. (AdminConsentRequiredDueToRiskyApp) Esta aplicación puede ser arriesgada. Si confía en la aplicación, pida al administrador que le conceda acceso.
-
AADSTS900981: Se recibió una solicitud de consentimiento del administrador para una aplicación de riesgo. (AdminConsentRequestRiskyAppWarning) Esta aplicación puede ser arriesgada. Continúe solo si confía en su origen.
Hay muchas razones por las que puede recibir un mensaje que indica que se requiere la aprobación del administrador o el consentimiento del administrador. Tenga en cuenta los siguientes escenarios de alto nivel:
- Falta el permiso User.Read .
- El consentimiento del usuario está deshabilitado en el nivel de inquilino.
- La asignación de usuarios está habilitada para la aplicación.
- Una entidad de servicio no existe en el inquilino de la aplicación cliente.
- Una entidad de servicio no existe en el inquilino del recurso.
- Dirección URL de consentimiento que especifica
prompt=admin_consent
oprompt=consent
se solicita. - Los ámbitos a los que no se ha dado su consentimiento se solicitan en una solicitud de inicio de sesión.
- El ámbito o el permiso requieren el consentimiento del administrador.
- El consentimiento del usuario está bloqueado para aplicaciones de riesgo.
En las secciones siguientes se proporciona una guía de solución de problemas para buscar las causas principales de los problemas de consentimiento. Si desea resolver problemas directamente, vaya a la sección Realizar consentimiento del administrador.
Antes de solucionar problemas
Asegúrese de que la aplicación tiene permiso para el inicio de sesión de usuario, como el permiso User.Read . Además, asegúrese de que este permiso se haya dado su consentimiento.
Por ejemplo, si posee el registro de la aplicación o cualquier aplicación que requiera inicio de sesión de usuario, debe tener al menos el permiso delegado User.Read o Openid de Microsoft Graph agregados a los permisos de api de registro de aplicaciones.
Pasos de solución de problemas
Paso 1: Obtener la solicitud de inicio de sesión enviada a Microsoft Entra ID
Para determinar por qué aparece el mensaje de consentimiento, obtenga la solicitud de inicio de sesión y examine los parámetros enviados a Microsoft Entra ID. Cuando aparezca el mensaje de consentimiento, puede obtener la solicitud de inicio de sesión mediante uno de los métodos siguientes:
- Si usa un explorador, vea la barra de direcciones.
- Si no usa un explorador o todavía no puede ver la barra de direcciones en el explorador, use una herramienta de captura HTTP como Fiddler para obtener la solicitud.
Una solicitud de inicio de sesión debe tener un aspecto similar al siguiente:
Punto de conexión de OAuth2 V1:
https://<Aad-Instance>/<Tenant-ID>/oauth2/authorize?client_id=<App-ID>&response_type=code&redirect_uri=<Redirect-URI>&resource=<App-URI-ID>&scope=<Scope>&prompt=<Prompt>
Punto de conexión de OAuth2 V2:
https://<Aad-Instance>/<Tenant-ID>/oauth2/v2.0/authorize?client_id=<App-ID>&response_type=code&redirect_uri=<Redirect-URI>& scope=<Scope>&prompt=<Prompt>
En la tabla siguiente se proporciona un ejemplo de los parámetros usados en una solicitud de inicio de sesión, a los que se hace referencia en los pasos de solución de problemas siguientes:
Propiedad | Parte de la solicitud de inicio de sesión | Valor |
---|---|---|
Aad-Instance | <Aad-Instance> |
login.microsoftonline.com |
Id. de inquilino |
<Tenant-ID> parte de la solicitud de inicio de sesión |
common |
Id. de aplicación |
<App-ID> parte de la solicitud de inicio de sesión |
1f92960d-1442-4cd2-8c76-d13c5dcb30bf |
Ámbito |
<Scope> parte de la solicitud de inicio de sesión |
Openid+User.Read+Directory.Read.All |
App-URI-ID | Punto de conexión V1: <App-URI-ID> parte del punto de conexión de solicitudde inicio de sesión V2: para recursos distintos de Microsoft Graph, esta será la parte anterior al nombre del ámbito. Por ejemplo, para https://analysis.windows.net/powerbi/api/App.Read.All , App.Read.All es el nombre del ámbito, por lo que App-URI-ID es https://analysis.windows.net/powerbi/api . |
https://graph.microsoft.com |
Prompt |
<Prompt> parte de la solicitud de inicio de sesión |
Paso 2: Comprobar si permite a los usuarios dar su consentimiento
Para comprobar si se permite el consentimiento del usuario en su organización, siga estos pasos:
Inicie sesión en el portal de Azure.
Vaya a Microsoft Entra ID y seleccione Aplicaciones empresariales>Consentimiento y permisos.
Revise la configuración Consentimiento del usuario para las aplicaciones :
Si se selecciona Permitir el consentimiento del usuario para las aplicaciones , todos los usuarios pueden dar su consentimiento a los permisos que no requieren el consentimiento del administrador. En este caso, vaya al paso siguiente.
Si no se selecciona No permitir el consentimiento del usuario, los usuarios siempre recibirán el mensaje "Necesita aprobación de administrador". En este caso, un administrador debe realizar el consentimiento del administrador.
Nota:
Si un administrador cree que ya han consentido esos permisos, lo más probable es que no todos los permisos necesarios enumerados en la solicitud de inicio de sesión hayan sido consentidos o la aplicación incorrecta se usó en función de
<App-ID>
.
Paso 3: Comprobar si la aplicación existe
Para comprobar si la aplicación existe en el inquilino, siga estos pasos:
- Inicie sesión en el portal de Azure.
- Cambie al inquilino correcto en función de
<Tenant-ID>
. - Vaya a Aplicaciones empresariales.
- Establezca Tipo de aplicación en Todas las aplicaciones y busque .
<App-ID>
- Si no se encuentra la aplicación, este es el motivo por el que experimenta problemas de consentimiento. En este caso, realice el consentimiento del administrador. Si se encuentra la aplicación, vaya al paso siguiente.
Paso 4:Comprobar si se requiere la asignación de usuarios
En el panel Aplicaciones empresariales , busque y seleccione la aplicación. En la sección Administrar , seleccione Propiedades para abrir el panel Propiedades y, a continuación, revise la configuración Asignación necesaria .
Si se requiere la asignación de usuarios, un administrador debe dar su consentimiento a esta aplicación. Para ello, vaya a la sección Realizar consentimiento del administrador.
Nota:
Dar su consentimiento a una aplicación para todos los usuarios de una organización no permite que todos los usuarios accedan a la aplicación. Debe seguir las reglas de asignación de usuarios. Solo los usuarios asignados a la aplicación pueden acceder a ella. Si no desea realizar el consentimiento del administrador, la única solución alternativa es desactivar la asignación necesaria, pedir consentimiento a los usuarios cuando accedan a la aplicación y, a continuación, volver a activar la asignación necesaria .
Si no se requiere la asignación de usuarios, vaya al paso siguiente.
Paso 5: Comparación de los permisos solicitados y concedidos para la aplicación
Para comprobar si los ámbitos (también denominados permisos) de la solicitud de inicio de sesión aparecen en la sección Permisos de la aplicación, siga estos pasos:
Si la aplicación se encuentra en el Paso 3: Comprobar si la aplicación existe, selecciónela.
Vaya a Permisos.
Compare lo que aparece en el panel Permisos y lo que aparece como
<Scope>
en la solicitud de inicio de sesión. Los permisos enumerados en el panel Permisos son los que se han consentido.Nota:
Preste atención al tipo de permiso. Los permisos delegados son para cuando los usuarios inician sesión y los permisos de aplicación son para cuando la entidad de servicio se usa para autenticarse a través del flujo de credenciales de cliente.
Por lo general, los ámbitos de OpenID Connect no aparecen en las aplicaciones empresariales. No se preocupe si no se muestran los siguientes ámbitos:
-
openid
: inicio de sesión de usuarios -
email
: ver la dirección de correo electrónico de los usuarios -
profile
: ver el perfil básico de los usuarios -
offline_access
: se mantiene el acceso a los datos a los que se le ha concedido acceso.
-
Si
<Scope>
en la solicitud de inicio de sesión está en blanco o contiene menos de lo que aparece en el panel Permisos , vaya al paso siguiente. Si otros ámbitos de<Scope>
no están en el panel Permisos , vaya a la sección Realizar consentimiento del administrador. Los permisos que faltan deben ser consentidos.
Paso 6: Comprobar si el recurso existe en el inquilino
Para comprobar si existe un recurso, pruebe una solicitud similar https://<Aad-Instance>/<Tenant-ID>/oauth2/authorize?response_type=code&client_id=<App-ID>&resource=<App-URI-ID>
a .
Es posible que encuentre uno de los siguientes comportamientos o errores:
Puede iniciar sesión (este es el comportamiento que espera). En este caso, vaya al paso siguiente. En la mayoría de los casos, si ve el
code
parámetro en la barra de direcciones, significa que el proceso de autenticación se realizó correctamente.Error AADSTS650052: la aplicación necesita acceso a un servicio al que la organización no se ha suscrito ni habilitado. Póngase en contacto con el administrador de TI para revisar la configuración de las suscripciones de servicio.
Este error significa que el recurso no existe en la organización. Para resolver este problema, use esta dirección URL de consentimiento:
https://login.microsoftonline.com/<Tenant-ID>/oauth2/authorize?response_type=code&client_id=<App-URI-ID>&prompt=admin_consent
Error AADSTS650057: recurso no válido. El cliente ha solicitado el acceso a un recurso, que no se muestra en los permisos solicitados del registro de la aplicación del cliente. Id. de aplicación cliente: <App-ID>(<App-Display-Name>). Valor de recurso de la solicitud: "<App-URI-ID>". Id. de aplicación de recursos:< Resource-App-ID>. Lista de recursos válidos del registro de aplicaciones: 00000002-0000-0000-c000-0000000000000
Para que una aplicación cliente inicie sesión y obtenga un token de acceso para un recurso, el recurso debe tener asignados los permisos de API necesarios que requiere la aplicación cliente, como el acceso a Azure Key Vault.
Nota:
Solo el propietario de la aplicación puede realizar esta operación.
Error AADSTS500011: no se encontró la entidad de seguridad de recursos denominada "<App-URI-ID>" en el inquilino denominado "<Tenant-ID>". Esto puede pasar si el administrador del inquilino no es el que ha instalado el administrador del inquilino o no ha recibido el consentimiento de ningún usuario del inquilino. Es posible que haya enviado la solicitud de autenticación al inquilino incorrecto.
Este error significa que el especificado
<App-URI-ID>
no es válido o solo está disponible como una aplicación de un solo inquilino. De lo contrario, significa que las organizaciones externas no pueden acceder a este recurso o no existen.Para resolver este problema, debe trabajar con el propietario de la aplicación para comprobar que y
<App-URI-ID>
<Tenant-ID>
son correctos.<App-URI-ID>
Si es propiedad de otro<Tenant-ID>
, el registro de la aplicación para<App-URI-ID>
debe configurarse como una aplicación multiinquilino. De lo contrario,<Tenant-ID>
debe ser el mismo inquilino para el que se encuentra el registro<App-URI-ID>
de la aplicación.
Paso 7: Comprobar si se pasa el parámetro prompt
A veces, iniciar sesión en la aplicación requiere pasar el prompt
parámetro de consent
o admin_consent
. Una vez que la aplicación obtiene el consentimiento, asegúrese de que el prompt
parámetro no está especificado. De lo contrario, los usuarios siempre pueden recibir un error de consentimiento.
La solicitud de inicio de sesión podría tener este aspecto:
https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/authorize?client_id=1f92960d-1442-4cd2-8c76-d13c5dcb30bf&response_type=code&redirect_uri=https://www.contoso.com&scope=openid+profile+User.Read+Directory.Read.All&prompt=consent
Por lo tanto, para resolver problemas de consentimiento, quite el parámetro de la prompt
siguiente manera:
https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/authorize?client_id=1f92960d-1442-4cd2-8c76-d13c5dcb30bf&response_type=code&redirect_uri=https://www.contoso.com&scope=openid+profile+User.Read+Directory.Read.All
Realización del consentimiento del administrador
Para resolver problemas de consentimiento, siga estos pasos para realizar el consentimiento del administrador:
Haga que un administrador (un usuario con el rol Administrador global, Administrador de empresa o Administrador de aplicaciones) acceda a la aplicación.
Si aparece la pantalla de consentimiento, revise los permisos solicitados. Para aprobar los permisos solicitados, active la casilla Consentimiento en nombre de la organización .
Nota:
Si un administrador no está seguro de lo que permiten los permisos, el administrador debe trabajar con el proveedor de la aplicación para comprender los permisos y su uso. Es posible que el soporte técnico de Microsoft no sepa qué hacen estos permisos o por qué se necesitan.
Si el administrador no obtiene la pantalla de consentimiento, tome la dirección de inicio de sesión, agregue
&prompt=consent
al final y, a continuación, use esta solicitud para realizar el consentimiento del administrador.A continuación, tiene un ejemplo:
https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/authorize?client_id=1f92960d-1442-4cd2-8c76-d13c5dcb30bf&response_type=code&redirect_uri=https://www.contoso.com&scope=openid+profile&tresource=https://graph.microsoft.com&prompt=consent
Si los permisos solicitados no aparecen en el registro de la aplicación, use el punto de conexión de Plataforma de identidad de Microsoft (V2) para forzar el consentimiento del administrador. El punto de conexión V2 requiere que cada ámbito de permiso se pase en el parámetro de la
scope
siguiente manera:https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/v2.0/authorize?client_id=1f92960d-1442-4cd2-8c76-d13c5dcb30bf&response_type=code&redirect_uri=https://www.contoso.com&scope=openid+profile+User.Read+Directory.Read.All&prompt=consent
Nota:
- El propietario de la aplicación debe proporcionar los ámbitos de permiso usados por la aplicación.
- El consentimiento de los permisos de aplicación siempre requerirá el consentimiento del administrador de un administrador global o de la empresa. Los permisos de aplicación se deben agregar dentro del registro de la aplicación en el inquilino propietario de la aplicación.
- Los administradores de aplicaciones también pueden dar su consentimiento para delegar permisos que requieren consentimiento del administrador.
- Al usar la dirección URL de consentimiento del administrador, los permisos ya deben configurarse con el registro de la aplicación. De lo contrario, el propietario de la aplicación debe tener la aplicación configurada correctamente con el identificador de Microsoft Entra. Una dirección URL de consentimiento del administrador es similar a
https://login.microsoftonline.com/<Tenant-ID>/adminconsent?client_id=<App-ID>
.
Más información
Consentir
En la mayoría de los casos, ciertos permisos que requieren consentimiento no se han dado su consentimiento. Por lo tanto, se solicita el consentimiento. Para comprender el consentimiento, consulte las páginas siguientes:
- Información general sobre los permisos y el consentimiento en la Plataforma de identidad de Microsoft
- protocolos de consentimiento del administrador de Plataforma de identidad de Microsoft
- Experiencias de consentimiento de aplicaciones de Microsoft Entra
Registros de aplicaciones y aplicaciones empresariales
En Microsoft Entra, hay un modelo de aplicación que consta de objetos de aplicación (también denominados "registros de aplicaciones") y objetos de entidad de servicio (también denominados "aplicaciones empresariales"). Cómo funciona su relación en función de los permisos necesarios se establece en el objeto de aplicación. Para más información, consulte Objetos de aplicación y de entidad de servicio en Microsoft Entra ID.
Simplemente agregar permisos a un registro de aplicación no da su consentimiento a los permisos. Para dar su consentimiento a los permisos, debe asignar permisos a la entidad de servicio.
Permisos delegados y permisos de aplicación
Hay dos tipos de permisos en Microsoft Entra ID: permisos delegados y permisos de aplicación. Asegúrese de aplicar la configuración de permisos correcta en el registro de la aplicación y dé su consentimiento a ese permiso.
Para obtener más información sobre los permisos en Microsoft Entra ID, consulte las páginas siguientes:
- Información general sobre los permisos y el consentimiento en la Plataforma de identidad de Microsoft
- Descripción de la diferencia entre los permisos delegados y las aplicaciones de los flujos de autenticación de OAuth2
Recopilación de registros de actividad de Microsoft Entra
Puede usar los registros de actividad de Microsoft Entra para obtener más detalles. Para ello, siga los pasos que se indican a continuación:
- Inicie sesión en Azure Portal mediante una cuenta que tenga permiso para leer los registros de auditoría, como un administrador global o lector de seguridad.
- Vaya a Microsoft Entra ID.
- Seleccione Registros de auditoría en la sección Supervisión .
- Establezca el filtro de la manera siguiente:
- Categoría: ApplicationManagement
- Estado: Error
- Actividad: consentimiento para la aplicación
- Busque y seleccione la aplicación que no puede dar su consentimiento.
- Revise EL MOTIVO DEL ESTADO para obtener más detalles.
En determinados escenarios, es necesario realizar el consentimiento del administrador, aunque es posible que permita a los usuarios dar su consentimiento y el permiso normalmente no requiere que un administrador dé su consentimiento. Por ejemplo, cuando el motivo de estado muestra "Microsoft.Online.Security.UserConsentBlockedForRiskyAppsException". Para obtener más información, consulte Error inesperado al realizar el consentimiento en una aplicación y Solicitud de consentimiento inesperado al iniciar sesión en una aplicación.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.