Partager via


Démarrage avec les clés Azure Key Vault en JavaScript

Cet article explique comment vous connecter à Azure Key Vault à l’aide de la bibliothèque cliente de clés Azure Key Vault pour JavaScript. Une fois la connexion établie, votre code peut s’exécuter à l’aide des clés du coffre-fort.

Référence API | Package (npm) | Code source de la bibliothèque | Échantillons | Envoyer des commentaires

Prerequisites

Configuration de votre projet

  1. Ouvrez une invite de commandes et accédez à votre dossier de projet. Remplacez YOUR-DIRECTORY par le nom de votre dossier :

    cd YOUR-DIRECTORY
    
  2. Si vous n’avez pas encore de fichier package.json dans votre répertoire, initialisez le projet pour créer le fichier :

    npm init -y
    
  3. Installez la bibliothèque cliente de clés Azure Key Vault pour JavaScript :

    npm install @azure/keyvault-keys
    
  4. Si vous souhaitez utiliser des connexions sans mot de passe à l’aide de Microsoft Entra ID, installez la bibliothèque du client Azure Identity pour JavaScript :

    npm install @azure/identity
    

Autoriser l’accès et se connecter à Key Vault

Microsoft Entra ID fournit la connexion la plus sécurisée en gérant l’identité de connexion (identité managée). Cette fonctionnalité sans mot de passe vous permet de développer une application qui ne nécessite aucune clé stockée dans le code.

Avant d’authentifier par programmation auprès d’Azure pour utiliser des clés Azure Key Vault, veillez à configurer votre environnement.

Diagramme du flux de crédentiels de l'Azure SDK pour JavaScript.

Un développeur doit installer Azure CLI et se connecter de manière interactive avec la commande az login pour se connecter à Azure avant d’utiliser DefaultAzureCredential dans le code.

az login

Générer votre application

Lorsque vous créez votre application, votre code interagit avec deux types de ressources :

  • KeyVaultKey, qui inclut :
    • ID, nom et valeur.
    • Opérations autorisées.
    • Type tels que EC, EC-HSM, RSA, RSA-HSM, oct, oct-HSM.
    • Propriétés en tant que KeyProperties
  • KeyProperties, qui incluent les métadonnées des clés, telles que son nom, sa version, ses balises, ses données d’expiration et si elle est activée.

Si vous avez besoin de la valeur de KeyVaultKey, utilisez des méthodes qui retournent keyVaultKey :

Modèle d'objet

La bibliothèque cliente de clés Azure Key Vault pour JavaScript inclut les clients suivants :

  • KeyClient : l’objet KeyClient est l’objet principal dans le Kit de développement logiciel (SDK). Ce client vous permet d’effectuer des tâches de gestion des clés telles que la création, la rotation, la suppression et la liste des clés.
  • CryptographyClient vous permet de chiffrer, déchiffrer, signer, vérifier, encapsuler et décompresser les clés.

Diagramme conceptuel montrant la relation dans la bibliothèque cliente entre KeyClient et CryptographyClient.

Créer un objet KeyClient

Une fois que votre environnement local et l’autorisation Key Vault sont configurés, créez un fichier JavaScript, qui inclut les packages @azure/identity et les packages @azure/keyvault-keys . Créez des informations d’identification, telles que DefaultAzureCredential, pour implémenter des connexions sans mot de passe à votre coffre. Utilisez ces informations d’identification pour vous authentifier auprès d’un objet KeyClient .

// 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");

Créer un objet CryptographyClient

L’objet CryptographyClient est l’objet opérationnel dans le Kit de développement logiciel (SDK), en utilisant votre clé pour effectuer des actions telles que chiffrer, déchiffrer, signer et vérifier, encapsuler et décompresser.

Utilisez vos informations d’identification d’identité à partir de votre KeyClient, ainsi que le nom de clé, pour créer un CryptographyClient pour effectuer des opérations.

// 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);
}

Voir aussi

Étapes suivantes