Démarrage rapide : Bibliothèque de client de secrets Azure Key Vault pour JavaScript (version 4)Quickstart: Azure Key Vault secret client library for JavaScript (version 4)

Bien démarrer avec la bibliothèque de client de secrets Azure Key Vault pour JavaScript.Get started with the Azure Key Vault secret client library for JavaScript. Azure Key Vault est un service cloud qui fournit un magasin de secrets sécurisé.Azure Key Vault is a cloud service that provides a secure store for secrets. Vous pouvez stocker des clés, des mots de passe, des certificats et d’autres secrets en toute sécurité.You can securely store keys, passwords, certificates, and other secrets. Vous pouvez créer et gérer des coffres de clés Azure grâce au portail Azure.Azure key vaults may be created and managed through the Azure portal. Dans ce guide de démarrage rapide, vous allez découvrir comment créer, récupérer et supprimer des secrets dans un coffre de clés Azure à l’aide de la bibliothèque de client JavaScript.In this quickstart, you learn how to create, retrieve, and delete secrets from an Azure key vault using the JavaScript client library

Ressources de la bibliothèque de client Key Vault :Key Vault client library resources:

Documentation de référence sur les API | Code source de la bibliothèque | Package (npm)API reference documentation | Library source code | Package (npm)

Pour plus d’informations sur Key Vault et les secrets, consultez :For more information about Key Vault and secrets, see:

PrérequisPrerequisites

Ce guide de démarrage rapide suppose que vous exécutez Azure CLI.This quickstart assumes you are running Azure CLI.

Connexion à AzureSign in to Azure

  1. Exécutez la commande login.Run the login command.

    az login
    

    Si l’interface CLI peut ouvrir votre navigateur par défaut, elle le fait et charge une page de connexion Azure par la même occasion.If the CLI can open your default browser, it will do so and load an Azure sign-in page.

    Sinon, ouvrez une page de navigateur à l’adresse https://aka.ms/devicelogin et entrez le code d’autorisation affiché dans votre terminal.Otherwise, open a browser page at https://aka.ms/devicelogin and enter the authorization code displayed in your terminal.

  2. Dans le navigateur, connectez-vous avec les informations d’identification de votre compte.Sign in with your account credentials in the browser.

Créer une application Node.jsCreate new Node.js application

Créez ensuite une application Node.js pouvant être déployée dans le Cloud.Next, create a Node.js application that can be deployed to the Cloud.

  1. Dans une interface de commande, créez un dossier nommé key-vault-node-app :In a command shell, create a folder named key-vault-node-app:
mkdir key-vault-node-app
  1. Accédez au répertoire key-vault-node-app nouvellement créé, puis exécutez la commande « init » pour initialiser le projet node :Change to the newly created key-vault-node-app directory, and run 'init' command to initialize node project:
cd key-vault-node-app
npm init -y

Installer des packages Key VaultInstall Key Vault packages

Dans la fenêtre de console, installez la bibliothèque de secrets Azure Key Vault pour Node.js.From the console window, install the Azure Key Vault secrets library for Node.js.

npm install @azure/keyvault-secrets

Installez le package azure.identity pour l’authentification auprès d’un coffre de clés.Install the azure.identity package to authenticate to a Key Vault

npm install @azure/identity

Définir des variables d’environnementSet environment variables

Cette application utilise le nom de coffre de clés en tant que variable d’environnement appelée KEY_VAULT_NAME.This application is using key vault name as an environment variable called KEY_VAULT_NAME.

WindowsWindows

set KEY_VAULT_NAME=<your-key-vault-name>

Windows PowerShellWindows PowerShell

$Env:KEY_VAULT_NAME="<your-key-vault-name>"

macOS ou LinuxmacOS or Linux

export KEY_VAULT_NAME=<your-key-vault-name>

Accorder l’accès à votre coffre de clésGrant access to your key vault

Créez une stratégie d’accès pour votre coffre de clés, qui accorde des autorisations de secret à votre compte d’utilisateur.Create an access policy for your key vault that grants secret permissions to your user account

az keyvault set-policy --name <YourKeyVaultName> --upn user@domain.com --secret-permissions delete get list set purge

Exemples de codeCode examples

Les exemples de code ci-dessous vous montrent comment créer un client et définir, récupérer et supprimer un secret.The code samples below will show you how to create a client, set a secret, retrieve a secret, and delete a secret.

Configurer le framework d’applicationSet up the app framework

  1. Créer un fichier texte et l’enregistrer en tant que « index.js »Create new text file and save it as 'index.js'

  2. Ajouter les appels require pour charger des modules Azure et Node.jsAdd require calls to load Azure and Node.js modules

  3. Créer la structure du programme, y compris la gestion des exceptions de baseCreate the structure for the program, including basic exception handling

const readline = require('readline');

function askQuestion(query) {
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout,
    });

    return new Promise(resolve => rl.question(query, ans => {
        rl.close();
        resolve(ans);
    }))
}

async function main() {
    
}

main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));

Ajouter des directivesAdd directives

Ajoutez les directives suivantes en haut de votre code :Add the following directives to the top of your code:

const { DefaultAzureCredential } = require("@azure/identity");
const { SecretClient } = require("@azure/keyvault-secrets");

Authentifier et créer un clientAuthenticate and create a client

