Uso de identidades administradas para acceder a App Configuration

Las identidades administradas de Microsoft Entra simplifican la administración de secretos de su aplicación en la nube. Con una identidad administrada, el código puede usar la entidad de servicio creada para el servicio de Azure donde se ejecuta. Usar una identidad administrada en lugar de una credencial diferente que se almacenan en Azure Key Vault o una cadena de conexión local.

Azure App Configuration y sus bibliotecas cliente .NET, .NET Framework y Java Spring incluyen compatibilidad integrada con la identidad administrada. Aunque su uso no es necesario, la identidad administrada elimina la necesidad de un token de acceso que contenga los secretos. El código solo puede acceder al almacén de App Configuration mediante el punto de conexión de servicio. Puede insertar esta dirección URL en el código directamente sin exponer ningún secreto.

En este artículo se muestra cómo puede aprovechar la identidad administrada para acceder a App Configuration. Se basa en la aplicación web que se introdujo en los inicios rápidos. Antes de continuar, primero cree una aplicación ASP.NET Core con Azure App Configuration.

En este artículo se muestra cómo puede aprovechar la identidad administrada para acceder a App Configuration. Se basa en la aplicación web que se introdujo en los inicios rápidos. Antes de continuar, complete primero Creación de una aplicación de Java Spring con Azure App Configuration.

Importante

Una identidad administrada no se puede usar para autenticar aplicaciones que se ejecutan localmente. La aplicación debe implementarse en un servicio de Azure que admita identidades administradas. En este artículo se usa Azure App Service como ejemplo. Sin embargo, el mismo concepto se aplica a cualquier otro servicio de Azure que admita la identidad administrada. Por ejemplo, Azure Kubernetes Service, máquina virtual de Azure y Azure Container Instances. Si la carga de trabajo está hospedada en uno de esos servicios, también puede sacar provecho de la compatibilidad con la identidad administrada del servicio.

Para realizar los pasos de este tutorial, puede usar cualquier editor de código. Visual Studio Code es una excelente opción disponible en las plataformas Windows, macOS y Linux.

En este artículo aprenderá a:

  • Conceder a una identidad administrada acceso a App Configuration.
  • Configurar la aplicación para usar una identidad administrada al conectarse a App Configuration.

Requisitos previos

Para realizar este tutorial, necesitará lo siguiente:

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Agregar una identidad administrada

Para configurar una identidad administrada en el portal, primero crea una aplicación y luego habilita la característica.

  1. Vaya al recurso App Services en Azure Portal. Si no tiene un recurso App Services existente con el que trabajar, puede crear uno.

  2. Desplácese hacia abajo hasta el grupo Configuración en el panel de navegación izquierdo y seleccione Identidad.

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

  4. Cuando se le pide confirmación, responda para activar la identidad administrada asignada por el sistema.

    Screenshot of how to add a managed identity in App Service.

Conceder acceso a App Configuration

En los pasos siguientes se describe cómo asignar el rol de lector de datos de App Configuration a App Service. Para acceder a los pasos detallados, vea Asignación de roles de Azure mediante Azure Portal.

  1. En Azure Portal, seleccione el almacén de App Configuration.

  2. Seleccione Access Control (IAM) .

  3. Seleccione Agregar>Agregar asignación de roles.

    Screenshot that shows the Access control (IAM) page with Add role assignment menu open.

    Si no tiene permiso para asignar roles, la opción Agregar asignación de roles se deshabilitará. Para más información, consulte Roles integrados en Azure.

  4. En la pestaña Rol, seleccione el rol Lector de los datos de App Configuration y, a continuación, seleccione Siguiente.

    Screenshot that shows the Add role assignment page with Role tab selected.

  5. En la pestaña Miembros, seleccione Identidad administrada y, a continuación, seleccione Seleccionar miembros.

    Screenshot that shows the Add role assignment page with Members tab selected.

  6. Seleccione la suscripción de Azure, para Identidad administrada, seleccione App Service y el nombre de App Service.

    Screenshot that shows the select managed identities page.

  7. En la pestaña Revisión y asignación, seleccione Revisión y asignación para asignar el rol.

