Sdílet prostřednictvím


Začínáme s klíči služby Azure Key Vault v JavaScriptu

V tomto článku se dozvíte, jak se připojit ke službě Azure Key Vault pomocí klientské knihovny klíčů služby Azure Key Vault pro JavaScript. Po připojení může kód pracovat s klíči v trezoru.

Referenční | balíček rozhraní API (npm) | Ukázky | zdrojového kódu | knihovny – zpětnou vazbu

Požadavky

Nastavení projektu

  1. Otevřete příkazový řádek a přejděte do složky projektu. Změňte YOUR-DIRECTORY název složky:

    cd YOUR-DIRECTORY
    
  2. Pokud soubor ještě nemáte package.json v adresáři, inicializujte projekt a vytvořte ho:

    npm init -y
    
  3. Nainstalujte klientskou knihovnu klíčů služby Azure Key Vault pro JavaScript:

    npm install @azure/keyvault-keys
    
  4. Pokud chcete používat připojení bez hesla pomocí ID Microsoft Entra, nainstalujte klientskou knihovnu Azure Identity pro JavaScript:

    npm install @azure/identity
    

Autorizace přístupu a připojení ke službě Key Vault

Microsoft Entra ID poskytuje nejbezpečnější připojení tím, že spravuje identitu připojení (spravovaná identita). 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íčů služby Azure Key Vault se ujistěte, že jste nastavili své prostředí.

Diagram toku přihlašovacích údajů v sadě Azure SDK pro JavaScript

Vývojář by měl nainstalovat Azure CLI a přihlásit se interaktivně pomocí příkazu az login pro přihlášení k Azure před použitím defaultAzureCredential v kódu.

az login

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-HSMRSA, 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íčů služby 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.

Koncepční diagram znázorňující vztah v klientské knihovně mezi KeyClient a CryptographyClient

Vytvoření objektu KeyClient

Po nastavení místního prostředí a autorizace služby Key Vault vytvořte soubor JavaScriptu, který zahrnuje @azure/identitu a balíčky @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);
}

Viz také

Další kroky