Aan de slag met Azure Key Vault-sleutels in JavaScript
In dit artikel wordt beschreven hoe u verbinding maakt met Azure Key Vault met behulp van de clientbibliotheek voor Azure Key Vault-sleutels voor JavaScript. Nadat u verbinding hebt gemaakt, kan uw code worden uitgevoerd op sleutels in de kluis.
Broncodevoorbeelden van API-referentiepakket | (npm) | Library | geven feedback |
Vereisten
- Een Azure-abonnement (u kunt een gratis abonnement maken).
- Azure Key Vault-exemplaar . Controleer het toegangsbeleid voor uw Key Vault om de machtigingen op te nemen die nodig zijn voor de specifieke taken die in code worden uitgevoerd.
- Node.js versie LTS
Uw project instellen
Open een opdrachtprompt en ga naar de projectmap. Ga naar
YOUR-DIRECTORY
de mapnaam:cd YOUR-DIRECTORY
Als u nog geen bestand in uw map hebt
package.json
, initialiseert u het project om het bestand te maken:npm init -y
Installeer de clientbibliotheek voor Azure Key Vault-sleutels voor JavaScript:
npm install @azure/keyvault-keys
Als u wachtwoordloze verbindingen wilt gebruiken met behulp van Microsoft Entra ID, installeert u de Azure Identity-clientbibliotheek voor JavaScript:
npm install @azure/identity
Toegang autoriseren en verbinding maken met Key Vault
Microsoft Entra ID biedt de veiligste verbinding door de verbindingsidentiteit (beheerde identiteit) te beheren. Met deze functionaliteit zonder wachtwoord kunt u een toepassing ontwikkelen waarvoor geen sleutels zijn vereist die zijn opgeslagen in de code.
Voordat u programmatisch verificatie uitvoert bij Azure voor het gebruik van Azure Key Vault-sleutels, moet u ervoor zorgen dat u uw omgeving instelt.
Een ontwikkelaar moet Azure CLI installeren en zich interactief aanmelden met de az login-opdracht om u aan te melden bij Azure voordat de DefaultAzureCredential in code wordt gebruikt.
az login
Uw toepassing bouwen
Wanneer u uw toepassing bouwt, communiceert uw code met twee typen resources:
- KeyVaultKey, waaronder:
- Id, naam en waarde.
- Toegestane bewerkingen.
- Type zoals
EC
,EC-HSM
,RSA
, ,RSA-HSM
, , ,oct
.oct-HSM
- Eigenschappen als KeyProperties
- KeyProperties, waaronder de metagegevens van de sleutels, zoals de naam, versie, tags, vervaldatumgegevens en of deze is ingeschakeld.
Als u de waarde van de KeyVaultKey nodig hebt, gebruikt u methoden die de KeyVaultKey retourneren:
Objectmodel
De Azure Key Vault-clientbibliotheek met sleutels voor JavaScript bevat de volgende clients:
- KeyClient: Het KeyClient-object is het bovenste object in de SDK. Met deze client kunt u belangrijke beheertaken uitvoeren, zoals het maken, draaien, verwijderen en vermelden van de sleutels.
- Met CryptographyClient kunt u sleutels versleutelen, ontsleutelen, ondertekenen, verifiëren, verpakken en uitpakken.
Een KeyClient-object maken
Zodra uw lokale omgeving en Key Vault-autorisatie zijn ingesteld, maakt u een JavaScript-bestand, dat de @azure/identiteit en de pakketten @azure/keyvault-keys bevat. Maak een referentie, zoals de DefaultAzureCredential, om wachtwoordloze verbindingen met uw kluis te implementeren. Gebruik deze referentie om te verifiëren met een KeyClient-object .
// 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");
Een CryptographyClient-object maken
Het CryptoyClient-object is het operationele object in de SDK, waarbij u uw sleutel gebruikt om acties uit te voeren, zoals versleutelen, ontsleutelen, ondertekenen en verifiëren, verpakken en uitpakken.
Gebruik uw identiteitsreferentie van uw KeyClient, samen met de sleutelnaam, om een CryptographyClient te maken om bewerkingen uit te voeren.
// 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);
}