Dans ce guide de démarrage rapide, l’utilisateur connecté est utilisé pour l’authentification auprès du coffre de clés, qui est la méthode recommandée pour le développement local.In this quickstart, logged in user is used to authenticate to key vault, which is preferred method for local development. Pour les applications déployées sur Azure, l’identité managée doit être affectée à App Service ou à une machine virtuelle. Pour plus d’informations, consultez Vue d’ensemble des identités managées.For applications deployed to Azure, managed identity should be assigned to App Service or Virtual Machine, for more information, see Managed Identity Overview.

Dans l’exemple ci-dessous, le nom de votre coffre de clés est étendu à l’URI du coffre de clés, au format « https://<your-key-vault-name>.vault.azure.net ».In below example, the name of your key vault is expanded to the key vault URI, in the format "https://<your-key-vault-name>.vault.azure.net". Cet exemple utilise la classe « DefaultAzureCredential() » de la bibliothèque Azure Identity, ce qui permet d’utiliser le même code dans différents environnements avec des options différentes pour fournir une identité.This example is using 'DefaultAzureCredential()' class from Azure Identity Library, which allows to use the same code across different environments with different options to provide identity. Pour plus d’informations sur l’authentification auprès du coffre de clés, consultez le Guide du développeur.Fore more information about authenticating to key vault, see Developer's Guide.

Ajoutez le code suivant à la fonction « main() ».Add the following code to 'main()' function

const keyVaultName = process.env["KEY_VAULT_NAME"];
const KVUri = "https://" + keyVaultName + ".vault.azure.net";

const credential = new DefaultAzureCredential();
const client = new SecretClient(KVUri, credential);

Enregistrer un secretSave a secret

Maintenant que votre application est authentifiée, vous pouvez placer un secret dans votre coffre avec la méthode setSecret. Un nom pour le secret est nécessaire : dans cet exemple, nous utilisons « mySecret ».Now that your application is authenticated, you can put a secret into your keyvault using the setSecret method This requires a name for the secret - we're using "mySecret" in this sample.

await client.setSecret(secretName, secretValue);

Récupérer un secretRetrieve a secret

Vous pouvez maintenant récupérer la valeur définie précédemment avec la méthode getSecret.You can now retrieve the previously set value with the getSecret method.

const retrievedSecret = await client.getSecret(secretName);

Votre secret est désormais enregistré en tant que retrievedSecret.value.Your secret is now saved as retrievedSecret.value.

supprimer un secretDelete a secret

Pour finir, nous allons supprimer et purger le secret de votre coffre de clés avec les méthodes beginDeleteSecret et purgeDeletedSecret.Finally, let's delete and purge the secret from your key vault with the beginDeleteSecret and purgeDeletedSecret methods.

const deletePoller = await client.beginDeleteSecret(secretName);
await deletePoller.pollUntilDone();
await client.purgeDeletedSecret(secretName);

Exemple de codeSample code

const { DefaultAzureCredential } = require("@azure/identity");
const { SecretClient } = require("@azure/keyvault-secrets");

const readline = require('readline');

function askQuestion(query) {
    const rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout,
    });

    return new Promise(resolve => rl.question(query, ans => {
        rl.close();
        resolve(ans);
    }))
}

async function main() {

  const keyVaultName = process.env["KEY_VAULT_NAME"];
  const KVUri = "https://" + keyVaultName + ".vault.azure.net";

  const credential = new DefaultAzureCredential();
  const client = new SecretClient(KVUri, credential);

  const secretName = "mySecret";
  var secretValue = await askQuestion("Input the value of your secret > ");

  console.log("Creating a secret in " + keyVaultName + " called '" + secretName + "' with the value '" + secretValue + "` ...");
  await client.setSecret(secretName, secretValue);

  console.log("Done.");

  console.log("Forgetting your secret.");
  secretValue = "";
  console.log("Your secret is '" + secretValue + "'.");

  console.log("Retrieving your secret from " + keyVaultName + ".");

  const retrievedSecret = await client.getSecret(secretName);

  console.log("Your secret is '" + retrievedSecret.value + "'.");

  console.log("Deleting your secret from " + keyVaultName + " ...");
  const deletePoller = await client.beginDeleteSecret(secretName);
  await deletePoller.pollUntilDone();
  console.log("Done.");
  
  console.log("Purging your secret from {keyVaultName} ...");
  await client.purgeDeletedSecret(secretName);
  
}

main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));

Tester et vérifierTest and verify

  1. Exécutez les commandes suivantes pour exécuter l’application.Execute the following commands to run the app.

    npm install
    npm index.js
    
  2. Quand vous y êtes invité, entrez une valeur de secret.When prompted, enter a secret value. Par exemple, mySecretPassword.For example, mySecretPassword.

    Une variante de la sortie suivante apparaît :A variation of the following output appears:

    Input the value of your secret > mySecretPassword
    Creating a secret in <your-unique-keyvault-name> called 'mySecret' with the value 'mySecretPassword' ... done.
    Forgetting your secret.
    Your secret is ''.
    Retrieving your secret from <your-unique-keyvault-name>.
    Your secret is 'mySecretPassword'.
    Deleting your secret from <your-unique-keyvault-name> ... done.  
    Purging your secret from <your-unique-keyvault-name> ... done.   
    

Étapes suivantesNext steps

Dans ce guide de démarrage rapide, vous avez créé un coffre de clés, stocké un secret et récupéré ce secret.In this quickstart, you created a key vault, stored a secret, and retrieved that secret. Pour en savoir plus sur Key Vault et sur la manière de l’intégrer à vos applications, consultez les articles ci-dessous.To learn more about Key Vault and how to integrate it with your applications, continue on to the articles below.