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, el Id. de Microsoft Entra emite una notificación roles por cada rol que se ha concedido al usuario o la entidad de servicio. Se puede usar para implementar una 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:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.

  2. 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.

  3. Busque Identidad>Aplicaciones>Registro de aplicaciones y, a continuación, seleccione la aplicación en la que desea definir roles de aplicación.

  4. Seleccione Roles de aplicación y, a continuación, seleccione Crear rol de aplicación.

    An app registration's app roles pane in the Azure portal

  5. 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.

    An app registration's app roles create context pane in the Azure portal

    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 para applications, 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
  6. Seleccione Aplicar para guardar los cambios.

Cuando el rol de aplicación está activado, cualquier usuario, aplicación o grupo al que se le asigne lo tendrá 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. Las personas asignadas anteriores seguirán teniendo 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

Si aún no lo ha hecho, deberá asignarse como propietario de la aplicación.

  1. En el registro de la aplicación, en Administrar, seleccione Propietarios y Agregar propietarios.
  2. 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, confirme con Seleccionar. Los propietarios de la aplicación aparecerán ahora 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

Una vez que haya agregado roles de aplicación en la aplicación, puede asignar un rol de aplicación a una aplicación cliente a través de Azure Portal o mediante programación con Microsoft Graph. Esto no se debe confundir con la asignación de 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:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
  2. Vaya a Identidad>Aplicaciones>Registros de aplicaciones y, a continuación, seleccione Todas las aplicaciones.
  3. 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.
  4. Seleccione la aplicación a la que quiera asignar un rol de aplicación.
  5. Seleccione Permisos de API>Agregar un permiso.
  6. Seleccione la pestaña Mis API y, luego, la aplicación para la que definió los roles de aplicación.
  7. En Permiso, seleccione los roles que desea asignar.
  8. 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.

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.

  1. En el panel Permisos de API del registro de la aplicación, seleccione Conceder consentimiento del administrador para <el nombre del inquilino>.
  2. Seleccione 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. Estos roles de aplicación asignados se incluyen con cualquier token que se emita para la aplicación.

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 puede usar roles de aplicación o grupos para la autorización, las diferencias clave entre ambos pueden influir en la opción que decida 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 los roles de aplicación cuando quieren describir y controlar los parámetros de autorización en sus propias aplicaciones. 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, la asignación de grupos a roles de aplicación es popular entre las aplicaciones SaaS por las mismas razones, ya que permite aprovisionar la aplicación SaaS en varios inquilinos.

Asignación de usuarios y grupos a roles de Microsoft Entra

Una vez que haya agregado los roles de aplicación en la aplicación, puede asignar usuarios y grupos a los 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 inicien sesión en la aplicación, los tokens tendrán sus roles asignados en la notificación roles.

Para asignar usuarios y grupos a roles mediante el Centro de administración de Microsoft Entra:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
  2. 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.
  3. Vaya a Aplicaciones de identidad>Aplicaciones>Empresariales.
  4. 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.
  5. Seleccione la aplicación en la que desea asignar usuarios o grupos de seguridad a los roles.
  6. En Administrar, seleccione Usuarios y grupos.
  7. Seleccione Agregar miembro para abrir el panel Agregar asignación.
  8. 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.
  9. Una vez que haya seleccionado usuarios y grupos, seleccione el botón Seleccionar para continuar.
  10. Elija Seleccionar un rol en el panel Agregar asignación. Se muestran todos los roles que ha definido para la aplicación.
  11. Elija un rol y seleccione el botón Seleccionar.
  12. 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.