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 Azure Active Directory grupos y notificaciones de grupo (Azure AD), como se muestra en el ejemplo de código active-directory-aspnetcore-webapp-openidconnect-v2 en GitHub. Los grupos de Azure AD 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 Azure Portal 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, Azure AD 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, Azure AD 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 Azure Portal:

La cantidad de roles que agrega está restringida por los límites de los manifiestos de la aplicación que impone Azure AD. 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 Azure Active Directory.

Interfaz de usuario de roles de aplicación

Para crear un rol de aplicación con la interfaz de usuario de Azure Portal:

  1. Inicie sesión en Azure Portal.

  2. Si tiene acceso a varios inquilinos, use el filtro Directorios + suscripciones del menú superior para cambiar al inquilino que contiene el registro de la aplicación al que desea agregar un rol de aplicación.

  3. Busque y seleccione Azure Active Directory.

  4. En Administrar, seleccione Registros de aplicaciones y, a continuación, seleccione la aplicación en la que desea definir los roles de aplicación.

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

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

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

Asignación de usuarios y grupos a roles

Una vez que haya agregado los roles de aplicación en la aplicación, puede asignar usuarios y grupos a estos roles. 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 de aplicación 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 con Azure Portal:

  1. Inicie sesión en Azure Portal.
  2. En Azure Active Directory, seleccione Aplicaciones empresariales en el menú de navegación de la izquierda.
  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 en la que desea asignar usuarios o grupos de seguridad a los roles.
  5. En Administrar, seleccione Usuarios y grupos.
  6. Seleccione Agregar miembro para abrir el panel Agregar asignación.
  7. 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.
  8. Una vez que haya seleccionado usuarios y grupos, seleccione el botón Seleccionar para continuar.
  9. Elija Seleccionar un rol en el panel Agregar asignación. Se muestran todos los roles que ha definido 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.

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.

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 Azure Portal:

  1. Inicie sesión en Azure Portal.
  2. En Azure Active Directory, seleccione Registros de aplicaciones en el menú de navegación de la izquierda.
  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. Seleccione Permisos de aplicación.
  8. Seleccione los roles que quiere asignar.
  9. 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 emitido para la aplicación, ya sea tokens de acceso cuando la aplicación es la API a la que llama una aplicación o tokens de identificador cuando la aplicación inicia sesión en un usuario.

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 identificador para llamar a la API, se incluye una notificación de roles en el token de identificador. 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 Azure AD.
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.

Pasos siguientes

Obtenga más información sobre los roles de aplicación en los recursos siguientes.