Kom igång med Azure Key Vault-nycklar i JavaScript

Den här artikeln visar hur du ansluter till Azure Key Vault med hjälp av Klientbiblioteket för Azure Key Vault-nycklar för JavaScript. När koden är ansluten kan den köras på nycklar i valvet.

API-referenspaket (npm) | Exempel på källkod | | för bibliotek Ge feedback |

Förutsättningar

Konfigurera projektet

  1. Öppna en kommandotolk och ändra till projektmappen. Ändra YOUR-DIRECTORY till mappnamnet:

    cd YOUR-DIRECTORY
    
  2. Om du inte redan har en package.json fil i katalogen initierar du projektet för att skapa filen:

    npm init -y
    
  3. Installera Klientbiblioteket för Azure Key Vault-nycklar för JavaScript:

    npm install @azure/keyvault-keys
    
  4. Om du vill använda lösenordslösa anslutningar med hjälp av Microsoft Entra-ID installerar du Azure Identity-klientbiblioteket för JavaScript:

    npm install @azure/identity
    

Auktorisera åtkomst och ansluta till Key Vault

Microsoft Entra-ID:t ger den säkraste anslutningen genom att hantera anslutningsidentiteten (hanterad identitet). Med den här lösenordslösa funktionen kan du utveckla ett program som inte kräver några nycklar som lagras i koden.

Innan du autentiserar programmatiskt till Azure för att använda Azure Key Vault-nycklar måste du konfigurera din miljö.

Diagram of Azure SDK for JavaScript credential flow.

En utvecklare bör installera Azure CLI och logga in interaktivt med kommandot az login för att logga in på Azure innan du använder StandardAzureCredential i koden.

az login

Skapa ditt program

När du skapar ditt program interagerar koden med två typer av resurser:

  • KeyVaultKey, som innehåller:
    • ID, namn och värde.
    • Tillåtna åtgärder.
    • Typ som EC, EC-HSM, RSA, RSA-HSM, , oct. oct-HSM
    • Egenskaper som KeyProperties
  • KeyProperties, som innehåller nycklarnas metadata, till exempel dess namn, version, taggar, förfallodata och om de är aktiverade.

Om du behöver värdet för KeyVaultKey använder du metoder som returnerar KeyVaultKey:

Objektmodell

Klientbiblioteket för Azure Key Vault-nycklar för JavaScript innehåller följande klienter:

  • KeyClient: KeyClient-objektet är det översta objektet i SDK:et. Med den här klienten kan du utföra viktiga hanteringsuppgifter som att skapa, rotera, ta bort och lista nycklarna.
  • Med CryptographyClient kan du kryptera, dekryptera, signera, verifiera, omsluta och packa upp nycklar.

Conceptual diagram showing the relationship within the client library between the KeyClient and CryptographyClient.

Skapa ett KeyClient-objekt

När din lokala miljö och Key Vault-auktorisering har konfigurerats skapar du en JavaScript-fil som innehåller paketen @azure/identity och @azure/keyvault-keys. Skapa en autentiseringsuppgift, till exempel DefaultAzureCredential, för att implementera lösenordslösa anslutningar till valvet. Använd den autentiseringsuppgiften för att autentisera med ett KeyClient-objekt .

// 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");

Skapa ett CryptographyClient-objekt

CryptographyClient-objektet är det operativa objektet i SDK:t och använder din nyckel för att utföra åtgärder som att kryptera, dekryptera, signera och verifiera, omsluta och packa upp.

Använd dina identitetsautentiseringsuppgifter från Din KeyClient, tillsammans med nyckelnamnet, för att skapa en CryptographyClient för att utföra åtgärder.

// 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);
}

Se även

Nästa steg