Uso de identidades administradas para acceder a App Configuration
Las identidades administradas de Azure Active Directory simplifican la administración de secretos de su aplicación de 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 Core, .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, pero el mismo concepto se aplica a cualquier otro servicio de Azure compatible con la identidad administrada, por ejemplo, Azure Kubernetes Service, la Máquina virtual de Azure y Azure Container Instances. Si la carga de trabajo está hospedada en uno de esos servicios, también puede aprovechar 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:
- Una suscripción a Azure: cree una cuenta gratuita
- Un kit de desarrollo de Java (JDK) admitido, versión 11.
- Apache Maven, versión 3.0 o posterior.
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.
Vaya al recurso App Services en Azure Portal. Si no tiene un recurso App Services existente con el que trabajar, cree uno.
Desplácese hacia abajo hasta el grupo Configuración en el panel de navegación izquierdo y seleccione Identidad.
En la pestaña Asignado por el sistema, cambie Estado a Activado y seleccione Guardar.
Responda Sí cuando se le pida que habilite la identidad administrada asignada por el sistema.

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.
En Azure Portal, seleccione Todos los recursos y elija el almacén de App Configuration que creó en el inicio rápido.
Seleccione Access Control (IAM) .
Seleccione Agregar>Agregar asignación de roles.
En la pestaña Rol, seleccione el rol Lector de los datos de App Configuration.
En la pestaña Miembros, seleccione Identidad administrada y, a continuación, seleccione Seleccionar miembros.
Seleccione la suscripción de Azure, para Identidad administrada, seleccione App Service y el nombre de la instancia de App Service.
En la pestaña Revisión y asignación, seleccione Revisión y asignación para asignar el rol.
Uso de una identidad administrada
Agregue una referencia al paquete Azure.Identity.
dotnet add package Azure.IdentityBusque 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.
Abra appsettings.jsony 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>" }Abra Program.cs y agregue una referencia a los espacios de nombres
Azure.IdentityyMicrosoft.Azure.Services.AppAuthentication:using Azure.Identity;Si desea acceder solo a los valores almacenados directamente en App Configuration, actualice el método
CreateWebHostBuilderreemplazando el métodoconfig.AddAzureAppConfiguration()(se encuentra en el paqueteMicrosoft.Azure.AppConfiguration.AspNetCore).Importante
CreateHostBuilderreemplaza aCreateWebHostBuilderen .NET Core 3.0. Seleccione la sintaxis correcta en función de su entorno.public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => webBuilder.ConfigureAppConfiguration((hostingContext, config) => { var settings = config.Build(); config.AddAzureAppConfiguration(options => options.Connect(new Uri(settings["AppConfig:Endpoint"]), new ManagedIdentityCredential())); }) .UseStartup<Startup>());Nota
En el caso de que quiera usar una identidad administrada asignada por el usuario, asegúrese de especificar el valor de clientId al crear ManagedIdentityCredential.
config.AddAzureAppConfiguration(options => { options.Connect(new Uri(settings["AppConfig:Endpoint"]), 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 identidades de Azure le exige que especifique la identidad deseada 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 se habilita la identidad administrada asignada por el sistema). Por lo tanto, tendrá que especificar el valor de clientId incluso si solo se define una identidad administrada asignada por el usuario y no hay ninguna identidad administrada asignada por el sistema.
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.
Abra
bootstrap.properties, quite la propiedad de cadena de conexión y reemplácela por el punto de conexión:
spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
Nota
En el caso de que quiera usar una identidad administrada asignada por el usuario para la propiedad spring.cloud.azure.appconfiguration.stores[0].managed-identity.client-id, asegúrese de especificar el valor de clientId al crear ManagedIdentityCredential.
Implementación de aplicación
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 .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 desea seguir usando los recursos creados 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 no eliminar 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.
- Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
- En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
- En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
- Seleccione Eliminar grupo de recursos.
- 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.