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
- Un abonnement Azure : créez-en un gratuitementAn Azure subscription - create one for free
- SDK .NET Core 3.1 ou ultérieur.NET Core 3.1 SDK or later
- Azure CLIAzure CLI
- Un coffre de clés : vous pouvez en créer un en utilisant le portail Azure, Azure CLI ou Azure PowerShellA Key Vault - you can create one using Azure portal Azure CLI, or Azure PowerShell
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
Exécutez la commande
login
.Run thelogin
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.
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
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 namedkey-vault-console-app
:dotnet new console --name key-vault-console-app
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:
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
Exécutez la commande suivante pour exécuter l’application.Execute the following command to run the app.
dotnet run
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:
- Lire la vue d’ensemble Azure Key VaultRead an Overview of Azure Key Vault
- Consultez un Tutoriel sur l’accès à Key Vault depuis une application App ServiceSee an Access Key Vault from App Service Application Tutorial
- Consultez un Tutoriel sur l’accès à Key Vault depuis une machine virtuelleSee an Access Key Vault from Virtual Machine Tutorial
- Consulter le Guide du développeur Azure Key VaultSee the Azure Key Vault developer's guide
- Passer en revue la Vue d’ensemble de la sécurité de Key VaultReview the Key Vault security overview