Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste tutorial, você 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.
Seu aplicativo pode usar o provedor 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. Quando você adiciona uma referência do Key Vault à Configuração de Aplicativos, a Configuração de Aplicativos cria uma chave que faz referência ao valor armazenado no Key Vault. O valor que a Configuração de Aplicativos armazena não é um valor ou credencial do Key Vault. Em vez disso, é um URI que faz referência ao valor no Key Vault. Como o provedor cliente reconhece a chave como uma referência do Key Vault, ele usa o Key Vault para recuperar seu valor.
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. Antes de continuar, conclua o 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ê:
- 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 tutorial de início rápido Criar um aplicativo ASP.NET Core com App Configuration.
Criar um cofre de chaves
Vá para o portal do Azure e selecione Criar um recurso.
Digite Key Vault na caixa de pesquisa. Na lista de resultados, selecione Key Vault.
Na página do Key Vault , selecione Criar.
Na página Criar um cofre de chaves , insira as seguintes informações:
- Para Assinatura: selecione uma assinatura.
- Para o grupo de recursos: insira o nome de um grupo de recursos existente ou selecione Criar novo e insira um nome de grupo de recursos.
- Para Nome do Key Vault: insira um nome exclusivo.
- Para Região: selecione um local.
Para as outras opções, use os valores padrão.
Selecione Examinar + criar.
Depois que o sistema validar e exibir suas entradas, selecione Criar.
Nesse ponto, sua conta do Azure é a única autorizada a acessar esse novo cofre.
Adicionar um segredo ao Key Vault
Para testar a recuperação do Key Vault no seu aplicativo, primeiro adicione um segredo ao cofre seguindo estas etapas. O segredo que você adiciona é chamado Mensagem, e seu valor é "Olá do Key Vault".
No menu de recursos do Key Vault, selecione Objetos>Segredos.
Selecione Gerar/Importar.
Na caixa de diálogo Criar um segredo , insira os seguintes valores:
- Para opções de carregamento: insira Manual.
- Nome: Digite Mensagem.
- Para Valor do segredo: Insira Hello from Key Vault.
Para as outras opções, use os valores padrão.
Selecione Criar.
Adicionar uma referência do Key Vault à Configuração de Aplicativos
Entre no portal do Azure. Selecione Todos os recursos e, em seguida, selecione o repositório de Configuração de Aplicativos que você cria no início rápido.
Selecione o Gerenciador de Configurações.
Selecione Criar>referência do Key Vault e insira os seguintes valores:
- Para Chave: Digite TestApp:Settings:KeyVaultMessage.
- Para Rótulo: deixe o valor em branco.
- Para Assinatura, Grupo de recursos e Key Vault: insira os valores usados ao criar o cofre de chaves anteriormente neste tutorial.
- Para Segredo: selecione o segredo chamado Mensagem que você cria na seção anterior.
Atualizar o código para usar uma referência do Key Vault
Vá para a pasta que contém o projeto de aplicativo Web ASP.NET Core que você criou no início rápido.
No prompt de comando, execute o comando a seguir. Esse comando adiciona a referência do
Azure.Identitypacote NuGet ao arquivo de projeto ou o atualiza.dotnet add package Azure.IdentityAbra Program.cs. Na seção de diretiva
using, adicione a seguinte linha para importar os tipos do namespaceAzure.Identity:using Azure.Identity;Em Program.cs, substitua a chamada para o
AddAzureAppConfigurationmétodo pela chamada no código a seguir. A chamada atualizada inclui a opçãoConfigureKeyVault. Essa opção usa o métodoSetCredentialpara passar as credenciais necessárias para autenticar no Key Vault.var builder = WebApplication.CreateBuilder(args); // Retrieve the App Configuration endpoint. string endpoint = builder.Configuration.GetValue<string>("Endpoints:AppConfiguration") // Load the configuration from App Configuration. builder.Configuration.AddAzureAppConfiguration(options => { options.Connect(new Uri(endpoint), new DefaultAzureCredential()); options.ConfigureKeyVault(keyVaultOptions => { keyVaultOptions.SetCredential(new DefaultAzureCredential()); }); });Dica
Se você tiver vários cofres de chaves, o sistema usará a mesma credencial para todos eles. Se os cofres de chaves exigirem credenciais diferentes, você poderá defini-las usando os métodos
RegisterouSetSecretResolverda classeAzureAppConfigurationKeyVaultOptions.Para acessar os valores das referências do Key Vault em seu código, vá para a pasta Páginas em seu projeto. Abra Index.cshtml e substitua seu conteúdo pelo código a seguir. O código no bloco anterior inicializa a conexão de Configuração de Aplicativo e configura a conexão do Key Vault. Como resultado, em Index.cshtml, você pode acessar os valores das referências do Key Vault da mesma forma que acessa os valores das chaves de Configuração de Aplicativo regulares.
@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>Esse código acessa o valor da referência
TestApp:Settings:KeyVaultMessagedo Key Vault da mesma forma que acessa o valor de configuração deTestApp:Settings:Message.
Permitir ao aplicativo acesso ao Key Vault
A Configuração do Aplicativo não acessa seu cofre de chaves. Em vez disso, seu aplicativo lê diretamente do Key Vault, portanto, você precisa conceder ao seu aplicativo acesso aos segredos em seu cofre de chaves. Dessa forma, os segredos sempre ficam com seu aplicativo. Você pode usar uma política de acesso do Key Vault ou um controle de acesso baseado em função do Azure para conceder o acesso.
O código neste tutorial usa a DefaultAzureCredential classe para autenticação. Essa credencial de token agregada tenta automaticamente vários tipos de credenciais, como EnvironmentCredential, ManagedIdentityCredential, SharedTokenCacheCredential e VisualStudioCredential. Para obter mais informações, consulte Classe DefaultAzureCredential.
Você pode substituir DefaultAzureCredential por qualquer tipo de credencial explícita. No entanto, quando você usa DefaultAzureCredential, seu código pode ser executado em ambientes locais e do Azure. Por exemplo, quando seu aplicativo é executado no Azure, DefaultAzureCredential usa ManagedIdentityCredential. Mas quando você usa o Visual Studio para desenvolvimento local, DefaultAzureCredential volta automaticamente para SharedTokenCacheCredential ou VisualStudioCredential.
Como alternativa, você pode definir as variáveis de ambiente AZURE_TENANT_ID, AZURE_CLIENT_ID e AZURE_CLIENT_SECRET. Quando você fizer isso, DefaultAzureCredential usará essas variáveis e EnvironmentCredential para autenticar com seu Key Vault.
Depois de implantar seu aplicativo em um serviço do Azure com identidade gerenciada habilitada, como o Serviço de Aplicativo do Azure, o Serviço de Kubernetes do Azure ou a Instância de Contêiner do Azure, você concede a identidade gerenciada da permissão de serviço do Azure 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, confira 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 em um prompt de comando:
dotnet buildDepois que o build é concluído, use o comando a seguir para executar o aplicativo Web localmente:
dotnet runNa saída do comando
dotnet run, localize uma URL na qual o aplicativo Web está ouvindo, comohttp://localhost:5292. Abra um navegador e vá para essa URL.
O texto na página da Web inclui os seguintes componentes:
- O valor associado à
TestApp:Settings:Messagechave em seu repositório de Configuração de Aplicativos - O valor do segredo da mensagem armazenado em seu cofre de chaves
- O valor associado à
Limpar os 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.