Tutorial: Usar referências do Key Vault em um aplicativo ASP.NET Core
Neste tutorial, você aprenderá a usar o serviço de Configuração de Aplicativos do Azure junto com o Azure Key Vault. A Configuração de Aplicativos e o Key Vault são serviços complementares usados lado a lado na maioria das implantações de aplicativo.
A Configuração de Aplicativos ajuda você a usar os serviços juntos por meio da criação de chaves que fazem referência a valores armazenados no Key Vault. Quando a Configuração de Aplicativos cria essas chaves, ela armazena os URIs de valores do Key Vault em vez dos valores propriamente ditos.
Seu aplicativo usa o provedor do cliente da Configuração de Aplicativos para recuperar referências do Key Vault, assim como faz para quaisquer outras chaves armazenadas na Configuração de Aplicativos. Nesse caso, os valores armazenados na Configuração de Aplicativos são URIs que fazem referência aos valores no Key Vault. Eles não são valores nem credenciais do Key Vault. Já que o provedor do cliente reconhece as chaves como referências do Key Vault, ele usa o Key Vault para recuperar os valores delas.
Seu aplicativo é responsável por autenticar corretamente, tanto na Configuração de Aplicativos quanto no Key Vault. Os dois serviços não se comunicam diretamente.
Este tutorial mostra a você como implementar referências do Key Vault em seu código. Ele se baseia no aplicativo Web apresentado no início rápido do ASP.NET Core listado nos pré-requisitos abaixo. Antes de continuar, conclua este início rápido.
Você pode usar qualquer editor de código para executar as etapas deste tutorial. Por exemplo, o Visual Studio Code é um editor de código multiplataforma disponível para os sistemas operacionais Windows, macOS e Linux.
Neste tutorial, você aprenderá como:
- Criar uma chave da Configuração de Aplicativos que referencia um valor armazenado no Key Vault.
- Acessar o valor dessa chave por meio de um aplicativo Web ASP.NET Core.
Pré-requisitos
Conclua o início rápido: Criar um aplicativo do ASP.NET Core com a Configuração de Aplicativos.
Criar um cofre
Selecione a opção Criar um recurso no canto superior esquerdo do portal do Azure:
Na caixa de pesquisa, digite Key Vault e selecione Key Vault na lista suspensa.
Na lista de resultados, selecione Cofres de chaves à esquerda.
Em Cofres de chaves, selecione Adicionar.
À direita, na seção Criar cofre de chaves, forneça as seguintes informações:
- Selecione Assinatura para escolher uma assinatura.
- Em Grupo de Recursos, insira um nome de grupo de recursos existente ou selecione Criar novo e insira um nome de grupo de recursos.
- Em Nome do cofre de chaves, é necessário um nome exclusivo.
- Na lista suspensa Região, escolha uma localização.
Deixe as outras opções de Criar cofre de chaves com os valores padrão.
Clique em Revisar + Criar.
O sistema validará e exibirá os dados inseridos. Clique em Criar.
Nesse ponto, sua conta do Azure é a única autorizada a acessar esse novo cofre.
Adicionar um segredo ao Key Vault
Para adicionar um segredo ao cofre, basta executar algumas etapas adicionais. Nesse caso, adicione uma mensagem que você possa usar para testar a recuperação do Key Vault. A mensagem é chamada de Mensagem e você armazena nela o valor de "Olá do Key Vault".
- Na página de propriedades do Key Vault, selecione Segredos.
- Selecione Gerar/Importar.
- No painel Criar um segredo, insira os seguintes valores:
- Opções de upload: insira Manual.
- Name: insira Mensagem.
- Valor: insira Olá do Key Vault.
- Deixe as outras propriedades de Criar um segredo com os valores padrão.
- Selecione Criar.
Adicionar uma referência do Key Vault à Configuração de Aplicativos
Entre no portal do Azure. Escolha Todos os recursos e depois escolha a instância do repositório de Configurações de Aplicativos que você criou no início rápido.
Selecione Gerenciador de Configurações.
Clique em + Criar>Referência do Key Vault e especifique os seguintes valores:
- Chave: selecione TestApp:Settings:KeyVaultMessage.
- Rótulo: deixe esse valor em branco.
- Assinatura, Grupo de recursos e Cofre de chaves: Insira os valores correspondentes àqueles no cofre de chaves que você criou na seção anterior.
- Segredo: selecione o segredo chamado Mensagem criado na seção anterior.
Atualizar o código para usar uma referência do Key Vault
Adicione uma referência aos pacotes NuGet necessários executando o seguinte comando:
dotnet add package Azure.Identity
Abra Program.cs e adicione referências aos seguintes pacotes necessários:
using Azure.Identity;
Use a Configuração de Aplicativos chamando o método
AddAzureAppConfiguration
. Inclua a opçãoConfigureKeyVault
e transmita as credenciais corretas para o Key Vault usando o métodoSetCredential
.var builder = WebApplication.CreateBuilder(args); // Retrieve the connection string string connectionString = builder.Configuration.GetConnectionString("AppConfig"); // Load configuration from Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { options.Connect(connectionString); options.ConfigureKeyVault(keyVaultOptions => { keyVaultOptions.SetCredential(new DefaultAzureCredential()); }); });
Dica
Se você tiver vários Key Vaults, a mesma credencial será usada para todos eles. Se seus Key Vaults exigirem credenciais diferentes, você poderá defini-las usando os métodos
Register
ouSetSecretResolver
da classeAzureAppConfigurationKeyVaultOptions
.Ao inicializar a conexão com a Configuração de Aplicativos, você configura a conexão com o Key Vault chamando o método
ConfigureKeyVault
. Após a inicialização, você pode acessar os valores de referências do Key Vault da mesma maneira que acessa os valores de chaves comuns da Configuração de Aplicativos.Para ver esse processo em ação, abra Index.cshtml no diretório Exibições>Página Inicial. Substitua o conteúdo pelo código a seguir:
@page @using Microsoft.Extensions.Configuration @inject IConfiguration Configuration <style> body { background-color: @Configuration["TestApp:Settings:BackgroundColor"] } h1 { color: @Configuration["TestApp:Settings:FontColor"]; font-size: @Configuration["TestApp:Settings:FontSize"]px; } </style> <h1>@Configuration["TestApp:Settings:Message"] and @Configuration["TestApp:Settings:KeyVaultMessage"]</h1>
Você acessa o valor da referência do Key Vault TestApp:Settings:KeyVaultMessage da mesma maneira que acessa o valor de configuração TestApp:Settings:Message.
Permitir ao aplicativo acesso ao Key Vault
A Configuração de Aplicativos do Azure não acessará seu cofre de chaves. Seu aplicativo fará a leitura diretamente do Key Vault, portanto, será necessário conceder ao aplicativo acesso aos segredos no cofre de chaves. Dessa forma, o segredo sempre permanece com o aplicativo. O acesso pode ser concedido usando uma política de acesso do Key Vault ou o controle de acesso baseado em função do Azure.
Use DefaultAzureCredential
no código acima. É uma credencial de token agregada que automaticamente tenta vários tipos de credenciais, como EnvironmentCredential
, ManagedIdentityCredential
, SharedTokenCacheCredential
e VisualStudioCredential
. Para obter mais informações, consulte Classe DefaultAzureCredential. É possível substituir DefaultAzureCredential
por qualquer tipo de credencial explicitamente. No entanto, usar DefaultAzureCredential
permite ter o mesmo código que é executado em ambientes locais e no Azure. Por exemplo, você concede suas próprias credenciais de acesso ao cofre de chaves. DefaultAzureCredential
volta automaticamente para SharedTokenCacheCredential
ou VisualStudioCredential
quando você usa o Visual Studio para desenvolvimento local.
Como alternativa, você pode definir as variáveis de ambiente AZURE_TENANT_ID, AZURE_CLIENT_ID e AZURE_CLIENT_SECRET e DefaultAzureCredential
usará o segredo do cliente que você tem por meio do EnvironmentCredential
para autenticar com o cofre de chaves. Depois que seu aplicativo for implantado em um serviço do Azure com identidade gerenciada habilitada, como Serviço de Aplicativo do Azure, Serviço de Kubernetes do Azure ou Instância de Contêiner do Azure, conceda à identidade gerenciada de serviço do Azure permissão para acessar o cofre de chaves. DefaultAzureCredential
usa ManagedIdentityCredential
automaticamente quando seu aplicativo está em execução no Azure. Você pode usar a mesma identidade gerenciada para autenticar com a Configuração de Aplicativos e Key Vault. Para obter mais informações, consulte Como usar identidades gerenciadas para acessar a Configuração de Aplicativos.
Compilar e executar o aplicativo localmente
Para criar o aplicativo usando a CLI do .NET, execute o seguinte comando no shell de comando:
dotnet build
Depois que o build é concluído, use o comando a seguir para executar o aplicativo Web localmente:
dotnet run
Abra uma janela do navegador e vá para
http://localhost:5000
, que é a URL padrão do aplicativo Web hospedado localmente.
Limpar recursos
Se não deseja continuar usando os recursos criados neste artigo, exclua o grupo de recursos que você criou aqui para evitar encargos.
Importante
A exclusão de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Não exclua acidentalmente grupo de recursos ou recursos incorretos. Se tiver criado os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que você deseja manter, exclua cada um individualmente do respectivo painel em vez de excluir o grupo de recursos.
- Entre no portal do Azure e selecione Grupos de recursos.
- Na caixa Filtrar por nome..., digite o nome do seu grupo de recursos.
- Na lista de resultados, selecione o nome do grupo de recursos para conferir uma visão geral.
- Selecione Excluir grupo de recursos.
- Você receberá uma solicitação para confirmar a exclusão do grupo de recursos. Insira o nome do grupo de recursos para confirmar e selecione Excluir.
Após alguns instantes, o grupo de recursos e todos os recursos dele são excluídos.
Próximas etapas
Neste tutorial, você criou uma chave na Configuração de Aplicativos que referencia um segredo armazenado no Key Vault. Para saber como recarregar automaticamente segredos e certificados Key Vault, continue para o próximo tutorial:
Para saber como usar a Identidade Gerenciada para simplificar o acesso à Configuração de Aplicativos e ao Key Vault, consulte o seguinte tutorial: