Compartir vía


Identidades administradas en Azure Container Apps

Una identidad administrada de Microsoft Entra ID permite que la aplicación contenedora acceda a otros recursos protegidos de Microsoft Entra. Para obtener más información sobre las identidades administradas en Microsoft Entra ID, consulte Identidades administradas para recursos de Azure.

La aplicación de contenedor puede tener dos tipos de identidades:

  • Una identidad asignada por el sistema está asociada a la aplicación de contenedor y esta se elimina si a su vez se elimina la aplicación. Una aplicación solo puede tener una identidad asignada por el sistema.
  • Una identidad asignada por el usuario es un recurso Azure independiente que puede asignar a la aplicación contenedora y a otros recursos. Una aplicación de contenedor puede tener varias identidades asignadas por el usuario. Las identidades asignadas por el usuario existen hasta que las elimine.

¿Por qué usar una identidad administrada?

Puede usar una identidad administrada en una aplicación de contenedor en ejecución para autenticarse en cualquier servicio que admita la autenticación de Microsoft Entra.

Con identidades administradas:

  • La aplicación se conecta a los recursos con la identidad administrada. No es necesario administrar las credenciales en la Container App.
  • Puede usar el control de acceso basado en roles para conceder permisos específicos a una identidad administrada.
  • Las identidades asignadas por el sistema se crean y administran automáticamente. Se eliminan cuando se elimina la Container App.
  • Puede agregar y eliminar identidades asignadas por el usuario y asignarlas a varios recursos. Son independientes del ciclo de vida de la aplicación de contenedor.
  • Puede usar la identidad administrada para autenticarse con una instancia privada de Azure Container Registry sin un nombre de usuario y una contraseña para extraer contenedores de la aplicación contenedora.
  • Puede usar una identidad administrada de para crear conexiones para aplicaciones habilitadas para Dapr a través de componentes de Dapr

Casos de uso comunes

Las identidades asignadas por el sistema son las mejores para las cargas de trabajo que:

  • están contenidas en un solo recurso.
  • necesitan identidades independientes.

Las identidades asignadas por el usuario son ideales para cargas de trabajo que:

  • se ejecutan en varios recursos y pueden compartir una única identidad.
  • necesitan autorización previa para un recurso seguro.

Limitaciones

  • No se admiten identidades administradas en reglas de escalado. Debe incluir cadenas de conexión o claves en secretRef de la regla de escalado.
  • Los contenedores de inicialización no pueden acceder a identidades administradas.

Configuración de identidades administradas

Puede configurar las identidades administradas mediante:

  • Azure Portal
  • La CLI de Azure
  • la plantilla de Azure Resource Manager (ARM)

Cuando se agrega, elimina o modifica una identidad administrada en una Container App en ejecución, la aplicación no se reinicia automáticamente y no se crea una nueva revisión.

Nota:

Al agregar una identidad administrada a una aplicación de contenedor implementada antes del 11 de abril de 2022, debe crear una nueva revisión.

Adición de una identidad asignada por el sistema

  1. Vaya a la aplicación contenedora en Azure Portal.

  2. En el grupo Configuración, seleccione Identidad.

  3. En la pestaña Asignado por el sistema, cambie Estado a Activado.

  4. Seleccione Guardar.

Captura de pantalla de las identidades asignadas al sistema.

Adición de una identidad asignada por el usuario

La configuración de una Container App con una identidad asignada por el usuario requiere que primero cree la identidad; a continuación, debe agregar su identificador de recurso a la configuración de la Container App. Puede crear identidades asignadas por el usuario a través de Azure Portal o la CLI de Azure. Para obtener información sobre cómo crear y administrar identidades asignadas por el usuario, consulte Administración de identidades administradas asignadas por el usuario.

En primer lugar, tendrá que crear un recurso de identidad asignada por el usuario.

  1. Cree un recurso de identidad administrada asignada por el usuario siguiendo los pasos descritos en Administración de identidades administradas asignadas por el usuario.

  2. Vaya a la aplicación contenedora en Azure Portal.

  3. En el grupo Configuración, seleccione Identidad.

  4. Dentro de la pestaña Usuario asignado, seleccione Agregar.

  5. Busque y seleccione la identidad que creó anteriormente.

  6. Seleccione Agregar.

