Sdílet prostřednictvím


Klientská knihovna Azure Key Vault Key pro JavaScript – verze 4.10.0

Azure Key Vault je služba, která umožňuje šifrovat ověřovací klíče, klíče účtu úložiště, šifrovací klíče dat, soubory .pfx a hesla pomocí zabezpečených klíčů. Pokud se chcete dozvědět více o službě Azure Key Vault, můžete si projít: Co je Azure Key Vault?

Spravovaný HSM služby Azure Key Vault je plně spravovaná cloudová služba kompatibilní s jedním tenantem s jedním tenantem, která umožňuje chránit kryptografické klíče pro cloudové aplikace pomocí ověřených HSM úrovně 140–2 FIPS 3. Pokud chcete získat další informace o spravovaném HSM služby Azure Key Vault, můžete si projít: Co je spravovaný HSM služby Azure Key Vault?

Klient knihovny klíčů služby Azure Key Vault podporuje klíče RSA, klíče EC (Elliptic Curve) a symetrické (osmičkové) klíče při spouštění se spravovaným HSM, z nichž každá má odpovídající podporu v modulech hardwarového zabezpečení (HSM). Nabízí operace pro vytváření, načítání, aktualizaci, odstraňování, mazání, zálohování, obnovení a výpis klíčů a jeho verzí.

Pomocí klientské knihovny pro klíče služby Azure Key Vault v aplikaci Node.js můžete:

  • Vytvářejte klíče pomocí tří teček nebo šifrování RSA, volitelně zazálohované moduly hardwarového zabezpečení (HSM).
  • Import, odstranění a aktualizace klíčů
  • Získejte jeden nebo více klíčů a odstraněných klíčů s jejich atributy.
  • Obnovte odstraněný klíč a obnovte zálohovaný klíč.
  • Získejte verze klíče.

Pomocí klienta kryptografie, který je k dispozici v této knihovně, máte také přístup k:

  • Šifrování
  • Dešifrování
  • Podepisování
  • Ověřující
  • Obtékání klíčů
  • Rozbalení klíčů

Poznámka: Tento balíček se nedá použít v prohlížeči kvůli omezením služby Azure Key Vault. Pokyny najdete v tomto dokumentu.

Klíčové odkazy:

Začínáme

Aktuálně podporovaná prostředí

Požadavky

Nainstalujte balíček

Instalace klientské knihovny klíčů služby Azure Key Vault pomocí npm

npm install @azure/keyvault-keys

Instalace knihovny identit

Klienti Azure Key Vault se ověřují pomocí knihovny identit Azure. Nainstalujte ho i pomocí npm.

npm install @azure/identity

Konfigurace TypeScriptu

Uživatelé TypeScriptu musí mít nainstalované definice typu Node:

npm install @types/node

Musíte také povolit compilerOptions.allowSyntheticDefaultImports ve svém tsconfig.json. Všimněte si, že pokud jste povolili compilerOptions.esModuleInterop, allowSyntheticDefaultImports je ve výchozím nastavení povolená. Další informace najdete v příručce možnosti kompilátoru TypeScriptu.

Klíčové koncepty

  • Klient Key je primární rozhraní pro interakci s metodami rozhraní API souvisejícími s klíči v rozhraní API služby Azure Key Vault z javascriptové aplikace. Po inicializaci poskytuje základní sadu metod, které lze použít k vytváření, čtení, aktualizaci a odstraňování klíčů.
  • Verze klíče je verze klíče ve službě Key Vault. Pokaždé, když uživatel přiřadí hodnotu jedinečnému názvu klíče, vytvoří se nová verze tohoto klíče. Načtení klíče podle názvu vždy vrátí nejnovější přiřazenou hodnotu, pokud není pro dotaz zadána konkrétní verze.
  • obnovitelné odstranění umožňuje službě Key Vault podporovat odstranění a vyprázdnění jako dva samostatné kroky, takže odstraněné klíče se okamžitě neztratí. K tomu dochází jenom v případě, že služba Key Vault obnovitelné odstranění povolená.
  • Zálohování klíče lze vygenerovat z jakéhokoli vytvořeného klíče. Tyto zálohy pocházejí jako binární data a lze je použít pouze k opětovnému vygenerování dříve odstraněného klíče.
  • Klient kryptografie je samostatné rozhraní, které komunikuje s metodami rozhraní API klíčů v rozhraní API služby Key Vault. Tento klient se zaměřuje pouze na kryptografické operace, které je možné spustit pomocí klíče, který už byl vytvořen ve službě Key Vault. Další informace o tomto klientovi najdete v části kryptografie.

