Configuración de una aplicación OAuth de OpenID Connect desde la galería de aplicaciones de Microsoft Entra
Proceso de adición de una aplicación OpenID desde la galería
Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
Vaya a Aplicaciones de identidad>Aplicaciones>Empresariales.
Seleccione Nueva aplicación en la parte superior del cuadro de diálogo.
En el cuadro de búsqueda, escriba el nombre de la aplicación. Seleccione la aplicación que desee en el panel de resultados y regístrese en la aplicación.
En la página Nombre de aplicación, haga clic en el botón Registrarse.
Nota:
Aquí, el administrador de inquilinos debe seleccionar el botón de registro y proporcionar el consentimiento a la aplicación. La aplicación se agrega entonces al inquilino externo, donde puede configurar lo que desee. No es necesario agregar la aplicación de forma explícita.
Se le redirigirá a la página de inicio de sesión de la aplicación o a la página de Microsoft Entra ID para que proporcione las credenciales de inicio de sesión.
Una vez autenticado correctamente, acepte el consentimiento de la página de consentimiento. A continuación, aparece la página de inicio de la aplicación.
Nota:
Puede agregar solo una instancia de la aplicación. Si ya ha agregado una y ha intentado proporcionar el consentimiento de nuevo, no se agregará otra vez en el inquilino. Por tanto, como es lógico, solo puede usar una instancia de la aplicación en el inquilino.
Consulte el siguiente vídeo sobre cómo agregar una aplicación OpenID desde la galería.
Flujo de autenticación con OpenID Connect
El flujo de inicio de sesión más básico contiene los siguientes pasos:
Aplicación multiinquilino
El uso de una aplicación multiinquilino se destina a varias organizaciones, no solo a una. Suele tratarse de aplicaciones de software como servicio (SaaS) escritas por un proveedor de software independiente (ISV).
Las aplicaciones multiinquilino se deben aprovisionar en cada directorio en el que se van a utilizar. Requieren el consentimiento del usuario o administrador para su registro. El proceso de consentimiento se inicia cuando una aplicación se ha registrado en el directorio y se le proporciona acceso a Graph API o quizás a otra API web. Cuando un usuario o un administrador de otra organización se registra para usar la aplicación, un cuadro de diálogo indica los permisos requeridos por la aplicación.
El usuario o administrador puede entonces dar su consentimiento a la aplicación. El consentimiento da acceso a la aplicación a los datos indicados y, por último, registra la aplicación en el directorio.
Nota:
Si está poniendo la aplicación a disposición de usuarios de varios directorios, necesitará un mecanismo para determinar en qué inquilino se encuentran. Para buscar un usuario, una aplicación de un único inquilino solo tiene que buscar en su propio directorio. Una aplicación multiinquilino debe identificar un usuario específico en todos los directorios de Microsoft Entra ID.
Para realizar esta tarea, Microsoft Entra ID proporciona un punto de conexión de autenticación común donde cualquier aplicación multiinquilino puede dirigir solicitudes de inicio de sesión, en lugar de un punto de conexión específico del inquilino. Este punto de conexión es https://login.microsoftonline.com/common
para todos los directorios de Microsoft Entra ID. Un punto de conexión específico del inquilino podría ser https://login.microsoftonline.com/contoso.onmicrosoft.com
.
Es importante considerar el punto de conexión común a la hora de desarrollar su aplicación. Requerirá la lógica necesaria para administrar varios inquilinos durante el inicio de sesión, el cierre de sesión y la validación de tokens.
De forma predeterminada, Microsoft Entra ID promueve aplicaciones multiinquilino. Es fácil acceder a ellas entre organizaciones, y son sencillas de usar después de aceptar el consentimiento.
Marco de consentimiento
Puede usar el marco de consentimiento de Microsoft Entra para desarrollar aplicaciones web multiinquilino y aplicaciones de cliente nativo. Estas aplicaciones permiten el inicio de sesión por cuentas de usuario de un inquilino de Microsoft Entra diferente al que ha registrado la aplicación. Es posible que también necesiten acceder a las API web, como:
- La Microsoft Graph API, para acceder a Microsoft Entra ID, Intune y servicios de Microsoft 365.
- Otras API de servicios de Microsoft.
- Sus propias API web.
El marco se basa en que un usuario o un administrador da consentimiento a una aplicación que solicita el registro en su directorio. El registro podría implicar el acceso a datos del directorio. Después de dar su consentimiento, la aplicación cliente puede llamar a Microsoft Graph API en nombre del usuario y usar la información según sea necesario.
La API de Microsoft Graph proporciona acceso a datos de Microsoft 365, como:
- Calendarios y mensajes de Exchange.
- Sitios y listas de SharePoint.
- Documentos de OneDrive.
- Blocs de notas de OneNote.
- Tareas de Planner.
- Libros de Excel.
Graph API también proporciona acceso a usuarios y grupos desde Microsoft Entra ID y otros objetos de datos desde más servicios en la nube de Microsoft.
Los siguientes pasos muestran cómo funciona la experiencia de consentimiento para el desarrollador de la aplicación y para el usuario:
Suponga que tiene una aplicación de cliente web que necesita solicitar permisos concretos para tener acceso a un recurso o API. Azure Portal se utiliza para declarar las solicitudes de permiso en el momento de la configuración. Al igual que otras opciones de configuración, pasan a formar parte del registro de Microsoft Entra de la aplicación. Para la ruta de acceso de solicitud de permiso, siga los pasos que se indican a continuación:
a. Haga clic en Registros de aplicaciones en el lado izquierdo del menú y abra la aplicación escribiendo el nombre de la aplicación en el cuadro de búsqueda.
b. Haga clic en Ver permisos de API.
c. Haga clic en Agregar un permiso.
d. Haga clic en Microsoft Graph.
e. Seleccione las opciones necesarias de Permisos delegados y Permisos de la aplicación.
Imagine que se han actualizado los permisos de la aplicación. La aplicación se está ejecutando y un usuario está a punto de usarla por primera vez. En primer lugar, la aplicación debe obtener un código de autorización del punto de conexión /authorize de Microsoft Entra ID. El código de autorización, a continuación, se puede utilizar para adquirir un nuevo acceso y un token de actualización.
Si el usuario no está aún autenticado, el punto de conexión /authorize de Microsoft Entra ID solicita el inicio de sesión.
Cuando el usuario inicia sesión, Microsoft Entra ID determina si se debe mostrar una página de consentimiento al usuario. Esta determinación se basa en que el usuario (o el administrador de la organización) ya concediese el consentimiento de la aplicación.
Si no se ha concedido el consentimiento, Microsoft Entra se lo pide al usuario y muestra los permisos necesarios para que funcione. Los permisos que se muestran en el cuadro de diálogo de consentimiento coinciden con los seleccionados en los permisos delegados.
Un usuario normal puede dar su consentimiento a algunos permisos. Otros permisos requieren el consentimiento de un administrador del inquilino.
Diferencia entre consentimiento del administrador y consentimiento del usuario
Como administrador, también puede dar su consentimiento para permisos delegados de una aplicación en nombre de todos los usuarios del inquilino. Con el consentimiento del administrador se evita que el cuadro de diálogo de consentimiento aparezca para cada usuario del inquilino. Los usuarios que tienen la función de administrador pueden dar su consentimiento. Seleccione Administrar>Permisos de API. En Conceder consentimiento, seleccione Conceder consentimiento del administrador para.
Nota:
Ahora es obligatorio conceder explícitamente el consentimiento con el botón Conceder consentimiento de administrador para las aplicaciones de página única (SPA) que usan MSAL.js. En caso contrario, se produce un error en la aplicación cuando se solicita el token de acceso.
Los permisos de solo aplicación siempre requieren el consentimiento de un administrador del inquilino. Si la aplicación solicita un permiso de solo aplicación y un usuario intenta iniciar sesión en la aplicación, aparece un mensaje de error. El mensaje indica que el usuario no puede dar su consentimiento.
Si la aplicación usa permisos que requieren el consentimiento del administrador, necesita tener un gesto, como un botón o un vínculo donde el administrador pueda iniciar la acción. La solicitud que la aplicación envía para esta acción es la solicitud de autorización habitual de OAuth2 o OpenID Connect. Esta solicitud incluye el parámetro de cadena de consulta prompt=admin_consent.
Una vez que el administrador ha dado su consentimiento y se crea la entidad de servicio en el inquilino del cliente, las posteriores solicitudes de inicio de sesión no necesitan el parámetro prompt=admin_consent. Dado que el administrador ha decido que los permisos solicitados son aceptables, en adelante no se solicitará consentimiento a ningún otro usuario.
Un administrador de inquilinos puede deshabilitar la posibilidad de que los usuarios normales den su consentimiento a las aplicaciones. Si esta capacidad está deshabilitada, para que la aplicación se use en el inquilino siempre se solicitará el consentimiento del administrador. Si quiere probar la aplicación con el consentimiento de usuario final deshabilitado, puede encontrar el modificador de configuración en Azure Portal. Específicamente, en la sección Configuración de usuario en Aplicaciones empresariales.
El parámetro prompt=admin_consent también se puede utilizar en las aplicaciones que solicitan permisos que no requieren el consentimiento del administrador. Por ejemplo, una aplicación que requiere una experiencia en la que el administrador del inquilino se "registra" una vez y no se solicita a otros usuarios que den su consentimiento a partir de entonces.
Imagine que una aplicación requiere el consentimiento del administrador y un administrador inicia sesión sin que se envíe el parámetro prompt=admin_consent. Cuando el administrador dé correctamente su consentimiento a la aplicación, solo se aplicará para su cuenta de usuario. Los usuarios normales seguirán sin poder iniciar sesión ni dar su consentimiento a la aplicación. Esta característica resulta útil si desea brindar al administrador de inquilinos la posibilidad de explorar su aplicación antes de permitir el acceso a otros usuarios.