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
Prerequisites
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 um 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 da 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
| Parameter |
Description |
Example |
| Location |
Escolha um local perto de você. Use az account list-locations --output table para listar locais. |
eastus |
| Nome do grupo de recursos |
Use 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. Os caracteres permitidos são A-Z, 0-9 e -. O Azure adiciona uma sequência aleatória para tornar o endpoint de 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 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
| Parameter |
Description |
Example |
| Location |
Escolha um local perto de você. Use az account list-locations --output table para listar locais. |
eastus |
| Nome do grupo de recursos |
Use 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. Os caracteres permitidos são A-Z, 0-9 e -. O Azure adiciona uma sequência aleatória para tornar o endpoint de servidor único em toda a plataforma Azure. |
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 --name "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
| Parameter |
Description |
Example |
| Location |
Escolha um local perto de você. Use az account list-locations --output table para listar locais. |
eastus |
| Nome do grupo de recursos |
Use 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. Os caracteres permitidos são A-Z, 0-9 e -. O Azure adiciona uma sequência aleatória para tornar o endpoint de servidor único em toda a plataforma Azure. |
webapp-appconfig-sp |
Crie uma entidade 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 usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um alto grau de confiança no aplicativo. Ele 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
| Parameter |
Description |
Example |
| Location |
Escolha um local perto de você. Use az account list-locations --output table para listar locais. |
eastus |
| Nome do grupo de recursos |
Use 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. Os caracteres permitidos são A-Z, 0-9 e -. O Azure adiciona uma sequência aleatória para tornar o endpoint de servidor único em toda a plataforma Azure. |
webapp-appconfig-cs |
Criar um repositório 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 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.
Altere os diretórios para a pasta ServiceConnectorSample.
Importe o arquivo de configuração de teste ./sampleconfigs.json para o repositório de Configuração de Aplicativos. Se você estiver usando o Cloud Shell, carregue sampleconfigs.json antes de executar 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 de Aplicativos do Azure usando uma identidade gerenciada atribuída pelo usuário.
Altere os diretórios para a pasta ServiceConnectorSample.
Importe o arquivo de configuração de teste ./sampleconfigs.json para o repositório de Configuração de Aplicativos. Se você estiver usando o Cloud Shell, carregue sampleconfigs.json antes de executar 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 de Aplicativos do Azure usando a entidade de serviço.
Altere os diretórios para a pasta ServiceConnectorSample.
Importe o arquivo de configuração de teste ./sampleconfigs.json para o repositório de Configuração de Aplicativos. Se você estiver usando o Cloud Shell, carregue sampleconfigs.json antes de executar o comando.
az appconfig kv import --name $APP_CONFIG_NAME --source file --format json --path ./sampleconfigs.json --separator : --yes
Warning
A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um alto grau de confiança no aplicativo. Ele 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.
Altere os diretórios para a pasta ServiceConnectorSample.
Importe o arquivo de configuração de teste ./sampleconfigs.json para o repositório de Configuração de Aplicativos. Se você estiver usando o Cloud Shell, carregue sampleconfigs.json antes de executar o comando.
az appconfig kv import --name $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 --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 pelo sistema). O Service Connector 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 --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 da identidade gerenciada atribuída pelo usuário. O Service Connector 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 --name "myIdentity" --resource-group $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. Essa configuração é feita por meio 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 da entidade de serviço. O Service Connector também dá suporte às seguintes autenticações: UMI (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 --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 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é seu aplicativo Web. A maneira mais fácil de acessar seu aplicativo Web é abri-lo no portal do Azure. Na página Visão geral , selecione o domínio Padrão. Depois que o site estiver funcionando, você o verá exibindo: Olá. Seu Azure WebApp está conectado à Configuração de Aplicativos pelo ServiceConnector agora.
Como ele funciona
Descubra o que o Service Connector 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 no WebApp AppSettings
AZURE_APPCONFIGURATION_CLIENTID.
AZURE_APPCONFIGURATION_TENANTID, AZURE_APPCONFIGURATION_CLIENTSECRET e conceda a função de Leitor de Dados de Configuração do Aplicativo à entidade de serviço, para que o aplicativo possa ser autenticado na Configuração do Aplicativo no código , usando ClientSecretCredential de 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, consulte os detalhes internos do Service Connector.
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 --name <myAppConfigStoreName> --key SampleApplication:Settings:Messages --value hello --yes
Navegue até seu aplicativo Web do Azure, conforme descrito anteriormente, e atualize a página. Você verá que a mensagem é atualizada para: olá.
Limpar os recursos
Depois de terminar, se você não usar esses recursos do Azure por mais tempo, exclua-os executando o az group delete comando. Este comando exclui seu grupo de recursos e todos os recursos contidos nele.
az group delete --name <myResourceGroupName> --yes
Próxima etapa