Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du ansluter till Azure Key Vault med hjälp av klientbiblioteket för Azure Key Vault nycklar för JavaScript. När anslutningen är bekräftad kan din kod hantera nycklar i valvet.
API-referens | Package (npm) | Library källkod | Exempel | Ge feedback
Förutsättningar
- En Azure prenumeration – skapa en kostnadsfri.
- Azure Key Vault instans. Kontrollera att du har rätt Azure RBAC-roll tilldelad för att utföra de specifika uppgifterna i koden.
- Node.js version LTS
Konfigurera projektet
Öppna en kommandotolk och gå till din projektmapp. Ändra
<your-directory>till mappnamnet:cd <your-directory>Om du inte redan har en
package.jsonfil i katalogen initierar du projektet för att skapa filen:npm init -yInstallera klientbiblioteket för Azure Key Vault nycklar för JavaScript:
npm install @azure/keyvault-keysOm du vill använda lösenordslösa anslutningar med hjälp av Microsoft Entra ID installerar du klientbiblioteket Azure Identity för JavaScript:
npm install @azure/identity
Auktorisera åtkomst och ansluta till Key Vault
Microsoft Entra ID ger den säkraste anslutningen genom att hantera anslutningsidentiteten (hanterad identitet). Med den här lösenordslösa funktionen kan du utveckla ett program som inte kräver några nycklar som lagras i koden.
Innan du programmässigt autentiserar till Azure för att använda Azure Key Vault-nycklar, bör du konfigurera din miljö.
Skapa ditt program
När du skapar ditt program interagerar koden med två typer av resurser:
-
KeyVaultKey, som innehåller:
- ID, namn och värde.
- Tillåtna åtgärder.
- Typ som
EC,EC-HSM,RSA,RSA-HSM,oct,oct-HSM. - Egenskaper som KeyProperties
- KeyProperties, som innehåller nycklarnas metadata, till exempel dess namn, version, taggar, förfallodata och om de är aktiverade.
Om du behöver värdet för KeyVaultKey använder du metoder som returnerar KeyVaultKey:
Objektmodell
Klientbiblioteket för Azure Key Vault nycklar för JavaScript innehåller följande klienter:
- KeyClient: KeyClient-objektet är det översta objektet i SDK:et. Med den här klienten kan du utföra viktiga hanteringsuppgifter som att skapa, rotera, ta bort och lista nycklarna.
- Med CryptographyClient kan du kryptera, dekryptera, signera, verifiera, omsluta och packa upp nycklar.
Skapa ett KeyClient-objekt
När din lokala miljö och Key Vault auktorisering har konfigurerats skapar du en JavaScript-fil som innehåller paketen @azure/identity och @azure/keyvault-keys. Skapa en autentiseringsuppgift, till exempel DefaultAzureCredential, för att implementera lösenordslösa anslutningar till valvet. Använd den autentiseringsuppgiften för att autentisera med ett KeyClient-objekt .
// 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");
Skapa ett CryptographyClient-objekt
CryptographyClient-objektet är det operativa objektet i SDK:t och använder din nyckel för att utföra åtgärder som att kryptera, dekryptera, signera och verifiera, omsluta och packa upp.
Använd dina identitetsautentiseringsuppgifter från Din KeyClient, tillsammans med nyckelnamnet, för att skapa en CryptographyClient för att utföra åtgärder.
// 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);
}