Captura de pantalla de identidades asignadas al usuario.

Configuración de un recurso de destino

En el caso de algunos recursos, debe configurar las asignaciones de roles para que la identidad administrada de la aplicación le conceda acceso. De lo contrario, las llamadas de la aplicación a los servicios, como Azure Key Vault y Azure SQL Database, se rechazarán incluso cuando usa un token válido para esa identidad. Para obtener más información acerca del control de acceso basado en roles (Azure RBAC), consulte ¿Qué es RBAC? Para obtener más información sobre los recursos que admiten tokens de Microsoft Entra, consulte Servicios de Azure que admiten autenticación de Microsoft Entra.

Importante

Los servicios de back-end para identidades administradas mantienen una memoria caché por URI de recurso durante unas veinticuatro horas. Si actualiza la directiva de acceso de un recurso de destino determinado y recupera inmediatamente un token para ese recurso, es posible que siga obteniendo un token en caché con permisos obsoletos hasta la expiración del token. No se admite forzar una actualización de tokens.

Conectar a los servicios de Azure en el código de la aplicación

Con identidades administradas, una aplicación puede obtener tokens para acceder a los recursos de Azure que usan Microsoft Entra ID, como Azure SQL Database, Azure Key Vault y Azure Storage. Estos tokens representan a la aplicación que accede al recurso, y no a un usuario específico de la aplicación.

Container Apps proporciona un punto de conexión de REST accesible internamente para recuperar tokens. El punto de conexión REST está disponible desde dentro de la aplicación con una solicitud HTTP GET estándar, que puede enviar con un cliente HTTP genérico en su idioma preferido. Para .NET, JavaScript, Java y Python, la biblioteca cliente de identidad de Azure proporciona una abstracción sobre este punto de conexión de REST. Puede conectarse a otros servicios de Azure agregando un objeto de credencial al cliente específico del servicio.

Nota:

Cuando se utiliza la biblioteca de clientes de Azure Identity, es necesario especificar explícitamente el id de cliente de identidad administrada asignada por el usuario.

Nota:

Al conectarse a orígenes de datos de Azure SQL con Entity Framework Core, considere la posibilidad de usar Microsoft.Data.SqlClient, que proporciona cadenas de conexión especiales para la conectividad de identidad administrada.

Para las aplicaciones de .NET, la manera más sencilla de trabajar con una identidad administrada es mediante la biblioteca cliente de identidad de Azure para .NET. Consulta los recursos siguientes para obtener más información:

Los ejemplos vinculados usan DefaultAzureCredential. Este objeto es eficaz en la mayoría de los escenarios, ya que el mismo patrón funciona en Azure (con identidades administradas) y en el equipo local (sin identidades administradas).

Visualización de identidades administradas

Puede mostrar las identidades administradas asignadas por el sistema y asignadas por el usuario mediante el siguiente comando de la CLI de Azure. La salida muestra el tipo de identidad administrada, los identificadores de inquilino y los identificadores de entidad de seguridad de todas las identidades administradas asignadas a la aplicación contenedora.

az containerapp identity show --name <APP_NAME> --resource-group <GROUP_NAME>

Eliminación de una entidad administrada

Cuando se quita una identidad asignada por el sistema, se elimina de Microsoft Entra ID. Las identidades asignadas por el sistema también se eliminan automáticamente de Microsoft Entra ID cuando se elimina el propio recurso de la aplicación contenedora. La eliminación de las identidades administradas asignadas por el usuario de su aplicación de contenedor no las elimina de Microsoft Entra ID.

  1. En el panel de navegación izquierdo de la página de la aplicación, desplácese hacia abajo hasta el grupo Configuración.

  2. Seleccione Identidad. A continuación, siga los pasos según el tipo de identidad:

    • Identidad asignada por el sistema: en la pestaña Asignado por el sistema, cambie Estado a Desactivado. Seleccione Guardar.
    • Identidad asignada por el usuario: seleccione la pestaña Asignado por el usuario, active la casilla de la identidad y seleccione Quitar. Seleccione para confirmar la acción.

Pasos siguientes