Uso de una identidad administrada

  1. Agregue una referencia al paquete Azure.Identity:

    dotnet add package Azure.Identity
    
  2. Busque el punto de conexión en el almacén de App Configuration. Esta dirección URL aparece en la pestaña Claves de acceso para el almacén en la Azure Portal.

  3. Abra el archivo appsettings.json y agregue el siguiente script. Reemplace <service_endpoint>, incluidos los corchetes, por la dirección URL del almacén de App Configuration.

    "AppConfig": {
        "Endpoint": "<service_endpoint>"
    }
    
  4. Abra el archivo Program.cs y agregue una referencia a los espacios de nombres Azure.Identity y Microsoft.Azure.Services.AppAuthentication:

    using Azure.Identity;
    
  5. Para acceder a los valores almacenados en App Configuration, actualice la configuración Builder para usar el método AddAzureAppConfiguration().

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Configuration.AddAzureAppConfiguration(options =>
        options.Connect(
            new Uri(builder.Configuration["AppConfig:Endpoint"]),
            new ManagedIdentityCredential()));
    

    Nota:

    En el caso de que quiera usar una identidad administrada asignada por el usuario, asegúrese de que especifica clientId cuando cree ManagedIdentityCredential.

    new ManagedIdentityCredential("<your_clientId>")
    

    Como se explica en las preguntas más frecuentes sobre identidades administradas para recursos de Azure, hay una manera predeterminada de resolver qué identidad administrada se usa. En este caso, la biblioteca de Azure Identity le exige que especifique la identidad necesaria para evitar posibles problemas de tiempo de ejecución en el futuro. Por ejemplo, si se agrega una nueva identidad administrada asignada por el usuario o si la identidad administrada asignada por el sistema está habilitada. Por lo tanto, deberá especificar clientId incluso si solo se define una identidad administrada asignada por el usuario y no hay ninguna identidad administrada asignada por el sistema.

  1. Busque el punto de conexión en el almacén de App Configuration. Esta dirección URL aparece en la pestaña Información general del almacén en Azure Portal.

  2. Abra bootstrap.properties, quite la propiedad de la cadena de conexión y reemplácela con el punto de conexión para la identidad asignada por el sistema:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>

Para la identidad asignada por el usuario:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
spring.cloud.azure.credential.managed-identity-enabled= true
spring.cloud.azure.credential.client-id= <client_id>

Nota:

Para obtener más información, consulte Autenticación de Azure de Spring Cloud.

Implementación de aplicación

Debe implementar la aplicación en un servicio de Azure cuando use identidades administradas. Las identidades administradas no se pueden usar para la autenticación de aplicaciones que se ejecutan localmente. Para implementar la aplicación de .NET Core que creó en el inicio rápido Creación de una aplicación de ASP.NET Core con App Configuration y modificó para usar identidades administradas, siga las instrucciones que se indican en Publicación de la aplicación web.

El uso de identidades administradas requiere que implemente la aplicación en un servicio de Azure. Las identidades administradas no se pueden usar para la autenticación de aplicaciones que se ejecutan localmente. Para implementar la aplicación de Spring que creó en el inicio rápido Creación de una aplicación de Java Spring con Azure App Configuration y modificó para usar identidades administradas, siga las instrucciones que se indican en Publicación de la aplicación web.

Además de App Service, muchos otros servicios de Azure admiten identidades administradas. Para más información, vea Servicios que admiten identidades administradas para recursos de Azure.

Limpieza de recursos

Si no quiere seguir usando los recursos que se han creado en este artículo, elimine el grupo de recursos que creó aquí para evitar cargos.

Importante

La eliminación de un grupo de recursos es irreversible. El grupo de recursos y todos los recursos que contiene se eliminan permanentemente. Asegúrese de que no elimina por accidente el grupo de recursos o los recursos equivocados. Si creó los recursos para este artículo en un grupo de recursos que contenga los recursos que desee conservar, elimine cada recurso de forma individual desde su panel respectivo, en lugar de eliminar el grupo de recursos.

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
  2. En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
  3. En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
  4. Seleccione Eliminar grupo de recursos.
  5. Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y seleccione Eliminar.

Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.

Pasos siguientes

En este tutorial, ha agregado una identidad administrada de Azure para optimizar el acceso a App Configuration y mejorar la administración de credenciales de su aplicación. Para más información sobre App Configuration, continúe con los ejemplos de la CLI de Azure.