Saiba como conectar um aplicativo ASP.NET Core em execução no Serviço de Aplicativo do Azure à Configuração do Aplicativo do Azure, usando um dos seguintes métodos:
- Identidade gerenciada atribuída pelo sistema (SMI)
- Identidade gerenciada atribuída pelo usuário (UMI)
- Principal de Serviço
- Cadeia de ligação
Neste tutorial, use a CLI do Azure para concluir as seguintes tarefas:
- Configurar recursos do Azure
- Criar uma conexão entre um aplicativo Web e a Configuração do Aplicativo
- Criar e implantar seu aplicativo no Serviço de Aplicativo do Azure
Prerequisites
Iniciar sessão no Azure
Execute az login na CLI do Azure para entrar no Azure.
Configurar recursos do Azure
Comece criando seus recursos do Azure.
Clone o seguinte exemplo de repositório:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Implante o aplicativo Web no Azure.
Siga estas etapas para criar um Serviço de Aplicativo e implantar o aplicativo de exemplo. Certifica-te de que tens o papel de Contribuidor ou Proprietário por subscrição.
Crie um serviço de aplicativo e implante o aplicativo de exemplo que usa a identidade gerenciada atribuída ao sistema para interagir com a Configuração do aplicativo.
# 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
| Parameter |
Description |
Example |
| Location |
Escolha um local perto de si. Use az account list-locations --output table para listar locais. |
eastus |
| Nome do grupo de recursos |
Use este grupo de recursos para organizar todos os recursos do Azure necessários para concluir este tutorial. |
service-connector-tutorial-rg |
| Nome do serviço de aplicativo |
O nome do serviço de aplicativo é usado como o nome do recurso no Azure e para formar o nome de domínio totalmente qualificado para seu aplicativo, na forma do ponto de extremidade do servidor. Os caracteres permitidos são A-Z,0-9 e .- A Azure adiciona uma sequência de caracteres aleatórios para tornar o ponto de extremidade do servidor único em toda a plataforma Azure. |
webapp-appconfig-smi |
Crie um serviço de aplicativo e implante o aplicativo de exemplo que usa a identidade gerenciada atribuída pelo usuário para interagir com a Configuração do Aplicativo.
# 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
| Parameter |
Description |
Example |
| Location |
Escolha um local perto de si. Use az account list-locations --output table para listar locais. |
eastus |
| Nome do grupo de recursos |
Use este grupo de recursos para organizar todos os recursos do Azure necessários para concluir este tutorial. |
service-connector-tutorial-rg |
| Nome do serviço de aplicativo |
O nome do serviço de aplicativo é usado como o nome do recurso no Azure e para formar o nome de domínio totalmente qualificado para seu aplicativo, na forma do ponto de extremidade do servidor. Os caracteres permitidos são A-Z,0-9 e .- A Azure adiciona uma sequência de caracteres aleatórios para tornar o ponto de extremidade do servidor único em toda a plataforma Azure. |
webapp-appconfig-umi |
Crie uma identidade gerida atribuída pelo utilizador. Salve a saída em um bloco de notas temporário.
az identity create --resource-group $RESOURCE_GROUP_NAME --name "myIdentity"
Crie um serviço de aplicação e implemente a aplicação de exemplo que usa um principal de serviço para interagir com a Configuração de Aplicações.
# 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
| Parameter |
Description |
Example |
| Location |
Escolha um local perto de si. Use az account list-locations --output table para listar locais. |
eastus |
| Nome do grupo de recursos |
Use este grupo de recursos para organizar todos os recursos do Azure necessários para concluir este tutorial. |
service-connector-tutorial-rg |
| Nome do serviço de aplicativo |
O nome do serviço de aplicativo é usado como o nome do recurso no Azure e para formar o nome de domínio totalmente qualificado para seu aplicativo, na forma do ponto de extremidade do servidor. Os caracteres permitidos são A-Z,0-9 e .- A Azure adiciona uma sequência de caracteres aleatórios para tornar o ponto de extremidade do servidor único em toda a plataforma Azure. |
webapp-appconfig-sp |
Crie um principal de serviço. Certifique-se de substituir o yourSubscriptionID pelo seu ID de assinatura real. Salve a saída em um bloco de notas temporário.
az ad sp create-for-rbac --name myServicePrincipal --role Contributor --scopes /subscriptions/{yourSubscriptionID}/resourceGroups/$RESOURCE_GROUP_NAME
Warning
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo. Acarreta riscos que não estão presentes noutros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.
Crie um serviço de aplicativo e implante o aplicativo de exemplo que usa a cadeia de conexão para interagir com a Configuração do aplicativo.
# 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
| Parameter |
Description |
Example |
| Location |
Escolha um local perto de si. Use az account list-locations --output table para listar locais. |
eastus |
| Nome do grupo de recursos |
Use este grupo de recursos para organizar todos os recursos do Azure necessários para concluir este tutorial. |
service-connector-tutorial-rg |
| Nome do serviço de aplicativo |
O nome do serviço de aplicativo é usado como o nome do recurso no Azure e para formar o nome de domínio totalmente qualificado para seu aplicativo, na forma do ponto de extremidade do servidor. Os caracteres permitidos são A-Z,0-9 e .- A Azure adiciona uma sequência de caracteres aleatórios para tornar o ponto de extremidade do servidor único em toda a plataforma Azure. |
webapp-appconfig-cs |
Crie uma loja de Configuração de Aplicativos do Azure.
APP_CONFIG_NAME='my-app-config'
az appconfig create --resource-group $RESOURCE_GROUP_NAME --name $APP_CONFIG_NAME --sku Free --location eastus
Importe o arquivo de configuração de teste para a Configuração do Aplicativo do Azure.
Importe o arquivo de configuração de teste para a Configuração do Aplicativo do Azure usando uma identidade gerenciada atribuída pelo sistema.
Altere os diretórios para a pasta ServiceConnectorSample.
Importa o ficheiro de configuração ./sampleconfigs.json teste para a App Configuration store. Se estiveres a usar Cloud Shell, carrega sampleconfigs.json antes de executares o comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importe o arquivo de configuração de teste para a Configuração do Aplicativo do Azure usando uma identidade gerenciada atribuída pelo usuário.
Altere os diretórios para a pasta ServiceConnectorSample.
Importa o ficheiro de configuração ./sampleconfigs.json teste para a App Configuration store. Se estiveres a usar Cloud Shell, carrega sampleconfigs.json antes de executares o comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importe o ficheiro de configuração de teste para a Configuração do Aplicativo do Azure usando o principal de serviço.
Altere os diretórios para a pasta ServiceConnectorSample.
Importa o ficheiro de configuração ./sampleconfigs.json teste para a App Configuration store. Se estiveres a usar Cloud Shell, carrega sampleconfigs.json antes de executares o comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo. Acarreta riscos que não estão presentes noutros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.
Importe o arquivo de configuração de teste para a Configuração do Aplicativo do Azure usando uma cadeia de conexão.
Altere os diretórios para a pasta ServiceConnectorSample.
Importa o ficheiro de configuração ./sampleconfigs.json teste para a App Configuration store. Se estiveres a usar Cloud Shell, carrega sampleconfigs.json antes de executares o comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Conectar o aplicativo Web à Configuração do Aplicativo
Crie uma conexão entre seu aplicativo Web e sua loja de configuração de aplicativos.
Crie uma conexão entre seu aplicativo Web e sua loja de Configuração de Aplicativos, usando uma autenticação de identidade gerenciada atribuída pelo sistema. Essa conexão é feita através do Service Connector.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_smi" --system-identity
system-identity refere-se ao tipo de autenticação SMI (identidade gerenciada atribuída ao sistema). O Service Connector também suporta as seguintes autenticações: UMI (identidade gerenciada atribuída pelo usuário), cadeia de conexão (secreta) e entidade de serviço.
Crie uma conexão entre seu aplicativo Web e sua loja de Configuração de Aplicativo, usando uma autenticação de identidade gerenciada atribuída pelo usuário. Essa conexão é feita através do Service Connector.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $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 refere-se ao tipo de autenticação de identidade gerenciada atribuída pelo usuário. O Service Connector também suporta as seguintes autenticações: identidade gerenciada atribuída pelo sistema, cadeia de conexão (secreta) e entidade de serviço.
Há duas maneiras de encontrar o client-id:
- Na CLI do Azure, digite
az identity show --name "myIdentity" --resource-group $RESOURCE_GROUP_NAME --query 'clientId'.
- No portal Azure, abra a Identidade Gerida que foi criada anteriormente e, em Visão Geral, obtenha o valor em ID do Cliente.
Crie uma ligação entre a sua aplicação web e o armazenamento de configurações da aplicação, utilizando uma entidade de serviço. Esta configuração é feita através do Service Connector.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $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 refere-se ao tipo de autenticação do principal de serviço. O Service Connector também suporta as seguintes autenticações: identidade gerenciada atribuída pelo sistema (UMI), identidade gerenciada atribuída pelo usuário (UMI) e cadeia de conexão (secreta).
Crie uma conexão entre seu aplicativo Web e sua loja de configuração de aplicativos, usando uma cadeia de conexão. Essa conexão é feita através do Service Connector.
az webapp connection create appconfig --resource-group $RESOURCE_GROUP_NAME --name $APP_SERVICE_NAME --app-config $APP_CONFIG_NAME --tg $RESOURCE_GROUP_NAME --connection "app_config_cs" --secret
secret refere-se ao tipo de autenticação de cadeia de conexão. O Service Connector também suporta as seguintes autenticações: identidade gerenciada atribuída ao sistema, identidade gerenciada atribuída pelo usuário e entidade de serviço.
Validar a ligação
Para verificar se a conexão está funcionando, navegue até seu aplicativo Web. A maneira mais fácil de acessar seu aplicativo Web é abri-lo no portal do Azure. Na página de Visão Geral , selecione o domínio Padrão. Depois que o site estiver no ar, você verá que ele será exibido: Olá. Seu WebApp do Azure está conectado à Configuração do Aplicativo pelo ServiceConnector agora.
Como funciona
Descubra o que o Service Connector gerencia nos bastidores para cada tipo de autenticação.
O Service Connector gerencia a configuração de conexão para você:
- Configure a aplicação Web para permitir que a aplicação tenha acesso a ela e obtenha o endpoint da Configuração da Aplicação. Acede a código de exemplo.
- Ative a autenticação gerenciada atribuída pelo sistema do aplicativo Web e conceda à Configuração do Aplicativo uma função de Leitor de Dados para permitir que o aplicativo se autentique na Configuração do Aplicativo usando DefaultAzureCredential do Azure.Identity. Acede a código de exemplo.
O Service Connector gerencia a configuração de conexão para você:
- Configurar a aplicação web
AZURE_APPCONFIGURATION_ENDPOINT, AZURE_APPCONFIGURATION_CLIENTID para permitir que a aplicação tenha acesso e obtenha o endpoint de configuração da aplicação como código
- Ative a autenticação gerenciada atribuída pelo usuário do aplicativo Web e conceda à Configuração do Aplicativo uma função de Leitor de Dados para permitir que o aplicativo se autentique na Configuração do Aplicativo usando DefaultAzureCredential do Azure.Identity. Acede a código de exemplo.
O Service Connector gerencia a configuração de conexão para você:
- Configure a aplicação Web para permitir que a aplicação tenha acesso a ela e obtenha o endpoint da Configuração da Aplicação. Acede a código de exemplo.
- Salve a credencial da entidade de serviço em WebApp AppSettings
AZURE_APPCONFIGURATION_CLIENTID.
AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET e conceder o papel de Leitor de Dados de Configuração da Aplicação ao principal do serviço, para que a aplicação possa ser autenticada na Configuração da Aplicação em código, utilizando ClientSecretCredential do Azure.Identity.
O Service Connector gerencia a configuração de conexão para você:
- Configure a aplicação web para permitir que esta aceda a si e obtenha a cadeia de conexão de Configuração do Aplicação
AZURE_APPCONFIGURATION_CONNECTIONSTRING. Acede a código de exemplo.
- Ative a autenticação gerenciada atribuída pelo sistema do aplicativo Web e conceda à Configuração do Aplicativo uma função de Leitor de Dados para permitir que o aplicativo se autentique na Configuração do Aplicativo usando DefaultAzureCredential do Azure.Identity. Acede a código de exemplo.
Para obter mais informações, consulte funcionamento interno do Service Connector.
Teste (opcional)
Opcionalmente, faça os seguintes testes:
Atualize o valor da chave SampleApplication:Settings:Messages na App Configuration Store.
az appconfig kv set --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Navegue até seu aplicativo Web do Azure, conforme descrito anteriormente, e atualize a página. Vê que a mensagem está atualizada para: olá.
Limpeza de recursos
Depois de terminar, se você não for mais usar esses recursos do Azure, exclua-os executando o az group delete comando. Este comando exclui seu grupo de recursos e todos os recursos nele.
az group delete --name <myResourceGroupName> --yes
Próximo passo