Ismerkedés az Azure Key Vault kulcsaival a JavaScriptben

Ez a cikk bemutatja, hogyan csatlakozhat az Azure Key Vaulthoz a JavaScripthez készült Azure Key Vault-kulcsok ügyfélkódtárával. A csatlakozás után a kód a tárolóban lévő kulcsokon is működhet.

API-referenciacsomag (npm) | Kódtár forráskódminták | | Visszajelzés küldése |

Előfeltételek

A projekt beállítása

  1. Nyisson meg egy parancssort, és váltson a projektmappára. Módosítsa YOUR-DIRECTORY a mappa nevét:

    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 az Azure Key Vault-kulcsok JavaScripthez készült ügyfélkódtárát:

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

    npm install @azure/identity
    

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

A Microsoft Entra ID biztosítja a legbiztonságosabb kapcsolatot a kapcsolati identitás (felügyelt identitás) kezelésével. 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ítené az Azure-t az Azure Key Vault-kulcsok használatához, győződjön meg arról, hogy beállítja a környezetet.

Diagram of Azure SDK for JavaScript credential flow.

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

az login

Az alkalmazás összeállítása

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.

Conceptual diagram showing the relationship within the client library between the KeyClient and CryptographyClient.

KeyClient-objektum létrehozása

A helyi környezet és a Key Vault engedélyezése után hozzon létre egy JavaScript-fájlt, amely tartalmazza a @azure/identitást é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);
}

Kapcsolódó információk

Következő lépések