Partilhar via


Comece a usar as chaves do Azure Key Vault em JavaScript

Este artigo mostra-lhe como se ligar ao Azure Key Vault utilizando a biblioteca cliente Azure Key Vault Keys para JavaScript. Uma vez conectado, o seu código pode operar em chaves no armazém.

API reference | Package (npm) | Código-fonte da biblioteca | Samples | Dá feedback

Pré-requisitos

Configure 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 package.json arquivo no diretório, inicialize o projeto para criar o arquivo:

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

    npm install @azure/keyvault-keys
    
  4. Se quiser usar ligações sem palavra-passe usando o Microsoft Entra ID, instale a biblioteca cliente Azure Identity para JavaScript:

    npm install @azure/identity
    

Autorizar o acesso e ligar-se ao Key Vault

Microsoft Entra ID proporciona a ligação mais segura ao gerir a identidade da ligação (identidade gerida). Esta funcionalidade sem palavra-passe permite-lhe desenvolver uma aplicação que não requer quaisquer chaves armazenadas no código.

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

Diagrama de fluxo de credenciais do SDK do Azure para JavaScript.

Um programador deve instalar CLI do Azure e iniciar sessão interativamente com o comando az login para iniciar sessão em Azure antes de usar o código DefaultAzureCredential.

az login

Compilar a aplicação

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

  • KeyVaultKey, que inclui:
    • Identificação, 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 o nome, versão, etiquetas, dados de expiração e se está ativada.

Se precisar do valor da KeyVaultKey, use métodos que devolvam a KeyVaultKey:

Modelo de objeto

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

  • KeyClient: O objeto KeyClient é o objeto superior no SDK. Este cliente permite-lhe realizar tarefas de gestão de chaves, como criar, rodar, eliminar e listar as chaves.
  • O CryptoClient permite-lhe encriptar, desencriptar, assinar, verificar, envolver e desembrulhar chaves.

Diagrama conceptual que mostra a relação dentro da biblioteca cliente entre o KeyClient e o CryptographyClient.

Criar um objeto KeyClient

Assim que o ambiente local e a autorização de Key Vault estiverem configurados, crie um ficheiro JavaScript, que inclua os pacotes @azure/identity e @azure/keyvault-keys. Crie uma credencial, como DefaultAzureCredential, para implementar conexões sem palavra-passe ao seu repositório. 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 a sua chave para realizar ações como encriptar, desencriptar, assinar e verificar, envolver e desempachar.

Use a sua credencial de identidade do seu KeyClient, juntamente com o nome da chave, para criar um CryptographyClient para realizar 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óximos passos