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 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
- Ein Azure-Abonnement – kostenlos erstellen.
- Azure Key Vault-Instanz . Stellen Sie sicher, dass Ihnen die entsprechende Azure RBAC-Rolle zugewiesen ist, 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-DIRECTORYin den Ordnernamen:cd YOUR-DIRECTORYWenn Sie noch keine
package.json-Datei in Ihrem Verzeichnis haben, initialisieren Sie das Projekt, um die Datei zu erstellen:npm init -yInstallieren Sie die Clientbibliothek für Azure Key Vault-Schlüssel 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
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.
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.
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);
}