Quickstart: Biblioteca de clientes certificados Azure Key Vault para JavaScript (versão 4)Quickstart: Azure Key Vault certificate client library for JavaScript (version 4)

Começa com a biblioteca de clientes do Certificado Azure Key Vault para o JavaScript.Get started with the Azure Key Vault certificate client library for JavaScript. Azure Key Vault é um serviço de nuvem que fornece uma loja segura para certificados.Azure Key Vault is a cloud service that provides a secure store for certificates. Pode armazenar chaves, palavras-passe, certificados e outros segredos em segurança.You can securely store keys, passwords, certificates, and other secrets. Os cofres de chaves do Azure podem ser criados e geridos através do portal do Azure.Azure key vaults may be created and managed through the Azure portal. Neste arranque rápido, aprende-se a criar, recuperar e apagar certificados de um cofre de chaves Azure utilizando a biblioteca de clientes JavaScriptIn this quickstart, you learn how to create, retrieve, and delete certificates from an Azure key vault using the JavaScript client library

Recursos da biblioteca do cliente Key Vault:Key Vault client library resources:

Documentação de | referência da API Código fonte da biblioteca | Pacote (npm)API reference documentation | Library source code | Package (npm)

Para obter mais informações sobre o Cofre-Chave e certificados, consulte:For more information about Key Vault and certificates, see:

Pré-requisitosPrerequisites

Este quickstart pressupõe que está a executar O Azure CLI.This quickstart assumes you are running Azure CLI.

Iniciar sessão no AzureSign in to Azure

  1. Execute o comando login.Run the login command.

    az login
    

    Se o CLI conseguir abrir o seu navegador predefinido, fá-lo-á e carregará uma página de inscrição do Azure.If the CLI can open your default browser, it will do so and load an Azure sign-in page.

    Caso contrário, abra uma página do navegador https://aka.ms/devicelogin e introduza o código de autorização exibido no seu terminal.Otherwise, open a browser page at https://aka.ms/devicelogin and enter the authorization code displayed in your terminal.

  2. Inicie sessão com as credenciais da sua conta no browser.Sign in with your account credentials in the browser.

Criar nova aplicação de Node.jsCreate new Node.js application

Em seguida, crie uma aplicação Node.js que pode ser implantada na Cloud.Next, create a Node.js application that can be deployed to the Cloud.

  1. Numa concha de comando, crie uma pasta key-vault-node-app chamada:In a command shell, create a folder named key-vault-node-app:
mkdir key-vault-node-app
  1. Mude para o recém-criado diretório de aplicações de nó-chave-cofre-node e executar o comando 'init' para inicializar o projeto do nó:Change to the newly created key-vault-node-app directory, and run 'init' command to initialize node project:
cd key-vault-node-app
npm init -y

Instalar pacotes de cofre de chavesInstall Key Vault packages

A partir da janela da consola, instale a biblioteca de certificados Azure Key Vault para Node.js.From the console window, install the Azure Key Vault certificates library for Node.js.

npm install @azure/keyvault-certificates

Instale o pacote azure.identity para autenticar num Cofre de ChavesInstall the azure.identity package to authenticate to a Key Vault

npm install @azure/identity

Definir variáveis de ambienteSet environment variables

Esta aplicação está a usar o nome do cofre como uma variável ambiental chamada KEY_VAULT_NAME .This application is using key vault name as an environment variable called KEY_VAULT_NAME.

WindowsWindows

set KEY_VAULT_NAME=<your-key-vault-name>

Windows PowerShellWindows PowerShell

$Env:KEY_VAULT_NAME="<your-key-vault-name>"

macOS ou LinuxmacOS or Linux

export KEY_VAULT_NAME=<your-key-vault-name>

Conceder acesso ao seu cofre chaveGrant access to your key vault

Crie uma política de acesso para o cofre-chave que concede permissões de certificados à sua conta de utilizadorCreate an access policy for your key vault that grants certificate permissions to your user account

az keyvault set-policy --name <YourKeyVaultName> --upn user@domain.com --certificate-permissions delete get list create purge

Exemplos de códigoCode examples

As amostras de código abaixo mostrar-lhe-ão como criar um cliente, definir um certificado, recuperar um certificado e apagar um certificado.The code samples below will show you how to create a client, set a certificate, retrieve a certificate, and delete a certificate.

Configurar o quadro de aplicaçõesSet up the app framework

  1. Crie um novo ficheiro de texto e guarde-o como 'index.js'Create new text file and save it as 'index.js'

  2. Adicionar chamadas necessárias para carregar módulos Azure e Node.jsAdd require calls to load Azure and Node.js modules

  3. Criar a estrutura para o programa, incluindo o manuseamento básico de exceçõesCreate the structure for the program, including basic exception handling

const readline = require('readline');

function askQuestion(query) {
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout,
    });

    return new Promise(resolve => rl.question(query, ans => {
        rl.close();
        resolve(ans);
    }))
}

async function main() {
    
}

main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));

Adicionar diretivasAdd directives

Adicione as seguintes diretivas ao topo do seu código:Add the following directives to the top of your code:

const { DefaultAzureCredential } = require("@azure/identity");
const { CertificateClient } = require("@azure/keyvault-certificates");

Autenticar e criar um clienteAuthenticate and create a client

Neste arranque rápido, o utilizador com sessão é utilizado para autenticar o cofre de chaves, que é o método preferido para o desenvolvimento local.In this quickstart, logged in user is used to authenticate to key vault, which is preferred method for local development. Para aplicações implantadas no Azure, a identidade gerida deve ser atribuída ao Serviço de Aplicações ou Máquina Virtual, para obter mais informações, consulte a Visão Geral da Identidade Gerida.For applications deployed to Azure, managed identity should be assigned to App Service or Virtual Machine, for more information, see Managed Identity Overview.

Por exemplo, o nome do seu cofre-chave é expandido para o cofre uri chave, no formato "https:// <your-key-vault-name> .vault.azure.net".In below example, the name of your key vault is expanded to the key vault URI, in the format "https://<your-key-vault-name>.vault.azure.net". Este exemplo está a utilizar a classe 'DefaultAzureCredential)' da Azure Identity Library,que permite utilizar o mesmo código em diferentes ambientes com diferentes opções para fornecer identidade.This example is using 'DefaultAzureCredential()' class from Azure Identity Library, which allows to use the same code across different environments with different options to provide identity. Mais informações sobre a autenticação no cofre da chave, consulte o Guia do Desenvolvedor.Fore more information about authenticating to key vault, see Developer's Guide.

Adicione o seguinte código à função 'main()»Add the following code to 'main()' function

const keyVaultName = process.env["KEY_VAULT_NAME"];
const KVUri = "https://" + keyVaultName + ".vault.azure.net";

const credential = new DefaultAzureCredential();
const client = new Certificate(KVUri, credential);

Guardar um certificadoSave a certificate

Agora que a sua candidatura é autenticada, pode colocar um certificado no seu keyvault utilizando o método startCreateCertificate Isto requer um nome para o certificado e a política decertificados com propriedades da política de certificadosNow that your application is authenticated, you can put a certificate into your keyvault using the beginCreateCertificate method This requires a name for the certificate and the certificate policycertificate policy with certificate policy properties

const certificatePolicy = {
  issuerName: "Self",
  subject: "cn=MyCert"
};
const createPoller = await client.beginCreateCertificate(certificateName, certificatePolicy);
const certificate = await poller.pollUntilDone();

Nota

Se existir o nome do certificado, o código acima criará uma nova versão desse certificado.If certificate name exists, above code will create new version of that certificate.

Recuperar um certificadoRetrieve a certificate

Agora pode recuperar o valor previamente definido com o método getCertificate.You can now retrieve the previously set value with the getCertificate method.

const retrievedCertificate = await client.getCertificate(certificateName);

Apagar um certificadoDelete a certificate

Finalmente, vamos apagar e limpar o certificado do seu cofre-chave com os métodos [startDeleteCertificate] https://docs.microsoft.com/javascript/api/@azure/keyvault-certificates/certificateclient?#beginDeleteCertificate_string__BeginDeleteCertificateOptions_) e purgeDeletedCertificate.Finally, let's delete and purge the certificate from your key vault with the [beginDeleteCertificate]https://docs.microsoft.com/javascript/api/@azure/keyvault-certificates/certificateclient?#beginDeleteCertificate_string__BeginDeleteCertificateOptions_) and purgeDeletedCertificate methods.

const deletePoller = await client.beginDeleteCertificate(certificateName);
await deletePoller.pollUntilDone();
await client.purgeDeletedCertificate(certificateName);

Código de exemploSample code

const { DefaultAzureCredential } = require("@azure/identity");
const { CertificateClient } = require("@azure/keyvault-certificates");

const readline = require('readline');

function askQuestion(query) {
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout,
    });

    return new Promise(resolve => rl.question(query, ans => {
        rl.close();
        resolve(ans);
    }))
}

async function main() {

  const string certificateName = "myCertificate";
  const keyVaultName = process.env["KEY_VAULT_NAME"];
  const KVUri = "https://" + keyVaultName + ".vault.azure.net";

  const credential = new DefaultAzureCredential();
  const client = new CertificateClient(KVUri, credential);

  console.log("Creating a certificate in " + keyVaultName + " called '" + certificateName +  "` ...");
  const certificatePolicy = {
  issuerName: "Self",
  subject: "cn=MyCert"
  };
  const createPoller = await client.beginCreateCertificate(certificateName, certificatePolicy);
  const certificate = await poller.pollUntilDone();

  console.log("Done.");

  console.log("Retrieving your certificate from " + keyVaultName + ".");

  const retrievedCertificate = await client.getCertificate(certificateName);

  console.log("Your certificate version is '" + retrievedCertificate.properties.version + "'.");

  console.log("Deleting your certificate from " + keyVaultName + " ...");
  const deletePoller = await client.beginDeleteCertificate(certificateName);
  await deletePoller.pollUntilDone();
  console.log("Done.");
  
  console.log("Purging your certificate from {keyVaultName} ...");
  await client.purgeDeletedCertificate(certificateName);
  
}

main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));

Testar e verificarTest and verify

Execute os seguintes comandos para executar a aplicação.Execute the following commands to run the app.

npm install
npm index.js

É apresentada uma variação da seguinte saída:A variation of the following output appears:

Creating a certificate in mykeyvault called 'myCertificate' ... done.
Retrieving your certificate from mykeyvault.
Your certificate version is '8532359bced24e4bb2525f2d2050738a'.
Deleting your certificate from mykeyvault ... done
Purging your certificate from mykeyvault ... done 

Passos seguintesNext steps

Neste quickstart, criou um cofre chave, guardou um certificado e recuperou o certificado.In this quickstart, you created a key vault, stored a certificate, and retrieved that certificate. Para saber mais sobre o Key Vault e como integrá-lo com as suas aplicações, continue para os artigos abaixo.To learn more about Key Vault and how to integrate it with your applications, continue on to the articles below.