Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie mithilfe der Clientbibliothek für Azure Key Vault-Schlüssel in JavaScript eine Verbindung mit Azure Key Vault herstellen. Sobald die Verbindung hergestellt wurde, kann Ihr Code mit Schlüsseln im Tresor arbeiten.
API-Referenz | Package (npm) | Library Quellcode | Beispiele | Feedback geben
Voraussetzungen
- Ein Azure-Abonnement – create one for free.
- Azure Key VaultInstanz. Stellen Sie sicher, dass Sie über die entsprechende Azure RBAC-Rolle verfügen, um die spezifischen Aufgaben im Code auszuführen.
- Node.js Version LTS
Einrichten des Projekts
Öffnen Sie eine Eingabeaufforderung und wechseln Sie in ihren Projektordner. Ändern Sie
<your-directory>in den Ordnernamen:cd <your-directory>Wenn Sie noch keine
package.json-Datei in Ihrem Verzeichnis haben, initialisieren Sie das Projekt, um die Datei zu erstellen:npm init -yInstallieren Sie die Azure Key Vault Schlüssel-Clientbibliothek für JavaScript:
npm install @azure/keyvault-keysWenn 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
Microsoft Entra ID bietet die sicherste Verbindung, indem die Verbindungsidentität verwaltet wird (managed Identity). 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.
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 Azure Key Vault Schlüssel-Clientbibliothek 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.
Erstellen eines KeyClient-Objekts
Nachdem Ihre lokale Umgebung und Key Vault Autorisierung eingerichtet wurden, erstellen Sie eine JavaScript-Datei, die die pakete @azure/identity und die @azure/keyvault-keys 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);
}