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.
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:
- Zdrojový kód
- Balíček (npm)
- Referenční dokumentace k rozhraní API
- dokumentace k produktu
- Ukázky
Začínáme
Aktuálně podporovaná prostředí
Požadavky
- Předplatné Azure
- Existující azure Key Vault. Pokud potřebujete vytvořit trezor klíčů, můžete to udělat na webu Azure Portal pomocí kroků v tomto dokumentu. Případně použijte Azure CLI podle těchto kroků.
- Pokud používáte spravovaný HSM, existující spravovaného HSM služby Azure Key Vault. Pokud potřebujete vytvořit spravovaný HSM, můžete to udělat pomocí Azure CLI pomocí postupu v tomto dokumentu.
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.
- Získání klíče.
- Vytváření a aktualizace klíčů pomocí atributů.
- Odstranění klíče.
- iterace seznamů klíčů.
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:
-
listPropertiesOfKeyszobrazí seznam všech neodstraněných klíčů podle jejich názvů, pouze v nejnovějších verzích. -
listDeletedKeyszobrazí seznam všech odstraněných klíčů podle jejich názvů, pouze v nejnovějších verzích. -
listPropertiesOfKeyVersionszobrazí 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:
- ukázky klíčů služby Key Vault (JavaScript)
- ukázky klíčů služby Key Vault (TypeScript)
- testovací případy klíčů služby Key Vault
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.
Azure SDK for JavaScript