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 voor Azure Key Vault-sleutels voor JavaScript. Nadat u verbinding hebt gemaakt, kan uw code worden uitgevoerd op sleutels in de kluis.

Broncodevoorbeelden van API-referentiepakket | (npm) | Library | geven feedback |

Vereisten

Uw project instellen

  1. Open een opdrachtprompt en ga naar de projectmap. Ga naar YOUR-DIRECTORY de 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 clientbibliotheek voor Azure Key Vault-sleutels voor JavaScript:

    npm install @azure/keyvault-keys
    
  4. Als u wachtwoordloze verbindingen wilt gebruiken met behulp van 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 (beheerde 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 bij Azure voor het gebruik van Azure Key Vault-sleutels, moet u ervoor zorgen dat u uw omgeving instelt.

Diagram of Azure SDK for JavaScript credential flow.

Een ontwikkelaar moet Azure CLI installeren en zich interactief aanmelden met de az login-opdracht om u aan te melden bij Azure voordat de DefaultAzureCredential in code wordt 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 KeyProperties
  • 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 Azure Key Vault-clientbibliotheek met 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.

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

Een KeyClient-object maken

Zodra uw lokale omgeving en Key Vault-autorisatie zijn ingesteld, maakt u een JavaScript-bestand, dat de @azure/identiteit en de pakketten @azure/keyvault-keys bevat. 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