Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
- Egy Azure előfizetés – ingyenes előfizetés.
- Azure Key Vault példány. Győződjön meg arról, hogy a megfelelő Azure RBAC-szerepkör van hozzárendelve önhöz az adott feladatok kódban való végrehajtásához.
- Node.js LTS-verzió
Állítsa be a projektjét
Nyisson meg egy parancssort, és váltson a projektmappára. Módosítsa
<your-directory>a saját mappa nevére.cd <your-directory>Ha még nem rendelkezik fájllal
package.jsona címtárban, inicializálja a projektet a fájl létrehozásához:npm init -yTelepítse a JavaScripthez tartozó Azure Key Vault kulcsok ügyfélkódtárát:
npm install @azure/keyvault-keysHa 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.
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.
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);
}