Tutorial: Conexión de una aplicación web a Azure App Configuration con conector de servicio
Artículo
Obtenga información sobre cómo conectar una aplicación de ASP.NET Core que se ejecuta en Azure App Service, a Azure App Configuration, mediante uno de los métodos siguientes:
Identidad administrada asignada por el sistema (SMI)
Identidad administrada asignada por el usuario (UMI)
Entidad de servicio
Cadena de conexión
En este tutorial, se usa la CLI de Azure para completar las tareas siguientes:
Configuración de los recursos de Azure
Creación de una conexión entre una aplicación web y App Configuration
Compilación e implementación de la aplicación en Azure App Service
Requisitos previos
Una cuenta de Azure con una suscripción activa. El rol de acceso dentro de la suscripción debe ser "Colaborador" o "Propietario". Cree una cuenta gratuita.
Siga estos pasos para crear una instancia de App Service e implementar la aplicación de ejemplo. Asegúrese de que tiene el rol Colaborador o Propietario de la suscripción.
Cree un servicio de aplicaciones e implemente la aplicación de ejemplo que usa la identidad administrada asignada por el sistema para interactuar con App Config.
# Change directory to the SMI sample
cd serviceconnector-webapp-appconfig-dotnet\system-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-smi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Parámetro
Descripción
Ejemplo
Ubicación
Elija una ubicación cercana. Use az account list-locations --output table para enumerar ubicaciones.
eastus
Nombre del grupo de recursos
Usará este grupo de recursos para organizar todos los recursos de Azure necesarios para completar este tutorial.
service-connector-tutorial-rg
Nombre de App Service
El nombre del servicio de aplicaciones se usa como nombre del recurso en Azure y para formar el nombre de dominio completo de la aplicación en el formato del punto de conexión de servidor https://<app-service-name>.azurewebsites.com. Este nombre debe ser único en Azure y los únicos caracteres permitidos son A-Z, 0-9 y -.
webapp-appconfig-smi
Cree un servicio de aplicaciones e implemente la aplicación de ejemplo que usa la identidad administrada asignada por el usuario para interactuar con App Config.
# Change directory to the UMI sample
cd serviceconnector-webapp-appconfig-dotnet\user-assigned-managed-identity
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-umi'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Parámetro
Descripción
Ejemplo
Ubicación
Elija una ubicación cercana. Use az account list-locations --output table para enumerar ubicaciones.
eastus
Nombre del grupo de recursos
Usará este grupo de recursos para organizar todos los recursos de Azure necesarios para completar este tutorial.
service-connector-tutorial-rg
Nombre de App Service
El nombre del servicio de aplicaciones se usa como nombre del recurso en Azure y para formar el nombre de dominio completo de la aplicación en el formato del punto de conexión de servidor https://<app-service-name>.azurewebsites.com. Este nombre debe ser único en Azure y los únicos caracteres permitidos son A-Z, 0-9 y -.
webapp-appconfig-umi
Cree una identidad administrada asignada por el usuario. Guarde la salida en un bloc de notas temporal.
az identity create --resource-group $RESOURCE_GROUP_NAME -n "myIdentity"
Cree un servicio de aplicaciones e implemente la aplicación de ejemplo que usa la entidad de servicio para interactuar con App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\service-principal
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-sp'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Parámetro
Descripción
Ejemplo
Ubicación
Elija una ubicación cercana. Use az account list-locations --output table para enumerar ubicaciones.
eastus
Nombre del grupo de recursos
Usará este grupo de recursos para organizar todos los recursos de Azure necesarios para completar este tutorial.
service-connector-tutorial-rg
Nombre de App Service
El nombre del servicio de aplicaciones se usa como nombre del recurso en Azure y para formar el nombre de dominio completo de la aplicación en el formato del punto de conexión de servidor https://<app-service-name>.azurewebsites.com. Este nombre debe ser único en Azure y los únicos caracteres permitidos son A-Z, 0-9 y -.
webapp-appconfig-sp
Cree una entidad de servicio y asegúrese de reemplazar yourSubscriptionID por el identificador de suscripción real. Guarde la salida en un bloc de notas temporal.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Advertencia
Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación que se describe en este procedimiento requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.
Cree un servicio de aplicaciones e implemente la aplicación de ejemplo que usa la cadena de conexión para interactuar con App Config.
# Change directory to the service principal sample
cd serviceconnector-webapp-appconfig-dotnet\connection-string
# Create a web app
LOCATION='eastus'
RESOURCE_GROUP_NAME='service-connector-tutorial-rg'
APP_SERVICE_NAME='webapp-appconfig-cs'
az webapp up --location $LOCATION --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME
Parámetro
Descripción
Ejemplo
Ubicación
Elija una ubicación cercana. Use az account list-locations --output table para enumerar ubicaciones.
eastus
Nombre del grupo de recursos
Usará este grupo de recursos para organizar todos los recursos de Azure necesarios para completar este tutorial.
service-connector-tutorial-rg
Nombre de App Service
El nombre del servicio de aplicaciones se usa como nombre del recurso en Azure y para formar el nombre de dominio completo de la aplicación en el formato del punto de conexión de servidor https://<app-service-name>.azurewebsites.com. Este nombre debe ser único en Azure y los únicos caracteres permitidos son A-Z, 0-9 y -.
Importe el archivo de configuración de prueba en Azure App Configuration mediante una identidad administrada asignada por el sistema.
Ejecute cd en la carpeta ServiceConnectorSample
Importe el archivo de configuración de prueba ./sampleconfigs.json en el almacén de App Configuration. Si usa Cloud Shell, cargue sampleconfigs.json antes de ejecutar el comando.
Importe el archivo de configuración de prueba en Azure App Configuration mediante una identidad administrada asignada por el usuario.
Ejecute cd en la carpeta ServiceConnectorSample
Importe el archivo de configuración de prueba ./sampleconfigs.json en el almacén de App Configuration. Si usa Cloud Shell, cargue sampleconfigs.json antes de ejecutar el comando.
Importe el archivo de configuración de prueba en Azure App Configuration mediante una entidad de servicio.
Ejecute cd en la carpeta ServiceConnectorSample
Importe el archivo de configuración de prueba ./sampleconfigs.json en el almacén de App Configuration. Si usa Cloud Shell, cargue sampleconfigs.json antes de ejecutar el comando.
Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación que se describe en este procedimiento requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.
Importe el archivo de configuración de prueba en Azure App Configuration mediante una cadena de conexión.
Ejecute cd en la carpeta ServiceConnectorSample
Importe el archivo de configuración de prueba ./sampleconfigs.json en el almacén de App Configuration. Si usa Cloud Shell, cargue sampleconfigs.json antes de ejecutar el comando.
Cree una conexión entre la aplicación web y el almacén de App Configuration, mediante una autenticación de identidad administrada asignada por el sistema. Esta conexión se realiza mediante el conector de servicio.
system-identity hace referencia al tipo de autenticación de identidad administrada asignada por el sistema (SMI). El conector de servicio también admite las autenticaciones siguientes: identidad administrada asignada por el usuario (UMI), cadena de conexión (secreto) y entidad de servicio.
Cree una conexión entre la aplicación web y el almacén de App Configuration, mediante una autenticación de identidad administrada asignada por el usuario. Esta conexión se realiza mediante el conector de servicio.
user-identity hace referencia al tipo de autenticación de identidad administrada asignada por el usuario. El conector de servicio también admite las autenticaciones siguientes: identidad administrada asignada por el sistema, cadena de conexión (secreto) y entidad de servicio.
Hay dos maneras de buscar client-id:
En la CLI de Azure, escriba az identity show -n "myIdentity" -g $RESOURCE_GROUP_NAME --query 'clientId'.
En Azure Portal, abra la identidad administrada que se ha creado antes y, en Información general, obtenga el valor en Id. de cliente.
Cree una conexión entre la aplicación web y el almacén de App Configuration, mediante una entidad de servicio. Esta conexión se realiza mediante el conector de servicio.
service-principal hace referencia al tipo de autenticación de la entidad de servicio. El conector de servicio también admite las autenticaciones siguientes: identidad administrada asignada por el sistema (SMI), identidad administrada asignada por el usuario (UMI) y cadena de conexión (secreto).
Cree una conexión entre la aplicación web y el almacén de App Configuration, mediante una cadena de conexión. Esta conexión se realiza mediante el conector de servicio.
secret hace referencia al tipo de autenticación de cadena de conexión. El conector de servicio también admite las autenticaciones siguientes: identidad administrada asignada por el sistema, identidad administrada asignada por el usuario y entidad de servicio.
Validación de la conexión
Para comprobar si la conexión funciona, vaya a la aplicación web en https://<myWebAppName>.azurewebsites.net/ desde el explorador. Una vez que el sitio web esté activo, verá que muestra "Hola. Ahora la aplicación web de Azure se conecta a App Configuration mediante el conector de servicio".
Cómo funciona
Busque a continuación lo que el conector de servicio administra en segundo plano para cada tipo de autenticación.
El conector de servicio administra la configuración de conexión de forma automática:
Configure el valor AZURE_APPCONFIGURATION_ENDPOINT de la aplicación web para permitir que acceda a él y obtenga el punto de conexión de App Configuration. Acceda al código de ejemplo.
Active la autenticación administrada asignada por el sistema de la aplicación web y conceda a App Configuration un rol lector de datos para permitir que la aplicación se autentique en App Configuration mediante DefaultAzureCredential de Azure Identity. Acceda al código de ejemplo.
El conector de servicio administra la configuración de conexión de forma automática:
Configure el valor AZURE_APPCONFIGURATION_ENDPOINT, AZURE_APPCONFIGURATION_CLIENTID de la aplicación web para permitir que acceda a él y obtenga el punto de conexión de App Configuration en code;
Active la autenticación administrada asignada por el usuario de la aplicación web y conceda a App Configuration un rol de lector de datos para permitir que la aplicación se autentique en App Configuration mediante DefaultAzureCredential de Azure.Identity. Acceda al código de ejemplo.
El conector de servicio administra la configuración de conexión de forma automática:
Configure el valor AZURE_APPCONFIGURATION_ENDPOINT de la aplicación web para permitir que acceda a él y obtenga el punto de conexión de App Configuration. Acceda al código de ejemplo.
Guarde la credencial de la entidad de servicio en WebApp AppSettings AZURE_APPCONFIGURATION_CLIENTID. AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET y conceda a App Configuration el rol Lector de datos para la entidad de servicio, para que la aplicación se pueda autenticar en App Configuration en code mediante ClientSecretCredential de Azure.Identity.
El conector de servicio administra la configuración de conexión de forma automática:
Configure el valor AZURE_APPCONFIGURATION_CONNECTIONSTRING de la aplicación web para permitir que acceda a él y obtenga la cadena de conexión de App Configuration. Acceda al código de ejemplo.
Active la autenticación administrada asignada por el sistema de la aplicación web y conceda a App Configuration un rol lector de datos para permitir que la aplicación se autentique en App Configuration mediante DefaultAzureCredential de Azure Identity. Acceda al código de ejemplo.
Actualice el valor de la clave SampleApplication:Settings:Messages en el almacén de App Configuration.
az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Vaya a https://<myWebAppName>.azurewebsites.net/ para navegar a la aplicación web de Azure y actualice la página. Verá que el mensaje se ha actualizado a "hola".
Limpieza de recursos
Una vez que haya terminado, si ya no va a usar estos recursos de Azure, elimínelos ejecutando el comando az group delete. Este comando elimina el grupo de recursos y todos los recursos que contiene.
az group delete -n <myResourceGroupName> --yes
Pasos siguientes
Para más información sobre Service Connector, siga los tutoriales que se enumeran a continuación.