Share via


Adicione o Key Vault ao seu aplicativo Web usando os Serviços Conectados do Visual Studio

Neste tutorial, você aprenderá como adicionar facilmente tudo o que você precisa para começar a usar o Azure Key Vault para gerenciar seus segredos para projetos Web no Visual Studio, quer esteja usando o ASP.NET Core ou qualquer outro tipo de projeto do ASP.NET. Com o uso do recurso de Serviços Conectados no Visual Studio, você pode fazer com que o Visual Studio adicione automaticamente todos os pacotes e definições de configuração do NuGet que você precisa para se conectar ao Key Vault no Azure.

Para obter detalhes sobre as alterações que os Serviços Conectados realizam no projeto para habilitar o Key Vault, confira Serviço Conectado do Key Vault — O que aconteceu com o projeto do ASP.NET ou Serviço Conectado do Key Vault — O que aconteceu com o projeto do ASP.NET Core.

Pré-requisitos

Como adicionar suporte do Key Vault ao seu projeto

Antes de começar, verifique se você está conectado ao Visual Studio. Entre com a mesma conta usada para sua assinatura do Azure. Depois, abra um projeto Web do ASP.NET 4.7.1 ou posterior, ou do ASP.NET Core Web, e execute as etapas a seguir. As etapas mostradas são do Visual Studio 2022 versão 17.4. O fluxo pode ser um pouco diferente para outras versões do Visual Studio.

  1. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto ao qual deseja adicionar o suporte ao Key Vault e escolha Adicionar>Serviço Conectado. Em Dependências do Serviço, escolha o ícone +. A página do Serviço Conectado aparece com os serviços que você pode adicionar ao seu projeto.

  2. No menu de serviços disponíveis, selecione Azure Key Vault e clique em Avançar.

    Escolha

  3. Selecione a assinatura que deseja usar e, se já tiver um cofre de chaves que deseja usar, selecione-o e clique em Avançar.

    Captura de tela da opção Selecionar sua assinatura

  4. Se você não tiver um Key Vault existente, clique em Criar Key Vault. Será solicitado que você forneça o grupo de recursos, a localização e o SKU.

    Captura da tela

  5. Na tela Configurar Key Vault, você pode alterar o nome da variável de ambiente que faz referência à URI do cofre de chaves. A cadeia de conexão não é armazenada aqui; ela é armazenada no cofre de chaves.

    Captura da tela Conectar ao Azure Key Vault.

  6. Clique em Avançar para examinar um resumo das alterações e depois clique em Concluir.

Agora, a conexão com Key Vault é estabelecida e você pode acessar seus segredos no código. Se você acabou de criar um cofre de chaves, teste-o criando um segredo que possa ser referenciado no código. Você pode criar um segredo usando o portal do Azure, o PowerShell ou a CLI do Azure.

Confira exemplos de código de como trabalhar com segredos na Biblioteca de clientes de segredos do Azure Key Vault para .NET – Exemplos de código.

Configurar o acesso ao cofre de chaves

Se o cofre de chaves estiver sendo executado em uma conta Microsoft diferente daquela em que você está conectado ao Visual Studio (por exemplo, o cofre de chaves está sendo executado em sua conta corporativa, mas o Visual Studio está usando sua conta privada), você recebe um erro no arquivo Program.cs, que o Visual Studio não pode obter acesso ao cofre de chaves. Para corrigir esse problema, vá para o portal do Azure, abra seu cofre de chaves e escolha Controle de acesso (IAM) para definir permissões. Confira Fornecer acesso a chaves, certificados e segredos do cofrre de chaves com um controle de acesso baseado em função do Azure (RBAC).

Observação

Cofres de chaves mais antigos podem usar um modelo de política de acesso herdado. É recomendável migrar cofres de chaves mais antigos para usar o RBAC do Azure. Consulte Controle de acesso baseado em função (RBAC) do Azure versus políticas de acesso.

Como seu projeto do ASP.NET Core é modificado

Esta seção identifica as alterações exatas feitas em um projeto ASP.NET ao adicionar o serviço conectado de cofre de chaves usando o Visual Studio.

Referências adicionadas para o ASP.NET Core

Afeta as referências .NET do arquivo de projeto e referências de pacote NuGet.

Type Referência
NuGet Microsoft.AspNetCore.AzureKeyVault.HostingStartup

Arquivos adicionados para o ASP.NET Core

  • ConnectedService.json adicionado, que registra algumas informações sobre o provedor, a versão de um link para a documentação do Serviço Conectado.

Alterações de arquivo de projeto para ASP.NET Core

  • Adicione o ItemGroup dos Serviços Conectados e o arquivo ConnectedServices.json.

Alterações de launchsettings.json sobre para ASP.NET Core

  • Adição das seguintes entradas de variável de ambiente ao perfil do IIS Express e ao perfil que coincide com o nome do seu projeto da Web:

      "environmentVariables": {
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONENABLED": "true",
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONVAULT": "<your keyvault URL>"
      }
    

Alterações no Azure para ASP.NET Core

  • Criação de um grupo de recursos (ou uso de um existente).
  • Criação de um cofre de chaves no grupo de recursos especificado.

Como seu projeto do ASP.NET Framework é modificado

Esta seção identifica as alterações exatas feitas em um projeto ASP.NET ao adicionar o serviço conectado de cofre de chaves usando o Visual Studio.

Referências adicionadas para o ASP.NET Framework

Afeta o arquivo de projeto (referências do .NET) e packages.config (referências do NuGet).

Type Referência
.NET; NuGet Azure.Identity
.NET; NuGet Azure.Security.KeyVault.Keys
.NET; NuGet Azure.Security.key vault.Secrets

Importante

Por padrão, o Azure.Identity 1.1.1 está instalado, o que não oferece suporte à credencial do Visual Studio. Você pode atualizar a referência do pacote manualmente para a 1.2+ usar a credencial do Visual Studio.

Arquivos adicionados para o ASP.NET Framework

  • ConnectedService.json adicionado, que registra algumas informações sobre o provedor, a versão de um link para a documentação do Serviço Conectado.

Alterações de arquivo de projeto para ASP.NET Framework

  • Adicione o ItemGroup dos Serviços Conectados e o arquivo ConnectedServices.json.
  • Referências aos assemblies .NET descritos na seção Referências adicionadas.

Próximas etapas

Se você seguiu este tutorial, suas permissões de Key Vault são configuradas para serem executadas com a sua assinatura do Azure, mas isso pode não ser desejável para um cenário de produção. Você pode criar uma identidade gerenciada para gerenciar o acesso do Key Vault para seu aplicativo. Confira Como autenticar para um Key Vault e Atribuir uma política de acesso de Key Vault.

Saiba mais sobre o desenvolvimento do Key Vault. Leia o Guia de Desenvolvedor do Key Vault.

Se sua meta for armazenar a configuração de um aplicativo ASP.NET Core em um cofre de chaves do Azure, consulte Provedor de configuração do Azure Key Vault em ASP.NET Core.