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
Inicio de sesión en Azure
Ejecute az login
en la CLI de Azure para iniciar sesión en Azure.
Configuración de los recursos de Azure
Empiece por crear los recursos de Azure.
Clone el siguiente repositorio de ejemplo:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Implementación de la aplicación web en Azure
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 - . |
webapp-appconfig-cs |
Creación de un almacén de Azure App Configuration
APP_CONFIG_NAME='my-app-config'
az appconfig create -g $RESOURCE_GROUP_NAME -n $APP_CONFIG_NAME --sku Free -l eastus
Importe el archivo de configuración de prueba en Azure App Configuration.
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.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
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.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
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.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
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.
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.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Conexión de la aplicación web a App Configuration
Cree una conexión entre la aplicación web y el almacén de App Configuration.
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.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity
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.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_umi" --user-identity client-id=<myIdentityClientId> subs-id=<myTestSubsId>
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.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_sp" --service-principal client-id=<mySPClientId> secret=<mySPSecret>
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.
az webapp connection create appconfig -g $RESOURCE_GROUP_NAME -n $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_cs" --secret
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.
Para más información, vaya a Aspectos internos del conector de servicio.
Prueba (opcional)
Opcionalmente, realice las pruebas siguientes:
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.