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
- Azure-előfizetés – hozzon létre egyet ingyenesen.
- Azure Key Vault-példány . Tekintse át a Key Vault hozzáférési szabályzatait , és foglalja bele a kódban végrehajtott egyes feladatokhoz szükséges engedélyeket.
- Node.js LTS-verzió
A projekt beállítása
Nyisson meg egy parancssort, és váltson a projektmappára. Módosítsa
YOUR-DIRECTORY
a mappa nevét:cd YOUR-DIRECTORY
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
Telepítse az Azure Key Vault-kulcsok JavaScripthez készült ügyfélkódtárát:
npm install @azure/keyvault-keys
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.
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.
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);
}