Saiba como conectar um aplicativo ASP.NET Core em execução no Serviço de Aplicativo do Azure à Configuração de Aplicativos do Azure, usando um dos seguintes métodos:
- SMI (Identidade gerenciada atribuída pelo sistema)
- UAMI (Identidade gerenciada atribuída pelo usuário)
- Entidade de serviço
- Cadeia de conexã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 de Aplicativos
- Compilar e implantar seu aplicativo no Serviço de Aplicativo do Azure
Pré-requisitos
Entrar 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 repositório de exemplo:
git clone https://github.com/Azure-Samples/serviceconnector-webapp-appconfig-dotnet.git
Implantar o aplicativo Web no Azure
Siga essas etapas para criar um Serviço de Aplicativo e implantar o aplicativo de exemplo. Verifique se você tem a função Colaborador ou Proprietário de Assinatura.
Crie um serviço de aplicativo e implante o aplicativo de exemplo que usa a identidade gerenciada atribuída pelo sistema para interagir com a Configuração de Aplicativos.
# 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 |
Descrição |
Exemplo |
Localização |
Escolha uma localização próxima de você. Use az account list-locations --output table para listar locais. |
eastus |
Nome do grupo de recursos |
Você usará esse 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 do aplicativo, no formato do ponto de extremidade do servidor https://<app-service-name>.azurewebsites.com . Esse nome deve ser exclusivo em todo o Azure e os únicos caracteres permitidos são A -Z , 0 -9 e - . |
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 de Aplicativos.
# 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 |
Descrição |
Exemplo |
Localização |
Escolha uma localização próxima de você. Use az account list-locations --output table para listar locais. |
eastus |
Nome do grupo de recursos |
Você usará esse 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 do aplicativo, no formato do ponto de extremidade do servidor https://<app-service-name>.azurewebsites.com . Esse nome deve ser exclusivo em todo o Azure e os únicos caracteres permitidos são A -Z , 0 -9 e - . |
webapp-appconfig-umi |
Crie uma identidade gerenciada atribuída pelo usuário. Salve a saída em um bloco de notas temporário.
az identity create --resource-group $RESOURCE_GROUP_NAME -n "myIdentity"
Crie um serviço de aplicativo e implante o aplicativo de exemplo que usa a entidade de serviço para interagir com a Configuração de Aplicativos.
# 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 |
Descrição |
Exemplo |
Localização |
Escolha uma localização próxima de você. Use az account list-locations --output table para listar locais. |
eastus |
Nome do grupo de recursos |
Você usará esse 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 do aplicativo, no formato do ponto de extremidade do servidor https://<app-service-name>.azurewebsites.com . Esse nome deve ser exclusivo em todo o Azure e os únicos caracteres permitidos são A -Z , 0 -9 e - . |
webapp-appconfig-sp |
Crie uma entidade de serviço; certifique-se de substituir yourSubscriptionID
pela ID da 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
Aviso
A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento exige um grau muito alto de confiança no aplicativo e traz riscos que não estão presentes em outros 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 de Aplicativos.
# 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 |
Descrição |
Exemplo |
Localização |
Escolha uma localização próxima de você. Use az account list-locations --output table para listar locais. |
eastus |
Nome do grupo de recursos |
Você usará esse 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 do aplicativo, no formato do ponto de extremidade do servidor https://<app-service-name>.azurewebsites.com . Esse nome deve ser exclusivo em todo o Azure e os únicos caracteres permitidos são A -Z , 0 -9 e - . |
webapp-appconfig-cs |
Criar um armazenamento da Configuração de Aplicativos do Azure
APP_CONFIG_NAME='my-app-config'
az appconfig create -g $RESOURCE_GROUP_NAME -n $APP_CONFIG_NAME --sku Free -l eastus
Importe o arquivo de configuração de teste para a Configuração de Aplicativos do Azure.
Importe o arquivo de configuração de teste para a Configuração de Aplicativos do Azure usando uma identidade gerenciada atribuída pelo sistema.
Cd na pasta ServiceConnectorSample
Importe o arquivo de configuração de teste ./sampleconfigs.json para o armazenamento da Configuração de Aplicativos. Se você estiver usando o Cloud Shell, carregue sampleconfigs.json antes de executar o comando.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importe o arquivo de configuração de teste para a Configuração de Aplicativos do Azure usando uma identidade gerenciada atribuída pelo usuário.
Cd na pasta ServiceConnectorSample
Importe o arquivo de configuração de teste ./sampleconfigs.json para o armazenamento da Configuração de Aplicativos. Se você estiver usando o Cloud Shell, carregue sampleconfigs.json antes de executar o comando.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Importe o arquivo de configuração de teste para a Configuração de Aplicativos do Azure usando a entidade de serviço.
Cd na pasta ServiceConnectorSample
Importe o arquivo de configuração de teste ./sampleconfigs.json para o armazenamento da Configuração de Aplicativos. Se você estiver usando o Cloud Shell, carregue sampleconfigs.json antes de executar o comando.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Aviso
A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento exige um grau muito alto de confiança no aplicativo e traz riscos que não estão presentes em outros 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 de Aplicativos do Azure usando a cadeia de conexão.
Cd na pasta ServiceConnectorSample
Importe o arquivo de configuração de teste ./sampleconfigs.json para o armazenamento da Configuração de Aplicativos. Se você estiver usando o Cloud Shell, carregue sampleconfigs.json antes de executar o comando.
az appconfig kv import -n $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Conectar o aplicativo Web para a Configuração de Aplicativos
Crie uma conexão entre o aplicativo Web e o armazenamento da Configuração de Aplicativos.
Crie uma conexão entre o aplicativo Web e o armazenamento da Configuração de Aplicativos, usando uma autenticação da identidade gerenciada atribuída pelo sistema. Essa conexão é feita por meio do Conector de Serviço.
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
refere-se ao tipo de autenticação SMI (identidade gerenciada atribuída pelo sistema). O Conector de Serviço também dá suporte às seguintes autenticações: UMI (identidade gerenciada atribuída pelo usuário), cadeia de conexão (segredo) e entidade de serviço.
Crie uma conexão entre o aplicativo Web e o armazenamento da Configuração de Aplicativos, usando uma autenticação da identidade gerenciada atribuída pelo usuário. Essa conexão é feita por meio do Conector de Serviço.
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
refere-se ao tipo de autenticação da identidade gerenciada atribuída pelo usuário. O Conector de Serviço também dá suporte às seguintes autenticações: identidade gerenciada atribuída pelo sistema, cadeia de conexão (segredo) e entidade de serviço.
Há duas formas de localizar client-id
:
- Na CLI do Azure, insira
az identity show -n "myIdentity" -g $RESOURCE_GROUP_NAME --query 'clientId'
.
- No portal do Azure, abra a Identidade Gerenciada que foi criada anteriormente e, em Visão geral, obtenha o valor na ID do cliente.
Crie uma conexão entre o aplicativo Web e o armazenamento da Configuração de Aplicativos, usando uma entidade de serviço. Isso é feito por meio do Conector de Serviço.
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
refere-se ao tipo de autenticação da entidade de serviço. O Conector de Serviço também dá suporte às seguintes autenticações: SMI (identidade gerenciada atribuída pelo sistema), UMI (identidade gerenciada atribuída pelo usuário) e cadeia de conexão (segredo).
Crie uma conexão entre o aplicativo Web e o armazenamento da Configuração de Aplicativos, usando uma cadeia de conexão. Essa conexão é feita por meio do Conector de Serviço.
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
refere-se ao tipo de autenticação da cadeia de conexão. O Conector de Serviço também dá suporte às seguintes autenticações: identidade gerenciada atribuída pelo sistema, identidade gerenciada atribuída pelo usuário e entidade de serviço.
Validar a conexão
- Para verificar se a conexão está funcionando, navegue até o aplicativo Web em
https://<myWebAppName>.azurewebsites.net/
no seu navegador. Quando o site estiver ativo, você verá "Olá. Seu aplicativo Web do Azure está conectado à Configuração de Aplicativos pelo Conector de Serviço agora".
Como ele funciona
Localize abaixo o que o Conector de Serviço gerencia nos bastidores para cada tipo de autenticação.
O Conector de Serviço gerencia a configuração de conexão para você:
- Configure o
AZURE_APPCONFIGURATION_ENDPOINT
do aplicativo Web para permitir que o aplicativo acesse-o e obtenha o ponto de extremidade da Configuração de Aplicativos. Acesse o código de exemplo.
- Ative a autenticação gerenciada atribuída pelo sistema do aplicativo Web e conceda à Configuração de Aplicativos uma função de Leitor de Dados para permitir que o aplicativo se autentique na Configuração de Aplicativos usando DefaultAzureCredential em Azure.Identity. Acesse o código de exemplo.
O Conector de Serviço gerencia a configuração de conexão para você:
- Configure
AZURE_APPCONFIGURATION_ENDPOINT
, AZURE_APPCONFIGURATION_CLIENTID
do aplicativo Web para permitir que o aplicativo acesse-o e obtenha o ponto de extremidade da configuração de aplicativos no código;
- Ative a autenticação gerenciada atribuída pelo usuário do aplicativo Web e conceda à Configuração de Aplicativos uma função de Leitor de Dados para permitir que o aplicativo se autentique na Configuração de Aplicativos usando DefaultAzureCredential em Azure.Identity. Acesse o código de exemplo.
O Conector de Serviço gerencia a configuração de conexão para você:
- Configure o
AZURE_APPCONFIGURATION_ENDPOINT
do aplicativo Web para permitir que o aplicativo acesse-o e obtenha o ponto de extremidade da Configuração de Aplicativos. Acesse o código de exemplo.
- salve a credencial da entidade de serviço em
AZURE_APPCONFIGURATION_CLIENTID
das Configurações de Aplicativos do Aplicativo Web. AZURE_APPCONFIGURATION_TENANTID
, AZURE_APPCONFIGURATION_CLIENTSECRET
conceda a função de Leitor de Dados da Configuração de Aplicativos à entidade de serviço, de modo que o aplicativo possa ser autenticado para a Configuração de Aplicativos no código, usando ClientSecretCredential
em Azure.Identity.
O Conector de Serviço gerencia a configuração de conexão para você:
- Configure
AZURE_APPCONFIGURATION_CONNECTIONSTRING
do aplicativo Web para permitir que o aplicativo acesse-o e obtenha a cadeia de conexão da Configuração de Aplicativos. Acesse o código de exemplo.
- Ative a autenticação gerenciada atribuída pelo sistema do aplicativo Web e conceda à Configuração de Aplicativos uma função de Leitor de Dados para permitir que o aplicativo se autentique na Configuração de Aplicativos usando DefaultAzureCredential em Azure.Identity. Acesse o código de exemplo.
Para obter mais informações, acesse os Internos do Conector de Serviço.
Teste (opcional)
Opcionalmente, faça os seguintes testes:
Atualize o valor da chave SampleApplication:Settings:Messages
no Armazenamento da Configuração de Aplicativos.
az appconfig kv set -n <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Navegue até seu aplicativo Web do Azure acessando https://<myWebAppName>.azurewebsites.net/
e atualizando a página. Você verá que a mensagem é atualizada para "olá".
Limpar os recursos
Quando terminar, se você não for mais usar esses recursos do Azure, exclua-os executando o comando az group delete
. Esse comando exclui o grupo de recursos e todos os recursos dele.
az group delete -n <myResourceGroupName> --yes
Próximas etapas
Siga os tutoriais listados abaixo para saber mais sobre o Conector de Serviço.