Ověřování pomocí Azure Active Directory

Služba Key Vault spoléhá na Azure Active Directory k ověřování požadavků na svá rozhraní API. Balíček @azure/identity poskytuje řadu typů přihlašovacích údajů, které může vaše aplikace použít k tomu. Soubor README pro @azure/identity poskytuje další podrobnosti a ukázky, které vám pomůžou začít.

Pokud chcete pracovat se službou Azure Key Vault, budete muset vytvořit instanci třídy KeyClient, adresu URL trezoru a objekt přihlašovacích údajů. Příklady uvedené v tomto dokumentu používají objekt přihlašovacích údajů s názvem DefaultAzureCredential, který je vhodný pro většinu scénářů, včetně místního vývojového a produkčního prostředí. Kromě toho doporučujeme použít spravovanou identitu pro ověřování v produkčních prostředích.

Další informace o různých způsobech ověřování a jejich odpovídajících typech přihlašovacích údajů najdete v dokumentaci k dokumentaci k identitě Azure.

Tady je rychlý příklad. Nejprve importujte DefaultAzureCredential a KeyClient. Po importu se můžeme připojit ke službě Key Vault:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

// Build the URL to reach your key vault
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`; // or `https://${vaultName}.managedhsm.azure.net` for managed HSM.

// Lastly, create our keys client and connect to the service
const client = new KeyClient(url, credential);

Určení verze rozhraní API služby Azure Key Vault

Ve výchozím nastavení tento balíček používá nejnovější verzi služby Azure Key Vault, která je 7.2. Verzi služby, kterou používáte, můžete změnit nastavením možnosti serviceVersion v konstruktoru klienta, jak je znázorněno níže:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

// Build the URL to reach your key vault
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`; // or `https://${vaultName}.managedhsm.azure.net` for managed HSM.

// Change the Azure Key Vault service API version being used via the `serviceVersion` option
const client = new KeyClient(url, credential, {
  serviceVersion: "7.0", // Or 7.1
});

Příklady

Následující části obsahují fragmenty kódu, které pokrývají některé běžné úlohy pomocí klíčů služby Azure Key Vault. Zde popsané scénáře se skládají z:

Vytvoření klíče

createKey vytvoří klíč, který se uloží ve službě Azure Key Vault. Pokud klíč se stejným názvem již existuje, vytvoří se nová verze klíče.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";
const result = await client.createKey(keyName, "RSA");
console.log("result: ", result);

Druhý parametr odeslaný do createKey je typ klíče. Typ podporovaných klíčů bude záviset na skladové posílce a na tom, jestli používáte Azure Key Vault nebo Spravovaný HSM Azure. Seznam up-to–datum podporovaných typů klíčů najdete v tématu Informace o klíčích

Získání klíče

Nejjednodušším způsobem, jak číst klíče zpět z trezoru, je získat klíč podle názvu. Tím se načte nejnovější verze klíče. Pokud ho zadáte jako součást volitelných parametrů, můžete volitelně získat jinou verzi klíče.

getKey načte předchozí úložiště klíčů ve službě Key Vault.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

const latestKey = await client.getKey(keyName);
console.log(`Latest version of the key ${keyName}: `, latestKey);

const specificKey = await client.getKey(keyName, { version: latestKey.properties.version! });
console.log(`The key ${keyName} at the version ${latestKey.properties.version!}: `, specificKey);

Vytváření a aktualizace klíčů pomocí atributů

Následující atributy lze také přiřadit k libovolnému klíči ve službě Key Vault:

  • tags: Libovolná sada hodnot klíčů, které lze použít k vyhledávání a filtrování klíčů.
  • keyOps: Pole operací, které tento klíč bude moci provést (encrypt, decrypt, sign, verify, wrapKey, unwrapKey).
  • enabled: Logická hodnota, která určuje, jestli se hodnota klíče dá číst, nebo ne.
  • notBefore: Zadané datum, po kterém lze načíst hodnotu klíče.
  • expires: Zadané datum, po kterém nelze načíst hodnotu klíče.

Objekt s těmito atributy lze odeslat jako třetí parametr createKey, hned za názvem a hodnotou klíče následujícím způsobem:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

const result = await client.createKey(keyName, "RSA", {
  enabled: false,
});
console.log("result: ", result);

Tím se vytvoří nová verze stejného klíče, která bude obsahovat nejnovější zadané atributy.

