Compartir a través de


Añade roles de la aplicación a tu aplicación y recíbelos 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 declaraciones de roles y roles 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 declaraciones 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 declaración de roles para cada rol que se le haya concedido al usuario o al principal de servicio, que se puede usar para implementar autorización basada en declaraciones. 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 agregas una entidad de servicio a un grupo y luego asignas un rol de aplicación a ese grupo, Microsoft Entra ID 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 cuenta para los límites del manifiesto de la aplicación impuestos por Microsoft Entra ID. 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 para roles de aplicación

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 al menos 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 Entra ID>Registros de aplicaciones y, a continuación, seleccione la aplicación en la que desea definir los roles de aplicación.

  4. En la sección de administración, seleccione Roles de aplicación y luego seleccione Crear rol de aplicación.

    Panel de roles de aplicación durante el registro de una aplicación en 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.

    Panel contextual de creación de roles de aplicación durante el registro de una aplicación en Azure Portal

    Campo Descripción Ejemplo
    Nombre para mostrar Nombre visible para el rol de la aplicación que aparece en las experiencias de consentimiento del administrador y asignación de la aplicación. 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 de un registro de aplicación >Permisos de API > Agregar un permiso > Mis API > Elegir una API > Permisos de la aplicación.
    Users/Groups
    Valor Especifica el valor de la notificación de roles que la aplicación debería esperar en el token. 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 la aplicación que se muestra durante la asignación de aplicaciones administrativas y las experiencias de consentimiento. Writers can create surveys.
    ¿Quieres habilitar este rol de aplicación? Especifica si el rol de la aplicación está habilitado. 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 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 de un usuario.

Cuando el rol de la aplicación se establece en Deshabilitado, se vuelve inactivo y ya no se puede asignar. Sin embargo, las asignaciones de roles de aplicación actuales a usuarios, grupos y aplicaciones se mantendrán, y el rol de aplicación continuará incluyéndose en el/los token(es). Quite el rol de aplicación del usuario, grupo o aplicación para asegurarse de que el rol de aplicación también se quite de los tokens.

Asignación de propietario de la aplicación

Para poder asignar a las aplicaciones los roles correspondientes, debes designarte a ti mismo como el 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 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 daemon o servicios de back-end que necesitan autenticarse y hacer llamadas a las API autorizadas en su propio nombre, 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 al menos Administrador de aplicaciones en la nube.
  2. Vaya a Entra ID>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 quiere 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 se ha concedido el consentimiento para <el nombre del inquilino>.

Escenario de uso de roles de aplicación

Si va a implementar la lógica de negocio de los roles de aplicación que inicia sesión para los usuarios en su 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 permite a los usuarios iniciar sesión, las afirmaciones de roles se incluyen en el token de ID. Cuando la aplicación llama a una API, las afirmaciones de roles se incluyen en el token de acceso.

Si estás implementando lógica de negocio de roles de aplicación en un escenario en el que una aplicación llama a una API, tienes 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 junto 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 eliminan cuando se elimina el registro de la aplicación. Los grupos permanecen intactos incluso si se quita la aplicación.
Se proporcionan en el reclamo roles. Se proporciona en la declaració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 use grupos para la autorización dejará de funcionar en el siguiente entorno, ya que tanto el ID del grupo como el nombre podrían ser diferentes. 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, permitiendo aprovisionar la aplicación SaaS en múltiples clientes.

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 incluyen los roles asignados en la claim 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 al menos un 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. Navegue a Entra ID>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. Selecciona la aplicación en la que deseas asignar usuarios o grupos de seguridad a los roles.
  6. En Administrar, selecciona 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. Seleccione el botón Seleccionar para continuar.
  9. Elija Seleccionar un rol en el panel Agregar asignación. Se muestran todos los roles que definió para la aplicación.
  10. Elija un rol y seleccione el botón Seleccionar.
  11. 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.