Démarrage rapide : Bibliothèque de client de secrets Azure Key Vault pour .NET (SDK v4)Quickstart: Azure Key Vault secret client library for .NET (SDK v4)

Bien démarrer avec la bibliothèque de client de secrets Azure Key Vault pour .NET.Get started with the Azure Key Vault secret client library for .NET. 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 .NET.In this quickstart, you learn how to create, retrieve, and delete secrets from an Azure key vault using the .NET client library

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

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

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 utilise dotnet et Azure CLIThis quickstart is using dotnet and Azure CLI

Programme d’installationSetup

Ce guide de démarrage rapide utilise la bibliothèque Azure Identity avec Azure CLI pour authentifier l’utilisateur auprès des services Azure.This quickstart is using Azure Identity library with Azure CLI to authenticate user to Azure Services. Les développeurs peuvent également utiliser Visual Studio ou Visual Studio Code pour authentifier leurs appels. Pour plus d’informations, consultez Authentifier le client avec la bibliothèque de client Azure Identity.Developers can also use Visual Studio or Visual Studio Code to authenticate their calls, for more information, see Authenticate the client with Azure Identity client library.

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.

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

Créer une application console .NETCreate new .NET console app

  1. Dans un shell de commandes, exécutez la commande suivante pour créer un projet nommé key-vault-console-app :In a command shell, run the following command to create a project named key-vault-console-app:

    dotnet new console --name key-vault-console-app
    
  2. Accédez au répertoire key-vault-console-app nouvellement créé, puis exécutez la commande suivante pour générer le projet :Change to the newly created key-vault-console-app directory, and run the following command to build the project:

    dotnet build
    

    La sortie de génération ne doit contenir aucun avertissement ni erreur.The build output should contain no warnings or errors.

    Build succeeded.
     0 Warning(s)
     0 Error(s)
    

Installer les packagesInstall the packages

Depuis le shell de commandes, installez la bibliothèque de client de secrets Azure Key Vault pour .NET :From the command shell, install the Azure Key Vault secret client library for .NET:

dotnet add package Azure.Security.KeyVault.Secrets

Pour ce guide de démarrage rapide, vous devez également installer la bibliothèque de client du SDK Azure pour Azure Identity :For this quickstart, you'll also need to install the Azure SDK client library for Azure Identity:

dotnet add package 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>

Modèle objetObject model

La bibliothèque de client de secrets Azure Key Vault pour .NET vous permet de gérer des secrets.The Azure Key Vault secret client library for .NET allows you to manage secrets. La section Exemples de code montre comment créer un client, et définir, récupérer et supprimer un secret.The Code examples section shows how to create a client, set a secret, retrieve a secret, and delete a secret.

Exemples de codeCode examples

Ajouter des directivesAdd directives

Ajoutez les directives suivantes en haut de Program.cs :Add the following directives to the top of Program.cs:

using System;
using Azure.Identity;
using Azure.Security.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.

string keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
var kvUri = "https://" + keyVaultName + ".vault.azure.net";

var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

Enregistrer un secretSave a secret

Maintenant que l’application console est authentifiée, ajoutez un secret au coffre de clés.Now that the console app is authenticated, add a secret to the key vault. Pour cette tâche, utilisez la méthode SetSecretAsync.For this task, use the SetSecretAsync method. Le premier paramètre de la méthode accepte un nom pour le secret, qui est « mySecret » dans cet exemple.The method's first parameter accepts a name for the secret—"mySecret" in this sample.

await client.SetSecretAsync(secretName, secretValue);

Nota

Si le nom du secret existe, le code ci-dessus crée une nouvelle version de ce secret.If secret name exists, above code will create new version of that secret.

Récupérer un secretRetrieve a secret

Vous pouvez désormais récupérer la valeur définie avec la méthode GetSecretAsync.You can now retrieve the previously set value with the GetSecretAsync method.

var secret = await client.GetSecretAsync(secretName);

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

supprimer un secretDelete a secret

Pour terminer, nous allons supprimer le secret de votre coffre de clés avec les méthodes StartDeleteSecretAsync et PurgeDeletedSecretAsync.Finally, let's delete the secret from your key vault with the StartDeleteSecretAsync and PurgeDeletedSecretAsync methods.

var operation = await client.StartDeleteSecretAsync("mySecret");
// You only need to wait for completion if you want to purge or recover the key.
await operation.WaitForCompletionAsync();

await client.PurgeDeletedKeyAsync("mySecret");

Exemple de codeSample code

Modifiez l’application console .NET Core pour interagir avec le coffre de clés en effectuant les étapes suivantes :Modify the .NET Core console app to interact with the Key Vault by completing the following steps:

  1. Remplacez le code dans Program.cs par le code suivant :Replace the code in Program.cs with the following code:

    using System;
    using System.Threading.Tasks;
    using Azure.Identity;
    using Azure.Security.KeyVault.Secrets;
    
    namespace key_vault_console_app
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                const string secretName = "mySecret";
                var keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
                var kvUri = $"https://{keyVaultName}.vault.azure.net";
    
                var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());
    
                Console.Write("Input the value of your secret > ");
                var secretValue = Console.ReadLine();
    
                Console.Write($"Creating a secret in {keyVaultName} called '{secretName}' with the value '{secretValue}' ...");
                await client.SetSecretAsync(secretName, secretValue);
                Console.WriteLine(" done.");
    
                Console.WriteLine("Forgetting your secret.");
                secretValue = string.Empty;
                Console.WriteLine($"Your secret is '{secretValue}'.");
    
                Console.WriteLine($"Retrieving your secret from {keyVaultName}.");
                var secret = await client.GetSecretAsync(secretName);
                Console.WriteLine($"Your secret is '{secret.Value}'.");
    
                Console.Write($"Deleting your secret from {keyVaultName} ...");
                DeleteSecretOperation operation = await client.StartDeleteSecretAsync(secretName);
                // You only need to wait for completion if you want to purge or recover the secret.
                await operation.WaitForCompletionAsync();
                Console.WriteLine(" done.");
    
                Console.Write($"Purging your secret from {keyVaultName} ...");
                await client.PurgeDeletedSecretAsync(secretName);
                Console.WriteLine(" done.");
            }
        }
    }
    

Tester et vérifierTest and verify

  1. Exécutez la commande suivante pour exécuter l’application.Execute the following command to run the app.

    dotnet run
    
  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

Pour plus d’informations sur Key Vault et comment l’intégrer à vos applications, consultez les articles suivants :To learn more about Key Vault and how to integrate it with your apps, see the following articles: