Compartilhar via


Introdução às chaves de Azure Key Vault no JavaScript

Este artigo mostra como se conectar a Azure Key Vault usando a biblioteca de clientes de chaves Azure Key Vault para JavaScript. Uma vez conectado, seu código pode operar nas chaves do cofre.

Referência da API | Pacote (npm) | Código-fonte da biblioteca | Exemplos | Enviar feedback

Pré-requisitos

Configurar o seu projeto

  1. Abra um prompt de comando e mude para a pasta do projeto. Altere <your-directory> para o nome da pasta:

    cd <your-directory>
    
  2. Se você ainda não tiver um arquivo package.json no diretório, inicialize o projeto para criar o arquivo:

    npm init -y
    
  3. Instale a biblioteca de clientes de chaves Azure Key Vault para JavaScript:

    npm install @azure/keyvault-keys
    
  4. Se você quiser usar conexões sem senha usando Microsoft Entra ID, instale a biblioteca de clientes do Azure Identity para JavaScript:

    npm install @azure/identity
    

Autorizar o acesso e conectar-se ao Key Vault

Microsoft Entra ID fornece a conexão mais segura gerenciando a identidade de conexão (). Essa funcionalidade sem senha permite que você desenvolva um aplicativo que não exija chaves armazenadas no código.

Antes de autenticar programaticamente no Azure para usar as chaves do Azure Key Vault, certifique-se de configurar seu ambiente.

Diagrama de SDK do Azure para fluxo de credenciais JavaScript.

Um desenvolvedor deve instalar CLI do Azure e entrar interativamente com o comando az login para fazer logon no Azure antes de usar o defaultAzureCredential no código.

az login

Crie seu aplicativo

À medida que você cria seu aplicativo, seu código interage com dois tipos de recursos:

  • KeyVaultKey, que inclui:
    • ID, nome e valor.
    • Operações permitidas.
    • Tipo como EC, , EC-HSM, RSA, RSA-HSM, , oct. oct-HSM
    • Propriedades como KeyProperties
  • KeyProperties, que incluem os metadados das chaves, como seu nome, versão, marcas, dados de expiração e se ele está habilitado.

Se você precisar do valor do KeyVaultKey, use métodos que retornam o KeyVaultKey:

Modelo de objeto

A biblioteca de clientes de chaves Azure Key Vault para JavaScript inclui os seguintes clientes:

  • KeyClient: O objeto KeyClient é o objeto superior no SDK. Esse cliente permite que você execute tarefas de gerenciamento de chaves, como criar, girar, excluir e listar as chaves.
  • CryptographyClient permite criptografar, descriptografar, assinar, verificar, encapsular e desembrulhar chaves.

Diagrama conceitual mostrando a relação dentro da biblioteca de clientes entre o KeyClient e CryptographyClient.

Criar um objeto KeyClient

Depois que seu ambiente local e Key Vault autorização forem configurados, crie um arquivo JavaScript, que inclui os pacotes @azure/identity e os pacotes @azure/keyvault-keys. Crie uma credencial, como DefaultAzureCredential, para implementar conexões sem senha com o seu cofre. Use essa credencial para autenticar com um objeto KeyClient .

// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';  
import { KeyClient } from '@azure/keyvault-keys';  

// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential(); 
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
  );

// Get key
const key = await client.getKey("MyKeyName");

Criar um objeto CryptographyClient

O objeto CryptographyClient é o objeto operacional no SDK, usando sua chave para executar ações como criptografar, descriptografar, assinar e verificar, encapsular e desembrulhar.

Use sua credencial de identidade de seu KeyClient, juntamente com o nome da chave, para criar um CryptographyClient para executar operações.

// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';  
import {
  CryptographyClient,
  KeyClient,
  KnownEncryptionAlgorithms,
  RsaEncryptParameters
} from '@azure/keyvault-keys'; 

// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential(); 
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
  ); 

// Get key
const key = await client.getKey("MyKeyName");

if (key?.name) {

    // get encryption client
    const encryptClient = new CryptographyClient(key, credential);

    // encrypt data
    const encryptParams = { 
        algorithm: KnownEncryptionAlgorithms.RSAOaep256,
        plaintext: Buffer.from("Hello world!")
    }
    const encryptResult = await encryptClient.encrypt(encryptParams);
}

Consulte também

Próximas etapas