Azure Key Vault kulcsok használatának első lépései a JavaScriptben

Ez a cikk bemutatja, hogyan csatlakozhat az Azure Key Vaulthoz az Azure Key Vault Kulcsok Javascript könyvtárral. A csatlakozás után a kód a tárolóban lévő kulcsokon is működhet.

API-referencia | Package (npm) | Library source code | Samples | Give feedback

Előfeltételek

Állítsa be a projektjét

  1. Nyisson meg egy parancssort, és váltson a projektmappára. Módosítsa <your-directory> a saját mappa nevére.

    cd <your-directory>
    
  2. Ha még nem rendelkezik fájllal package.json a címtárban, inicializálja a projektet a fájl létrehozásához:

    npm init -y
    
  3. Telepítse a JavaScripthez tartozó Azure Key Vault kulcsok ügyfélkódtárát:

    npm install @azure/keyvault-keys
    
  4. Ha jelszó nélküli kapcsolatokat szeretne használni Microsoft Entra ID használatával, telepítse a JavaScripthez készült Azure Identity-ügyfélkódtárat:

    npm install @azure/identity
    

A hozzáférés engedélyezése és csatlakozás a Key Vaulthoz

Microsoft Entra ID a kapcsolati identitás (managed identity) kezelésével biztosítja a legbiztonságosabb kapcsolatot. Ez a jelszó nélküli funkció lehetővé teszi olyan alkalmazás fejlesztését, amely nem igényel a kódban tárolt kulcsokat.

Mielőtt programozott módon hitelesíti magát az Azure Key Vault kulcsok használatához, győződjön meg arról, hogy beállította a környezetet.

Az Azure SDK diagramja a JavaScript hitelesítési folyamathoz.

A fejlesztőknek telepíteniük kell a Azure CLI és interaktív módon kell bejelentkezniük a az bejelentkezési paranccsal, hogy bejelentkezhessenek a Azure, mielőtt a DefaultAzureCredentialt használták volna a kódban.

az login

Építse fel alkalmazását

Az alkalmazás létrehozása során a kód kétféle erőforrással kommunikál:

  • KeyVaultKey, amely a következőket tartalmazza:
    • Azonosító, név és érték.
    • Engedélyezett műveletek.
    • Típus például EC, EC-HSM, RSA, RSA-HSM, oct, oct-HSM.
    • Tulajdonságok keyProperties-ként
  • KeyProperties, amely tartalmazza a kulcsok metaadatait, például a nevét, verzióját, címkéit, lejárati adatait, és hogy engedélyezve van-e.

Ha szüksége van a KeyVaultKey értékére, használja a KeyVaultKey értéket visszaadó metódusokat:

Objektummodell

A JavaScripthez készült Azure Key Vault kulcsok ügyfélkódtára a következő ügyfeleket tartalmazza:

  • KeyClient: A KeyClient objektum az SDK legfelső objektuma. Ez az ügyfél lehetővé teszi olyan kulcskezelési feladatok végrehajtását, mint a kulcsok létrehozása, elforgatása, törlése és listázása.
  • A CryptographyClient segítségével titkosíthatja, visszafejtheti, aláírhatja, ellenőrizheti, körbefuttathatja és kicsomagolhatja a kulcsokat.

Fogalmi diagram a KeyClient és a CryptographyClient közötti ügyfélkódtáron belüli kapcsolatról.

KeyClient-objektum létrehozása

A helyi környezet és Key Vault engedélyezése után hozzon létre egy JavaScript-fájlt, amely tartalmazza a @azure/identity és a @azure/keyvault-keys csomagokat. Hozzon létre egy hitelesítő adatot, például a DefaultAzureCredentialt a tárolóhoz való jelszó nélküli kapcsolatok implementálásához. Használja ezt a hitelesítő adatot egy KeyClient-objektummal való hitelesítéshez.

// 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");

CryptographyClient objektum létrehozása

A CryptographyClient objektum az SDK operatív objektuma, amely a kulcs használatával olyan műveleteket hajt végre, mint a titkosítás, a visszafejtés, a jel és az ellenőrzés, a burkolás és a törlés.

A KeyClient identitás-hitelesítő adatainak és a kulcsnévnek a használatával hozzon létre egy CryptographyClient-et a műveletek végrehajtásához.

// 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);
}

Lásd még

Következő lépések