Freigeben über


Erste Schritte mit Azure Key Vault-Schlüsseln in JavaScript

In diesem Artikel erfahren Sie, wie Sie mithilfe der Clientbibliothek für Azure Key Vault-Schlüssel für JavaScript eine Verbindung mit Azure Key Vault herstellen. Sobald die Verbindung hergestellt wurde, kann Ihr Code mit Schlüsseln im Tresor arbeiten.

API-Referenz | Paket (npm) | Quellcode der Bibliothek | Beispiele | Feedback geben

Voraussetzungen

Einrichten des Projekts

  1. Öffnen Sie eine Eingabeaufforderung und wechseln Sie in ihren Projektordner. Ändern Sie YOUR-DIRECTORY in den Ordnernamen:

    cd YOUR-DIRECTORY
    
  2. Wenn Sie noch keine package.json-Datei in Ihrem Verzeichnis haben, initialisieren Sie das Projekt, um die Datei zu erstellen:

    npm init -y
    
  3. Installieren Sie die Clientbibliothek für Azure Key Vault-Schlüssel für JavaScript:

    npm install @azure/keyvault-keys
    
  4. Wenn Sie kennwortlose Verbindungen mit Microsoft Entra ID verwenden möchten, installieren Sie die Azure Identity-Clientbibliothek für JavaScript:

    npm install @azure/identity
    

Autorisieren des Zugriffs und Herstellen einer Verbindung mit Key Vault

Die Microsoft Entra-ID stellt die sicherste Verbindung bereit, indem die Verbindungsidentität (verwaltete Identität) verwaltet wird. Mit dieser kennwortlosen Funktionalität können Sie eine Anwendung entwickeln, für die keine im Code gespeicherten Schlüssel erforderlich sind.

Bevor Sie Azure programmgesteuert authentifizieren, um Azure Key Vault-Schlüssel zu verwenden, stellen Sie sicher, dass Sie Ihre Umgebung einrichten.

Diagramm des Azure SDK für den JavaScript-Anmeldeinformationsfluss.

Ein Entwickler sollte die Azure CLI installieren und sich interaktiv mit dem Befehl az login bei Azure anmelden, bevor er „DefaultAzureCredential“ im Code verwendet.

az login

Erstellen Ihrer Anwendung

Während Sie Ihre Anwendung erstellen, interagiert Ihr Code mit zwei Arten von Ressourcen:

  • KeyVaultKey, der Folgendes umfasst:
    • ID, Name und Wert.
    • Zulässige Vorgänge.
    • Typ, z. B. EC, EC-HSM, RSA, RSA-HSM, oct. oct-HSM
    • Eigenschaften als Schlüsseleigenschaften
  • KeyProperties, die die Metadaten der Schlüssel enthalten, z. B. Name, Version, Tags, Ablaufdaten und ob sie aktiviert sind.

Wenn Sie den Wert des KeyVaultKey benötigen, verwenden Sie Methoden, die den KeyVaultKey zurückgeben:

Objektmodell

Die Clientbibliothek für Azure Key Vault-Schlüssel für JavaScript umfasst die folgenden Clients:

  • KeyClient: Das KeyClient-Objekt ist das oberste Objekt im SDK. Mit diesem Client können Sie Schlüsselverwaltungsaufgaben wie Erstellen, Rotieren, Löschen und Auflisten der Schlüssel ausführen.
  • CryptographyClient ermöglicht Es Ihnen, Schlüssel zu verschlüsseln, zu entschlüsseln, zu signieren, zu überprüfen, umzuschließen und aufzuheben.

Konzeptionelles Diagramm, das die Beziehung innerhalb der Clientbibliothek zwischen KeyClient und CryptographyClient zeigt.

Erstellen eines KeyClient-Objekts

Nachdem Ihre lokale Umgebung und die Key Vault-Autorisierung eingerichtet wurden, erstellen Sie eine JavaScript-Datei, die die @azure/Identität und die @azure/keyvault-keys-Pakete enthält. Erstellen Sie Anmeldeinformationen, z. B. DefaultAzureCredential, um kennwortlose Verbindungen mit Ihrem Tresor zu implementieren. Verwenden Sie diese Anmeldeinformationen, um sich bei einem KeyClient-Objekt zu authentifizieren.

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

Erstellen eines CryptographyClient-Objekts

Das CryptographyClient-Objekt ist das einsatzfähige Objekt im SDK, das Ihren Schlüssel verwendet, um Aktionen wie Verschlüsseln, Entschlüsseln, Signieren und Verifizieren sowie Verpacken und Entpacken auszuführen.

Verwenden Sie Ihre Identitätsanmeldeinformationen aus Ihrem KeyClient zusammen mit dem Schlüsselnamen, um einen CryptographyClient zum Ausführen von Vorgängen zu erstellen.

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

Siehe auch

Nächste Schritte