Atributy lze také aktualizovat na existující verzi klíče pomocí updateKeyProperties, a to následujícím způsobem:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

const result = await client.createKey(keyName, "RSA");
await client.updateKeyProperties(keyName, result.properties.version, {
  enabled: false,
});

Odstranění klíče

Metoda beginDeleteKey spustí odstranění klíče. K tomuto procesu dojde na pozadí, jakmile budou k dispozici potřebné prostředky.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

const poller = await client.beginDeleteKey(keyName);
await poller.pollUntilDone();

Pokud je pro key Vault povolená obnovitelného odstranění, tato operace označí tento klíč jenom jako odstraněný klíč. Odstraněný klíč nejde aktualizovat. Dají se jen číst, obnovit nebo vymazat.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

const poller = await client.beginDeleteKey(keyName);

// You can use the deleted key immediately:
const deletedKey = poller.getResult();

// The key is being deleted. Only wait for it if you want to restore it or purge it.
await poller.pollUntilDone();

// You can also get the deleted key this way:
await client.getDeletedKey(keyName);

// Deleted keys can also be recovered or purged:

// recoverDeletedKey also returns a poller, just like beginDeleteKey.
const recoverPoller = await client.beginRecoverDeletedKey(keyName);
await recoverPoller.pollUntilDone();

// And here is how to purge a deleted key
await client.purgeDeletedKey(keyName);

Vzhledem k tomu, že úplné odstranění klíčů nějakou dobu trvá, beginDeleteKey vrátí objekt Poller, který sleduje základní dlouho běžící operaci podle našich pokynů: https://azure.github.io/azure-sdk/typescript_design.html#ts-lro

Přijatý poller vám umožní získat odstraněný klíč voláním poller.getResult(). Můžete také počkat, až se odstranění dokončí spuštěním jednotlivých volání služby, dokud se klíč odstraní, nebo čekáním na dokončení procesu:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

const poller = await client.beginDeleteKey(keyName);

// You can use the deleted key immediately:
let deletedKey = poller.getResult();

// Or you can wait until the key finishes being deleted:
deletedKey = await poller.pollUntilDone();
console.log(deletedKey);

Dalším způsobem, jak počkat na úplné odstranění klíče, je provést jednotlivá volání následujícím způsobem:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

const poller = await client.beginDeleteKey(keyName);

while (!poller.isDone()) {
  await poller.poll();
  await delay(5000);
}

console.log(`The key ${keyName} is fully deleted`);

Konfigurace automatické obměně klíčů

Pomocí KeyClient můžete nakonfigurovat automatickou obměnu klíčů pro klíč zadáním zásad obměně. KeyClient navíc poskytuje metodu obměna klíče na vyžádání vytvořením nové verze daného klíče.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

// Set the key's automated rotation policy to rotate the key 30 days before expiry.
const policy = await client.updateKeyRotationPolicy(keyName, {
  lifetimeActions: [
    {
      action: "Rotate",
      timeBeforeExpiry: "P30D",
    },
  ],
  // You may also specify the duration after which any newly rotated key will expire.
  // In this case, any new key versions will expire after 90 days.
  expiresIn: "P90D",
});

// You can get the current key rotation policy of a given key by calling the getKeyRotationPolicy method.
const currentPolicy = await client.getKeyRotationPolicy(keyName);

// Finally, you can rotate a key on-demand by creating a new version of the given key.
const rotatedKey = await client.rotateKey(keyName);

Iterace seznamů klíčů

Pomocí KeyClient můžete načíst a iterovat všechny klíče ve službě Azure Key Vault a také všechny odstraněné klíče a verze konkrétního klíče. K dispozici jsou následující metody rozhraní API:

  • listPropertiesOfKeys zobrazí seznam všech neodstraněných klíčů podle jejich názvů, pouze v nejnovějších verzích.
  • listDeletedKeys zobrazí seznam všech odstraněných klíčů podle jejich názvů, pouze v nejnovějších verzích.
  • listPropertiesOfKeyVersions zobrazí seznam všech verzí klíče na základě názvu klíče.

Který lze použít následujícím způsobem:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

for await (const keyProperties of client.listPropertiesOfKeys()) {
  console.log("Key properties: ", keyProperties);
}

for await (const deletedKey of client.listDeletedKeys()) {
  console.log("Deleted: ", deletedKey);
}

for await (const versionProperties of client.listPropertiesOfKeyVersions(keyName)) {
  console.log("Version properties: ", versionProperties);
}

