Compartilhar via


Assinar pacotes com o Azure Key Vault

No Visual Studio 2022, versão 17.8 versão preliminar 2 e posteriores, você pode assinar pacotes de aplicativos da UWP e de área de trabalho com um certificado do Azure Key Vault. Essa ferramenta envia o resumo (hash) do pacote do aplicativo ao Azure Key Vault para assinatura criptográfica com o certificado escolhido. O resumo assinado é então retornado e anexado ao seu pacote localmente.

Importante

Esse processo é seguro. A chave privada do certificado nunca sai do Azure Key Vault.

Pré-requisitos

  • Uma conta do Azure. Caso ainda não tenha uma conta do Azure, inicie aqui.
  • Um Azure Key Vault. Para obter mais informações, confira Criar um Key Vault.
  • Um certificado de assinatura de pacote válido importado para o Azure Key Vault. O certificado padrão gerado pelo Azure Key Vault não funcionará para a assinatura de código. Para obter detalhes sobre como criar um certificado de assinatura de pacote, confira Criar um certificado para assinatura de pacote.

Importar um certificado para o Key Vault

Adicionar um certificado ao Key Vault é muito simples. Neste exemplo, adicionamos um certificado de assinatura de código UWP válido chamado UwpSigningCert.pfx.

  1. Na página de propriedades do Key Vault, selecione Certificados.
  2. Clique em Gerar/Importar.
  3. Na tela Criar um certificado, escolha os seguintes valores:
    • Método de Criação de Certificado: Importação.
    • Nome do certificado: UwpSigningCert
    • Carregar arquivo de certificado: UwpSigningCert.pfx
    • Descriptografar certificado: se o seu certificado estiver protegido por senha, forneça-a no campo Senha.
  4. Clique em Criar.

Observação

Esse certificado autoassinado não será aceito como confiável pelo Windows, a menos que tenha sido importado e aceito como confiável por um administrador. Mantenha todos os certificados seguros, incluindo os autoassinados.

Configurar as políticas de acesso para o Key Vault

Você poderá controlar quem tem acesso ao conteúdo do Key Vault usando as políticas de acesso. As políticas de acesso ao Key Vault concedem permissões separadamente a chaves, segredos e certificados. Você pode conceder a um usuário o acesso apenas às chaves e não aos segredos. As permissões de acesso para chaves, segredos e certificados são gerenciadas no nível do cofre. Para obter mais informações, confira Segurança do Azure Key Vault.

Observação

Quando você cria um Key Vault em uma assinatura do Azure, ele é automaticamente associado ao locatário do Azure Active Directory da assinatura. Qualquer pessoa que tentar gerenciar ou recuperar conteúdo de um Key Vault deverá ser autenticada pelo Azure AD.

  1. Nas páginas de propriedades do Key Vault, selecione Políticas da acesso.
  2. Selecione + Adicionar política de acesso.
  3. Clique na lista suspensa Permissões de Certificado e marque as caixas Obter e Lista em Operações do Certificate Management.
  4. Clique na lista suspensa Permissões do Segredo e marque as caixas Obter e Lista em Operações de Gerenciamento de Segredos.
  5. Clique em Selecionar entidade de segurança, procure o usuário cujo acesso você está permitindo e clique em Selecionar.
  6. Clique em Adicionar.
  7. Não se esqueça de salvar as alterações clicando em Salvar.

Observação

Permitir acesso direto a um cofre de chaves aos usuários não é recomendável. O ideal é que os usuários sejam adicionados a um grupo do Azure AD, que, por sua vez, recebe acesso ao cofre de chaves.

Selecionar um certificado do Key Vault no Visual Studio

O assistente Criar pacotes do aplicativo no Visual Studio permite que você escolha o certificado que será usado para assinar o pacote do aplicativo. Você poderá escolher o certificado de assinatura do pacote por meio do Azure Key Vault. Você deverá fornecer o URI do Key Vault que contém o certificado e a conta Microsoft autenticada no Visual Studio deverá ter as permissões corretas para acessá-lo.

  1. Abra o projeto do aplicativo UWP ou o desktop do projeto de empacotamento de aplicativo do Windows no Visual Studio.
  2. Selecione Publicar ->Pacote ->Criar pacotes de aplicativos... para abrir o assistente Criar Pacotes de Aplicativos.
  3. Na página Selecionar método de distribuição, selecione Sideload.
  4. Na página Selecionar método de assinatura, clique em Selecionar do Azure Key Vault....
  5. Depois que a caixa de diálogo Selecionar um certificado do Azure Key Vault for exibida, use o seletor de conta a fim de escolher a conta para a qual você configurou uma política de acesso.
  6. Insira o URI do Key Vault. O URI pode ser encontrado na página Visão geral do Key Vault e é identificado pelo Nome DNS.
  7. Clique no botão Exibir metadados.
  8. Depois que o carregamento dos certificados tiver terminado, selecione o certificado desejado na lista (por exemplo, UwpSigningCert).
  9. Clique em OK.

Descriptografar o certificado com uma senha do Azure Key Vault

Se você estiver usando um certificado local protegido por senha (.pfx) para assinar o pacote do aplicativo, poderá ser difícil gerenciar a senha usada para descriptografá-lo. Ao importar o certificado por meio do assistente Criar pacotes do aplicativo, será solicitado que você insira a senha manualmente. Como alternativa, há a opção de escolher a senha do Azure Key Vault.

  1. Abra o projeto do aplicativo UWP ou o desktop do projeto de empacotamento de aplicativo do Windows no Visual Studio.
  2. Selecione Publicar ->Pacote ->Criar pacotes de aplicativos... para abrir o assistente Criar Pacotes de Aplicativos.
  3. Na página Selecionar método de distribuição, selecione Sideload.
  4. Na página Selecionar método de assinatura, clique em Selecionar do arquivo...
  5. Depois que a caixa de diálogo Certificado protegido por senha for exibida, clique em Selecione senha do Key Vault.
  6. Depois que a caixa de diálogo Selecionar senha do Azure Key Vault for exibida, use o seletor de conta a fim de escolher a conta para a qual você configurou uma política de acesso.
  7. Insira o URI do Key Vault. O URI pode ser encontrado na página Visão geral do Key Vault e é identificado pelo Nome DNS.
  8. Clique no botão Exibir metadados.
  9. Depois que o carregamento das senhas tiver terminado, selecione a senha desejada na lista (por exemplo, UwpSigningCertPassword).
  10. Clique em OK.

Permitir a assinatura em cenários de CI/CD

Para permitir a assinatura em cenários de CI/CD, você precisa configurar seu pipeline para usar o DefaultAzureCredential para autenticar com o Azure Key Vault. O DefaultAzureCredential tentará usar a identidade do agente de pipeline para acessar o Key Vault se ele tiver as permissões adequadas. Como alternativa, você pode especificar uma entidade de serviço ou uma identidade gerenciada a ser usada para autenticação.