Marco de consentimiento de la plataforma de identidad de Microsoft

Las aplicaciones multiinquilino permiten inicios de sesión mediante cuentas de usuario de inquilinos de Azure AD que no sean el inquilino en el que se registró inicialmente la aplicación. El marco de consentimiento de la plataforma de identidad de Microsoft de consentimiento permite a un administrador de inquilinos o a un usuario de estos otros inquilinos dar su consentimiento (o denegar) a la solicitud de permiso que realiza una aplicación para acceder a sus recursos.

Por ejemplo, quizás una aplicación web requiera acceso de solo lectura al calendario de un usuario en Microsoft 365. Es el marco de consentimiento de la plataforma de identidad lo que permite que el aviso pida al usuario que de su consentimiento a la solicitud de permiso de la aplicación para leer su calendario. Si el usuario da su consentimiento, la aplicación puede llamar a Microsoft Graph API en su nombre y obtener sus datos del calendario.

Los siguientes pasos muestran cómo funciona la experiencia de consentimiento para el desarrollador de la aplicación y para el usuario.

  1. Suponga que tiene una aplicación de cliente web que necesita solicitar permisos concretos para tener acceso a un recurso o API. Obtendrá información sobre cómo realizar esta configuración en la sección siguiente, pero básicamente Azure Portal se utiliza para declarar solicitudes de permisos en el momento de la configuración. Al igual que otras opciones de configuración, pasan a formar parte del registro de Azure AD de la aplicación:

    Permissions to other applications

  2. Plantéese la posibilidad de que los permisos de la aplicación estén actualizados, la aplicación se ejecute 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 Azure AD. El código de autorización, a continuación, se puede utilizar para adquirir un nuevo acceso y un token de actualización.

  3. Si el usuario no está aún autenticado, el punto de conexión /authorize de Azure AD le pide que inicie sesión.

    User or administrator sign in to Azure AD

  4. Cuando el usuario inicie sesión, Azure AD determinará 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 todavía no se concedió el consentimiento, Azure AD se lo pide al usuario y muestra los permisos necesarios para que funcione. El conjunto de permisos que aparecen en el cuadro de diálogo de consentimiento coinciden con los que se seleccionaron en Permisos delegados en Azure Portal.

    Shows an example of permissions displayed in the consent dialog

  5. Después de que el usuario concede el consentimiento, se devuelve un código de autorización a la aplicación, que se canjea para adquirir un token de acceso y un token de actualización. Para más información sobre este flujo, consulte Plataforma de identidad y flujo de código de autorización de OAuth 2.0.

  6. Como administrador, también puede dar su consentimiento para permisos delegados de una aplicación en nombre de todos los usuarios del inquilino. El consentimiento del administrador evita que el cuadro de diálogo de consentimiento aparezca para cada usuario del inquilino y lo pueden llevar a cabo los usuarios con el rol de administrador en Azure Portal. Para información sobre qué roles de administrador pueden consentir los permisos delegados, consulte Permisos de roles de administrador en Azure AD.

    Para consentir los permisos delegados de una aplicación

    1. Vaya a la página Permisos de API de la aplicación.

    2. Haga clic en el botón Conceder consentimiento de administrador.

      Grant permissions for explicit admin consent

    Importante

    Actualmente es obligatorio conceder explícitamente el consentimiento con el botón Conceder permisos 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.

Pasos siguientes

Consulte Conversión de una aplicación de inquilino único en una aplicación multiinquilino