Klientská knihovna Azure Key Vault Key pro JavaScript – verze 4.8.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 o Azure Key Vault dozvědět více, můžete si projít téma Co je Azure Key Vault?
Azure Key Vault Managed HSM je plně spravovaná, vysoce dostupná cloudová služba s jedním tenantem kompatibilní se standardy, která umožňuje chránit kryptografické klíče pro cloudové aplikace pomocí modulů HSM ověřených standardem FIPS 140-2 Level 3. Pokud se chcete o spravovaném HSM Azure Key Vault dozvědět více, můžete si projít téma Co je Azure Key Vault Managed HSM?
Klient knihovny klíčů Azure Key Vault podporuje klíče RSA, klíče EC (Elliptic Curve) a také symetrické klíče (oct) při spuštění proti spravovanému HSM, přičemž každá z nich má odpovídající podporu v modulech hardwarového zabezpečení (HSM). Nabízí operace pro vytvoření, načtení, aktualizaci, odstranění, vymazání, zálohování, obnovení a výpis klíčů a jejich verzí.
Pomocí klientské knihovny klíčů Azure Key Vault v aplikaci Node.js můžete:
- Vytvořte klíče pomocí eliptické křivky nebo šifrování RSA, které jsou volitelně podporovány moduly hardwarového zabezpečení (HSM).
- Importovat, odstranit a aktualizovat klíče.
- Získejte jeden nebo více klíčů a odstraněných klíčů s jejich atributy.
- Obnovení odstraněného klíče a obnovení zálohovaného klíče
- Získejte verze klíče.
Pomocí kryptografického klienta, který je k dispozici v této knihovně, máte také přístup k:
- Šifrování
- Dešifrování
- certifikát
- Ověření
- Zalamování klíčů
- Rozbalování klíčů
Poznámka: Tento balíček nejde 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
- Předplatné Azure
- Existující Key Vault Azure. Pokud potřebujete vytvořit trezor klíčů, můžete to udělat na webu Azure Portal podle kroků v tomto dokumentu. Alternativně použijte Azure CLI podle těchto kroků.
- Pokud používáte spravovaný HSM, stávající Azure Key Vault spravovaný HSM. Pokud potřebujete vytvořit spravovaný HSM, můžete to udělat pomocí Azure CLI podle kroků v tomto dokumentu.
Instalace balíčku
Instalace klientské knihovny Azure Key Vault Key pomocí npm
npm install @azure/keyvault-keys
Instalace knihovny identit
Klienti Azure Key Vault se ověřují pomocí knihovny identit Azure. Nainstalujte ho také pomocí npm.
npm install @azure/identity
Konfigurace TypeScriptu
Uživatelé TypeScriptu musí mít nainstalované definice typů uzlů:
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 k možnostem kompilátoru TypeScriptu .
Klíčové koncepty
- Klient klíče je primárním rozhraním pro interakci s metodami rozhraní API souvisejícími s klíči v rozhraní Azure Key Vault API 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 v 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í dotazu poskytnuta konkrétní verze.
- Obnovitelné odstranění umožňuje službě Key Vault podporovat odstranění a vymazání ve dvou samostatných krocích, takže odstraněné klíče se okamžitě neztratí. K tomu dochází pouze v případě, že je u Key Vault povolené obnovitelné odstranění.
- Zálohu klíče je možné vygenerovat z libovolného vytvořeného klíče. Tyto zálohy pocházejí z binárních dat a dají se 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 Key Vault. Tento klient se zaměřuje pouze na kryptografické operace, které lze provést pomocí klíče, který byl již vytvořen v Key Vault. Další informace o tomto klientovi najdete v části Kryptografie .
Ověřování pomocí Azure Active Directory
Služba Key Vault se při ověřování požadavků vůči svým rozhraním API spoléhá na Azure Active Directory. Balíček @azure/identity
poskytuje různé typy přihlašovacích údajů, které vaše aplikace k tomu může použít. Soubor README pro @azure/identity
obsahuje 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 KeyClient
třídy, 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 pro ověřování v produkčních prostředích používat spravovanou identitu .
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 ke službě Azure Identity.
Tady je stručný příklad. Nejprve importujte DefaultAzureCredential
a KeyClient
:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");
Po importu se můžeme připojit ke službě Key Vault:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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 používané služby můžete změnit nastavením možnosti serviceVersion
v konstruktoru klienta, jak je znázorněno níže:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
// 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 s využitím klíčů Azure Key Vault. Scénáře, které jsou zde popsány, zahrnují:
- Vytvoření klíče
- Získání klíče.
- Vytváření a aktualizace klíčů s atributy
- Odstranění klíče
- Iterace seznamů klíčů
Vytvoření klíče
createKey
vytvoří klíč, který se uloží do Key Vault Azure. Pokud už klíč se stejným názvem existuje, vytvoří se nová verze klíče.
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
const result = await client.createKey(keyName, "RSA");
console.log("result: ", result);
}
main();
Druhý parametr odeslaný do createKey
je typ klíče. Typ podporovaných klíčů bude záviset na SKU a na tom, jestli používáte azure Key Vault nebo spravovaný HSM Azure. Aktuální seznam podporovaných typů klíčů najdete v tématu Informace o klíčích.
Získání klíče
Nejjednodušší způsob, 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. Volitelně můžete získat jinou verzi klíče, pokud ji zadáte jako součást volitelných parametrů.
getKey
načte klíč, který se dříve ukládá do Key Vault.
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
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);
}
main();
Vytváření a aktualizace klíčů pomocí atributů
Následující atributy lze také přiřadit libovolnému klíči v Key Vault:
tags
: Libovolná sada hodnot klíčů, kterou je možné použít k vyhledávání a filtrování klíčů.keyOps
: Pole operací, které bude tento klíč moct provádět (encrypt
, ,decrypt
,sign
,verify
,wrapKey
).unwrapKey
enabled
: Logická hodnota, která určuje, jestli je možné hodnotu klíče přečíst nebo ne.notBefore
: Zadané datum, po kterém lze hodnotu klíče načíst.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, a to následujícím způsobem:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
const result = await client.createKey(keyName, "RSA", {
enabled: false,
});
console.log("result: ", result);
}
main();
Tím se vytvoří nová verze stejného klíče, který bude mít nejnovější poskytnuté atributy.
Atributy lze také aktualizovat na existující verzi klíče pomocí updateKeyProperties
příkazu , a to následujícím způsobem:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
const result = await client.createKey(keyName, "RSA");
await client.updateKeyProperties(keyName, result.properties.version, {
enabled: false,
});
}
main();
Odstranění klíče
Metoda beginDeleteKey
zahájí odstranění klíče.
Tento proces bude probíhat na pozadí, jakmile budou k dispozici potřebné prostředky.
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
const poller = await client.beginDeleteKey(keyName);
await poller.pollUntilDone();
}
main();
Pokud je pro Key Vault povolené obnovitelné odstranění, označí tato operace klíč pouze jako odstraněný klíč. Odstraněný klíč nejde aktualizovat. Dají se jenom číst, obnovit nebo vymazat.
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
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);
}
main();
Vzhledem k tomu, že úplné odstranění klíčů nějakou dobu trvá, beginDeleteKey
vrátí objekt Poller, který sleduje podkladovou dlouhotrvají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 na poller.getResult()
.
Můžete také počkat na dokončení odstranění spuštěním jednotlivých volání služby, dokud se klíč nesmaže, nebo čekáním na dokončení procesu:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
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);
}
main();
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:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");
const { delay } = require("@azure/core-util");
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";
async function main() {
const poller = await client.beginDeleteKey(keyName);
while (!poller.isDone()) {
await poller.poll();
await delay(5000);
}
console.log(`The key ${keyName} is fully deleted`);
}
main();
Konfigurace automatické obměně klíčů
Pomocí KeyClientu můžete nakonfigurovat automatickou obměnu klíče zadáním zásad obměna klíčů. KeyClient navíc poskytuje metodu pro obměně klíče na vyžádání vytvořením nové verze daného klíče.
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@azure/keyvault-keys");
const url = `https://<YOUR KEYVAULT NAME>.vault.azure.net`;
const client = new KeyClient(url, new DefaultAzureCredential());
async function main() {
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);
}
main();
Iterace seznamů klíčů
Pomocí KeyClient můžete načíst a iterovat všechny klíče v Azure Key Vault, stejně jako 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 jejich nejnovějších verzích.listDeletedKeys
zobrazí seznam všech odstraněných klíčů podle jejich názvů, pouze v jejich 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:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
for await (let keyProperties of client.listPropertiesOfKeys()) {
console.log("Key properties: ", keyProperties);
}
for await (let deletedKey of client.listDeletedKeys()) {
console.log("Deleted: ", deletedKey);
}
for await (let versionProperties of client.listPropertiesOfKeyVersions(keyName)) {
console.log("Version properties: ", versionProperties);
}
}
main();
Všechny tyto metody vrátí všechny dostupné výsledky najednou. Pokud je chcete načíst po stránkách, přidejte .byPage()
hned po vyvolání metody rozhraní API, kterou chcete použít, následujícím způsobem:
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient } = require("@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";
async function main() {
for await (let page of client.listPropertiesOfKeys().byPage()) {
for (let keyProperties of page) {
console.log("Key properties: ", keyProperties);
}
}
for await (let page of client.listDeletedKeys().byPage()) {
for (let deletedKey of page) {
console.log("Deleted key: ", deletedKey);
}
}
for await (let page of client.listPropertiesOfKeyVersions(keyName).byPage()) {
for (let versionProperties of page) {
console.log("Version: ", versionProperties);
}
}
}
main();
Kryptografie
Tato knihovna také nabízí sadu kryptografických nástrojů dostupných prostřednictvím CryptographyClient
. Podobně jako se KeyClient
nástroj CryptographyClient
připojí k Azure Key Vault pomocí zadané sady přihlašovacích údajů. Po připojení CryptographyClient
můžete klíče šifrovat, dešifrovat, podepisovat, ověřovat, zalamovat a rozbalovat klíče.
Ke službě trezoru klíčů se můžeme dále připojit stejně jako u KeyClient
služby .
Některá nastavení z trezoru klíčů, ke kterému se připojujeme, budeme muset zkopírovat 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 keysClient = new KeyClient(url, credential);
async function main() {
// Create or retrieve a key from the keyvault
let myKey = await keysClient.createKey("MyKey", "RSA");
// Lastly, create our cryptography client and connect to the service
const cryptographyClient = new CryptographyClient(myKey, credential);
}
main();
Encrypt
encrypt
zašifruje 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 keysClient = new KeyClient(url, credential);
async function main() {
let myKey = await keysClient.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);
}
main();
Decrypt
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 keysClient = new KeyClient(url, credential);
async function main() {
let myKey = await keysClient.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());
}
main();
Znaménko
sign
kryptograficky podepíše hodnotu hash (hash) zprávy s podpisem.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "crypto";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const keysClient = new KeyClient(url, credential);
async function main() {
let myKey = await keysClient.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const signatureValue = "MySignature";
let hash = createHash("sha256");
let digest = hash.update(signatureValue).digest();
console.log("digest: ", digest);
const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);
}
main();
Podepsat data
signData
kryptograficky podepíše zprávu s 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 keysClient = new KeyClient(url, credential);
async function main() {
let myKey = await keysClient.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);
}
main();
Ověření
verify
kryptograficky ověří, že podepsaný souhrn byl podepsán daným podpisem.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "crypto";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const keysClient = new KeyClient(url, credential);
async function main() {
let myKey = await keysClient.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);
}
main();
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 keysClient = new KeyClient(url, credential);
async function main() {
let myKey = await keysClient.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);
}
main();
Zalamování klíče
wrapKey
zabalí klíč s vrstvou šifrování.
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 keysClient = new KeyClient(url, credential);
async function main() {
let myKey = await keysClient.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);
}
main();
Rozbalení klíče
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 keysClient = new KeyClient(url, credential);
async function main() {
let myKey = await keysClient.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);
}
main();
Poradce při potížích
Podrobnosti o tom, jak diagnostikovat různé scénáře 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 selháních. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou AZURE_LOG_LEVEL
prostředí na info
. Případně je možné protokolování povolit za běhu voláním setLogLevel
v :@azure/logger
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Další kroky
Další ukázky kódu najdete na následujících odkazech:
- Ukázky klíčů Key Vault (JavaScript)
- Ukázky klíčů Key Vault (TypeScript)
- Testovací případy Key Vault klíčů
Přispívání
Pokud chcete přispívat do této knihovny, přečtěte si prosím průvodce přispívání , kde se dozvíte více o tom, jak sestavit a otestovat kód.
Azure SDK for JavaScript