Delen via


Aan de slag met Azure Key Vault sleutels in JavaScript

In dit artikel wordt beschreven hoe u verbinding maakt met Azure Key Vault met behulp van de clientbibliotheek met Azure Key Vault sleutels voor JavaScript. Nadat u verbinding hebt gemaakt, kan uw code met sleutels in de kluis werken.

API-verwijzing | Package (npm) | Library-broncode | Voorbeelden | Feedback geven

Vereiste voorwaarden

Stel uw project in

  1. Open een opdrachtprompt en ga naar de projectmap. Wijzig <your-directory> naar uw mapnaam:

    cd <your-directory>
    
  2. Als u nog geen bestand in uw map hebt package.json , initialiseert u het project om het bestand te maken:

    npm init -y
    
  3. Installeer de Azure Key Vault clientbibliotheek voor sleutels voor JavaScript.

    npm install @azure/keyvault-keys
    
  4. Als u verbindingen zonder wachtwoord wilt gebruiken met Microsoft Entra ID, installeert u de Azure Identity-clientbibliotheek voor JavaScript:

    npm install @azure/identity
    

Toegang autoriseren en verbinding maken met Key Vault

Microsoft Entra ID biedt de veiligste verbinding door de verbindingsidentiteit (managed identiteit) te beheren. Met deze functionaliteit zonder wachtwoord kunt u een toepassing ontwikkelen waarvoor geen sleutels zijn vereist die zijn opgeslagen in de code.

Voordat u programmatisch verificatie uitvoert voor Azure om Azure Key Vault sleutels te gebruiken, moet u uw omgeving instellen.

Diagram van Azure SDK voor JavaScript-referentiestroom.

Een ontwikkelaar moet Azure CLI installeren en zich interactief aanmelden met de opdracht az login om u aan te melden bij Azure voordat u de DefaultAzureCredential in code gebruikt.

az login

Uw toepassing bouwen

Wanneer u uw toepassing bouwt, communiceert uw code met twee typen resources:

  • KeyVaultKey, waaronder:
    • Id, naam en waarde.
    • Toegestane bewerkingen.
    • Type zoals EC, EC-HSM, RSA, RSA-HSM, oct, oct-HSM.
    • Eigenschappen als SleutelEigenschappen
  • KeyProperties, waaronder de metagegevens van de sleutels, zoals de naam, versie, tags, vervaldatumgegevens en of deze is ingeschakeld.

Als u de waarde van de KeyVaultKey nodig hebt, gebruikt u methoden die de KeyVaultKey retourneren:

Objectmodel

De clientbibliotheek met Azure Key Vault sleutels voor JavaScript bevat de volgende clients:

  • KeyClient: Het KeyClient-object is het bovenste object in de SDK. Met deze client kunt u belangrijke beheertaken uitvoeren, zoals het maken, draaien, verwijderen en vermelden van de sleutels.
  • Met CryptographyClient kunt u sleutels versleutelen, ontsleutelen, ondertekenen, verifiëren, verpakken en uitpakken.

Conceptueel diagram met de relatie in de clientbibliotheek tussen KeyClient en CryptographyClient.

Een KeyClient-object maken

Zodra uw lokale omgeving en Key Vault autorisatie zijn ingesteld, maakt u een JavaScript-bestand met daarin de @azure/identity en de @azure/keyvault-keys-pakketten. Maak een referentie, zoals de DefaultAzureCredential, om wachtwoordloze verbindingen met uw kluis te implementeren. Gebruik deze referentie om te verifiëren met een KeyClient-object .

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

Een CryptographyClient-object maken

Het CryptoyClient-object is het operationele object in de SDK, waarbij u uw sleutel gebruikt om acties uit te voeren, zoals versleutelen, ontsleutelen, ondertekenen en verifiëren, verpakken en uitpakken.

Gebruik uw identiteitsreferentie van uw KeyClient, samen met de sleutelnaam, om een CryptographyClient te maken om bewerkingen uit te voeren.

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

Zie ook

Volgende stappen