Incorporación de roles de aplicación a una aplicación y su recepción en el token
El control de acceso basado en rol (RBAC) es un mecanismo popular para exigir la autorización en las aplicaciones. RBAC permite a los administradores conceder permisos a roles en lugar de a usuarios o grupos específicos. El administrador, a continuación, puede asignar roles a diferentes usuarios y grupos para controlar quién tiene acceso a qué contenido y funcionalidad.
Mediante el uso de RBAC con notificaciones de rol y rol de aplicación, los desarrolladores pueden aplicar de forma segura la autorización en sus aplicaciones con menos esfuerzo.
Otro enfoque consiste en usar grupos de Microsoft Entra y notificaciones de grupo, como se muestra en el ejemplo de código active-directory-aspnetcore-webapp-openidconnect-v2 en GitHub. Los grupos de Microsoft Entra y los roles de aplicación no son mutuamente excluyentes; se pueden usar en conjunto para proporcionar un control de acceso aún más detallado.
Declaración de roles para una aplicación
Los roles de aplicación se definen mediante el centro de administración de Microsoft Entra durante el proceso de registro de la aplicación. Los roles de aplicación se definen en un registro de aplicación que representa un servicio, una aplicación o una API. Cuando un usuario inicia sesión en la aplicación, Microsoft Entra ID emite una notificación de roles
para cada rol al que se concedió el usuario o la entidad de servicio, que se puede usar para implementar la autorización basada en notificaciones. Los roles de aplicación se pueden asignar a un usuario o a un grupo de usuarios. Los roles de aplicación también se pueden asignar a la entidad de servicio de otra aplicación o a la entidad de servicio de una identidad administrada.
Actualmente, si agrega una entidad de servicio a un grupo y, a continuación, asigna un rol de aplicación a ese grupo, Microsoft Entra no agrega la notificación roles
a los tokens que emite.
Los roles de aplicación se declaran mediante la interfaz de usuario de roles de aplicación en el centro de administración de Microsoft Entra:
La cantidad de roles que agrega está restringida por los límites de los manifiestos de la aplicación que impone el Id. de Microsoft Entra. Para obtener información sobre estos límites, consulte la sección Límites de manifiesto de la referencia del manifiesto de aplicación de Microsoft Entra.
Interfaz de usuario de roles de aplicación
Sugerencia
Los pasos de este artículo pueden variar ligeramente en función del portal desde donde comienza.
Para crear un rol de aplicación mediante la interfaz de usuario del Centro de administración de Microsoft Entra:
Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
Si tiene acceso a varios inquilinos, use el icono Configuración en el menú superior para cambiar al inquilino que contiene el registro de la aplicación desde el menú Directorios y suscripciones.
Busque Identidad>Aplicaciones>Registro de aplicaciones y, a continuación, seleccione la aplicación en la que desea definir roles de aplicación.
Seleccione Roles de aplicación y, a continuación, seleccione Crear rol de aplicación.
En el panel Crear rol de aplicación, escriba la configuración del rol. La tabla que sigue a la imagen describe cada configuración y sus parámetros.
Campo Description Ejemplo Nombre para mostrar Nombre para mostrar para el rol de aplicación que aparece en las experiencias de asignación de la aplicación y de consentimiento del administrador. Este valor puede incluir espacios. Survey Writer
Tipos de miembros permitido Especifica si este rol de aplicación puede asignarse a usuarios, aplicaciones o ambos.
Cuando está disponible paraapplications
, los roles de aplicación aparecen como permisos de aplicación en la sección Administrar>Permisos de API > Agregar un permiso > Mis API > Elegir una API > Permisos de la aplicación de un registro de aplicación.Users/Groups
Valor Especifica el valor de la notificación de roles que debería esperar la aplicación en los tokens de acceso y autenticación. El valor debe coincidir exactamente con la cadena a la que se hace referencia en el código de la aplicación. El valor no puede contener espacios. Survey.Create
Descripción Una descripción más detallada del rol de aplicación que se muestra durante la asignación de aplicaciones de administración y las experiencias de consentimiento. Writers can create surveys.
¿Quiere habilitar este rol de aplicación? Especifica si está habilitado el rol de aplicación. Para eliminar un rol de aplicación, desactive esta casilla y aplique el cambio antes de intentar la operación de eliminación. Esta configuración controla el uso y la disponibilidad del rol de aplicación, a la vez que permite desactivarlo temporal o permanentemente sin quitarlo por completo. Activada Seleccione Aplicar para guardar los cambios.
Cuando el rol de aplicación se establece en Habilitado, los usuarios, aplicaciones o grupos asignados tienen el rol de aplicación incluido en sus tokens. Pueden ser tokens de acceso cuando su aplicación es la API a la que llama una aplicación o tokens de id. cuando su aplicación está iniciando sesión en un usuario. Si se establece en deshabilitado, se vuelve inactivo y ya no se puede asignar. Los asignados anteriores conservan el rol de aplicación incluido en sus tokens, pero no tiene ningún efecto, ya que ya no se puede asignar activamente.
Asignación de propietario de la aplicación
Para poder asignar roles de aplicación a las aplicaciones, debe asignarse como propietario de la aplicación.
- En el registro de la aplicación, en Administrar, seleccione Propietarios y Agregar propietarios.
- En la nueva ventana, busque y seleccione los propietarios que desea asignar a la aplicación. Los propietarios seleccionados aparecen en el panel derecho. Una vez hecho esto, confirme con Seleccionar y los propietarios de la aplicación aparecen en la lista del propietario.
Nota:
Asegúrese de que tanto la aplicación de API como la aplicación a la que desea agregar permisos tienen un propietario; de lo contrario, la API no aparecerá al solicitar permisos de API.
Asignación de roles de aplicación a aplicaciones
Después de agregar roles de aplicación en la aplicación, puede asignar un rol de aplicación a una aplicación cliente mediante el Centro de administración de Microsoft Entra o mediante programación mediante Microsoft Graph. La asignación de un rol de aplicación a una aplicación no debe confundirse con asignar roles a los usuarios.
Cuando asigna roles de aplicación a una aplicación, crea permisos de aplicación. Los permisos de aplicación se suelen usar en aplicaciones de demonio o servicios de back-end que necesitan autenticarse y hacer llamadas API autorizadas como ellos mismos, sin la interacción de un usuario.
Para asignar roles de aplicación a una aplicación mediante el Centro de administración de Microsoft Entra:
- Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
- Vaya a Identidad>Aplicaciones>Registros de aplicaciones y, a continuación, seleccione Todas las aplicaciones.
- Seleccione Todas las aplicaciones para ver una lista de todas las aplicaciones. Si la aplicación no aparece en la lista, use los filtros de la parte superior de la lista Todas las aplicaciones para restringir la lista o desplácese hacia abajo en la lista para localizar la aplicación.
- Seleccione la aplicación a la que quiera asignar un rol de aplicación.
- Seleccione Permisos de API>Agregar un permiso.
- Seleccione la pestaña Mis API y, luego, la aplicación para la que definió los roles de aplicación.
- En Permiso, seleccione los roles que quiere asignar.
- Seleccione el botón Agregar permisos para terminar de agregar los roles.
Los roles que acaba de agregar debe aparecer en el panel Permisos de API del registro de la aplicación.
Concesión de consentimiento del administrador
Dado que se trata de permisos de aplicación y no de permisos delegados, un administrador debe dar su consentimiento para usar los roles de aplicación asignados a la aplicación.
- En el panel Permisos de API del registro de la aplicación, seleccione Conceder consentimiento del administrador para <el nombre del inquilino>.
- Seleccione Sí cuando se le pida conceder consentimiento para los permisos solicitados.
La columna Estado debe reflejar que hay consentimiento Concedido para <el nombre del inquilino>.
Escenario de uso de roles de aplicación
Si va a implementar la lógica de negocios del rol de aplicación que inicia la sesión de los usuarios en el escenario de aplicación, defina primero los roles de aplicación en Registros de aplicaciones. A continuación, un administrador los asigna a usuarios y grupos en el panel de aplicaciones empresariales. En función del escenario, estos roles de aplicación asignados se incluyen en diferentes tokens emitidos para la aplicación. Por ejemplo, para una aplicación que inicia sesión en los usuarios, las notificaciones de roles se incluyen en el token de identificador. Cuando la aplicación llama a una API, las notificaciones de roles se incluyen en el token de acceso.
Si va a implementar la lógica de negocios del rol de aplicación en un escenario de API de llamada a aplicaciones, tiene dos registros de aplicaciones. Un registro de aplicación es para la aplicación y otro para la API. En este caso, defina los roles de aplicación y asígnelos al usuario o grupo en el registro de aplicaciones de la API. Cuando el usuario se autentica con la aplicación y solicita un token de acceso para llamar a la API, se incluye una notificación de roles en el token. El siguiente paso consiste en agregar código a la API web para comprobar esos roles cuando se llama a la API.
Para obtener información sobre cómo agregar autorización a la API web, consulte API web protegida: Comprobación de ámbitos y roles de aplicación.
Roles de aplicación frente a grupos
Si bien puedes usar roles de aplicación o grupos para la autorización, las diferencias clave entre ambos pueden influir en la opción que decidas usar para el escenario en cuestión.
Roles de aplicación | Grupos |
---|---|
Son específicos de una aplicación y se definen en el registro de la aplicación. Se mueven con la aplicación. | No son específicos de una aplicación, sino de un inquilino de Microsoft Entra. |
Los roles de aplicación se quitan cuando se quita el registro de la aplicación. | Los grupos permanecen intactos incluso si se quita la aplicación. |
Se proporcionan en la notificación roles . |
Se proporcionan en la notificación groups . |
Los desarrolladores pueden usar los roles de aplicación para controlar si un usuario puede iniciar sesión en una aplicación o si una aplicación puede obtener un token de acceso para una API web. Para extender este control de seguridad a los grupos, los desarrolladores y administradores también pueden asignar grupos de seguridad a los roles de aplicación.
Los desarrolladores prefieren usar roles de aplicación cuando quieran describir y controlar los parámetros de autorización en su propia aplicación. Por ejemplo, una aplicación que usa grupos para la autorización se interrumpirá en el inquilino siguiente, ya que tanto el identificador como el nombre del grupo podrían ser distintos. Una aplicación que usa roles de aplicación sigue siendo segura. De hecho, las aplicaciones SaaS suelen asignar grupos a roles de aplicación por las mismas razones, ya que permite que la aplicación SaaS se aprovisione en varios inquilinos.
Asignación de usuarios y grupos a roles de Microsoft Entra
Una vez que agregue roles de aplicación en la aplicación, puede asignar usuarios y grupos a roles de Microsoft Entra. La asignación de usuarios y grupos a los roles se puede realizar mediante la interfaz de usuario del portal o mediante programación con Microsoft Graph. Cuando los usuarios asignados a los distintos roles inician sesión en la aplicación, sus tokens tienen los roles asignados en la notificación roles
.
Para asignar usuarios y grupos a roles mediante el Centro de administración de Microsoft Entra:
- Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
- Si tiene acceso a varios inquilinos, use el icono Configuración en el menú superior para cambiar al inquilino que contiene el registro de la aplicación desde el menú Directorios y suscripciones.
- Vaya a Aplicaciones de identidad>Aplicaciones>Empresariales.
- Seleccione Todas las aplicaciones para ver una lista de todas las aplicaciones. Si la aplicación no aparece en la lista, use los filtros de la parte superior de la lista Todas las aplicaciones para restringir la lista o desplácese hacia abajo en la lista para localizar la aplicación.
- Selecciona la aplicación en la que deseas asignar usuarios o grupos de seguridad a los roles.
- En Administrar, selecciona Usuarios y grupos.
- Seleccione Agregar miembro para abrir el panel Agregar asignación.
- Seleccione el selector Usuarios y grupos del panel Agregar asignación. Se muestra una lista de usuarios y grupos de seguridad. Puede buscar un determinado usuario o grupo y seleccionar varios usuarios y grupos que aparezcan en la lista. Seleccione el botón Seleccionar para continuar.
- Elija Seleccionar un rol en el panel Agregar asignación. Se muestran todos los roles que definió para la aplicación.
- Elija un rol y seleccione el botón Seleccionar.
- Seleccione el botón Asignar para finalizar las asignaciones de usuarios y grupos a la aplicación.
Confirme que los usuarios y grupos que agregó aparecen en la lista Usuarios y grupos.
Pasos siguientes
Obtenga más información sobre los roles de aplicación en los recursos siguientes.
- Ejemplos de código en GitHub
- Documentación de referencia
- Vídeo: Implementación de la autorización en las aplicaciones con la plataforma de identidad de Microsoft (1:01:15)