Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se dozvíte, jak se připojit k Azure Key Vault pomocí klientské knihovny klíčů Azure Key Vault pro JavaScript. Po připojení může kód pracovat s klíči v trezoru.
referenční informace k API | Balíček (npm) | Knihovní zdrojový kód | Ukázky | Poskytněte zpětnou vazbu
Požadavky
- Předplatné Azure – vytvořte si ho zdarma.
- instance Azure Key Vault. Ujistěte se, že máte přiřazenou odpovídající Azure roli RBAC k provádění konkrétních úloh v kódu.
- Node.js verze LTS
Nastavení projektu
Otevřete příkazový řádek a přejděte do složky projektu. Změňte
<your-directory>název složky:cd <your-directory>Pokud nemáte soubor
package.jsonve svém adresáři, inicializujte projekt a vytvořte soubor.npm init -yNainstalujte klientskou knihovnu Azure Key Vault klíčů pro JavaScript:
npm install @azure/keyvault-keysPokud chcete používat připojení bez hesla pomocí Microsoft Entra ID, nainstalujte klientskou knihovnu Azure Identity pro JavaScript:
npm install @azure/identity
Autorizace přístupu a připojení k Key Vault
Microsoft Entra ID poskytuje nejbezpečnější připojení tím, že spravuje identitu připojení (managed identity). Tato funkce bez hesla umožňuje vyvíjet aplikaci, která nevyžaduje žádné klíče uložené v kódu.
Před programovým ověřováním v Azure pro použití klíčů Azure Key Vault se ujistěte, že jste nastavili prostředí.
Sestavení aplikace
Při vytváření aplikace kód komunikuje se dvěma typy prostředků:
-
KeyVaultKey, který zahrnuje:
- ID, název a hodnota
- Povolené operace.
- Typ jako
EC,EC-HSM,RSA,RSA-HSM,oct,oct-HSM. - Vlastnosti jako KeyProperties
- KeyProperties, které zahrnují metadata klíčů, jako je název, verze, značky, data vypršení platnosti a jestli jsou povolená.
Pokud potřebujete hodnotu KeyVaultKey, použijte metody, které vrací klíč KeyVaultKey:
Objektový model
Klientská knihovna klíčů Azure Key Vault pro JavaScript zahrnuje následující klienty:
- KeyClient: Objekt KeyClient je hlavním objektem v sadě SDK. Tento klient umožňuje provádět úlohy správy klíčů, jako jsou vytváření, obměna, odstraňování a výpis klíčů.
- CryptographyClient umožňuje šifrovat, dešifrovat, podepsat, ověřit, zabalit a rozbalit klíče.
Vytvoření objektu KeyClient
Po nastavení místního prostředí a autorizace Key Vault vytvořte soubor JavaScriptu, který zahrnuje balíčky @azure/identity a @azure/keyvault-keys. Vytvořte přihlašovací údaje, například DefaultAzureCredential, pro implementaci připojení bez hesla k vašemu trezoru. Pomocí tohoto pověření se ověřte pomocí objektu KeyClient .
// 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");
Vytvoření objektu CryptographyClient
Objekt CryptographyClient je provozním objektem v sadě SDK pomocí klíče k provádění akcí, jako je šifrování, dešifrování, podepsání a ověření, zabalení a rozbalení.
Pomocí přihlašovacích údajů identity z KeyClient spolu s názvem klíče vytvořte kryptografický klient k provádění operací.
// 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);
}