Všechny tyto metody vrátí všechny dostupné výsledky najednou. Pokud je chcete načíst podle stránek, přidejte .byPage() hned po vyvolání metody rozhraní API, kterou chcete použít, následujícím způsobem:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const keyName = "MyKeyName";

for await (const page of client.listPropertiesOfKeys().byPage()) {
  for (const keyProperties of page) {
    console.log("Key properties: ", keyProperties);
  }
}

for await (const page of client.listDeletedKeys().byPage()) {
  for (const deletedKey of page) {
    console.log("Deleted key: ", deletedKey);
  }
}

for await (const page of client.listPropertiesOfKeyVersions(keyName).byPage()) {
  for (const versionProperties of page) {
    console.log("Version: ", versionProperties);
  }
}

Kryptografie

Tato knihovna také nabízí sadu kryptografických nástrojů dostupných prostřednictvím CryptographyClient. Podobně jako v KeyClientse CryptographyClient připojí ke službě Azure Key Vault s poskytnutou sadou přihlašovacích údajů. Po připojení může CryptographyClient zašifrovat, dešifrovat, podepsat, ověřit, zabalit klíče a rozbalit klíče.

Můžeme se připojit ke službě trezoru klíčů stejně jako s KeyClient. Budeme muset zkopírovat některá nastavení z trezoru klíčů, ke kterému se připojujeme, do proměnných prostředí. Jakmile jsou v našem prostředí, můžeme k nim přistupovat pomocí následujícího kódu:

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

// Create or retrieve a key from the keyvault
const myKey = await client.createKey("MyKey", "RSA");

// Lastly, create our cryptography client and connect to the service
const cryptographyClient = new CryptographyClient(myKey, credential);

Šifrování

encrypt zprávu zašifruje.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);

const encryptResult = await cryptographyClient.encrypt({
  algorithm: "RSA1_5",
  plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);

Dešifrování

decrypt dešifruje zašifrovanou zprávu.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);

const encryptResult = await cryptographyClient.encrypt({
  algorithm: "RSA1_5",
  plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);

const decryptResult = await cryptographyClient.decrypt({
  algorithm: "RSA1_5",
  ciphertext: encryptResult.result,
});
console.log("decrypt result: ", decryptResult.result.toString());

Značka

sign kryptograficky podepíše hodnotu hash (hash) zprávy podpisem.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "node:crypto";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

let myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);

const signatureValue = "MySignature";
const hash = createHash("sha256");

const digest = hash.update(signatureValue).digest();
console.log("digest: ", digest);

const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);

Podepsat data

signData kryptograficky podepíše zprávu podpisem.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);

const signResult = await cryptographyClient.signData("RS256", Buffer.from("My Message"));
console.log("sign result: ", signResult.result);

Ověřte

verify kryptograficky ověří, že podepsaný digest byl podepsán daným podpisem.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "node:crypto";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);

const hash = createHash("sha256");
hash.update("My Message");
const digest = hash.digest();

const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);

const verifyResult = await cryptographyClient.verify("RS256", digest, signResult.result);
console.log("verify result: ", verifyResult.result);

Ověření dat

verifyData kryptograficky ověří, že podepsaná zpráva byla podepsána daným podpisem.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);

const buffer = Buffer.from("My Message");

const signResult = await cryptographyClient.signData("RS256", buffer);
console.log("sign result: ", signResult.result);

const verifyResult = await cryptographyClient.verifyData("RS256", buffer, signResult.result);
console.log("verify result: ", verifyResult.result);

Zabalit klíč

wrapKey zabalí klíč s šifrovací vrstvou.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);

const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
console.log("wrap result:", wrapResult.result);

Rozbalit klíč

unwrapKey rozbalí zabalený klíč.

import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";

const credential = new DefaultAzureCredential();

const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;

const client = new KeyClient(url, credential);

const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);

const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
console.log("wrap result:", wrapResult.result);

const unwrapResult = await cryptographyClient.unwrapKey("RSA-OAEP", wrapResult.result);
console.log("unwrap result: ", unwrapResult.result);

Řešení problémů

Podrobnosti o diagnostice různých scénářů selhání najdete v našem průvodci odstraňováním potíží .

Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Další kroky

Další ukázky kódu najdete na následujících odkazech:

Přispění

Pokud chcete přispívat do této knihovny, přečtěte si průvodce přispívání a přečtěte si další informace o vytváření a testování kódu.