Démarrage rapide : Bibliothèque de client de clés Azure Key Vault pour .NET
Découvrez comment démarrer avec la bibliothèque de client de clés Azure Key Vault pour .NET. Azure Key Vault est un service cloud qui fournit un magasin de clés de chiffrement sécurisé. Vous pouvez stocker des clés de chiffrement, des mots de passe, des certificats et d’autres secrets de manière sécurisée. Vous pouvez créer et gérer des coffres de clés Azure grâce au portail Azure. Dans ce guide de démarrage rapide, vous allez découvrir comment créer, récupérer et supprimer des clés dans un coffre de clés Azure en utilisant la bibliothèque de client de clés .NET.
Ressources de la bibliothèque de client de clés Key Vault :
Documentation de référence sur l’API | Code source de la bibliothèque | Package (NuGet)
Pour plus d’informations sur Key Vault et les clés, consultez :
Prérequis
- Un abonnement Azure : créez-en un gratuitement
- SDK .NET 6 ou ultérieur
- Azure CLI
- Un coffre de clés. Vous pouvez en créer un en utilisant le portail Azure, Azure CLI ou Azure PowerShell
Ce guide de démarrage rapide utilise dotnet
et Azure CLI
Programme d’installation
Ce guide de démarrage rapide utilise la bibliothèque Azure Identity avec Azure CLI pour authentifier l’utilisateur auprès des services Azure. 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.
Connexion à Azure
Exécutez la commande
login
.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.
Sinon, ouvrez une page de navigateur à l’adresse https://aka.ms/devicelogin et entrez le code d’autorisation affiché dans votre terminal.
Dans le navigateur, connectez-vous avec les informations d’identification de votre compte.
Accorder l’accès à votre coffre de clés
Pour obtenir des autorisations sur votre coffre de clés par le Contrôle d’accès en fonction du rôle (RBAC), attribuez un rôle à votre « nom d’utilisateur principal » (UPN) à l’aide de la commande Azure CLI az role assignment create.
az role assignment create --role "Key Vault Crypto Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Remplacez <upn>, <subscription-id>, <resource-group-name> et <your-unique-keyvault-name> par vos valeurs réelles. Votre nom d’utilisateur principal (UPN) se présente généralement sous la forme d’une adresse électronique (par exemple username@domain.com).
Créer une application console .NET
Dans un shell de commandes, exécutez la commande suivante pour créer un projet nommé
key-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 :
dotnet build
La sortie de génération ne doit contenir aucun avertissement ni erreur.
Build succeeded. 0 Warning(s) 0 Error(s)
Installer les packages
À partir de l’interpréteur de commandes, installez la bibliothèque de client de clés Azure Key Vault pour .NET :
dotnet add package Azure.Security.KeyVault.Keys
Pour ce guide de démarrage rapide, vous devez également installer la bibliothèque de client Azure Identity :
dotnet add package Azure.Identity
Définir des variables d’environnement
Cette application utilise le nom de coffre de clés en tant que variable d’environnement appelée KEY_VAULT_NAME
.
Windows
set KEY_VAULT_NAME=<your-key-vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<your-key-vault-name>"
macOS ou Linux
export KEY_VAULT_NAME=<your-key-vault-name>
Modèle objet
La bibliothèque de client de clés Azure Key Vault pour .NET vous permet de gérer des clés. La section Exemples de code montre comment créer un client et définir, récupérer et supprimer une clé.
Exemples de code
Ajouter des directives
Ajoutez les directives suivantes en haut de Program.cs :
using System;
using Azure.Identity;
using Azure.Security.KeyVault.Keys;
Authentifier et créer un client
Les requêtes d’application vers les Services Azure doivent être autorisées. L’utilisation de la classe DefaultAzureCredential fournie par la bibliothèque de client Azure Identity est l’approche recommandée pour implémenter des connexions sans mot de passe aux services Azure dans votre code. DefaultAzureCredential
prend en charge plusieurs méthodes d’authentification et détermine quelle méthode doit être utilisée au moment de l’exécution. Cette approche permet à votre application d’utiliser différentes méthodes d’authentification dans différents environnements (local ou production) sans implémenter de code spécifique à l’environnement.
Dans ce guide de démarrage rapide, DefaultAzureCredential
s’authentifie auprès du coffre de clés à l’aide des informations d’identification de l’utilisateur de développement local connecté à Azure CLI. Quand l’application est déployée sur Azure, le même code DefaultAzureCredential
peut découvrir et utiliser automatiquement une identité managée affectée à un service d’application, une machine virtuelle ou d’autres services. Pour plus d’informations, consultez Vue d’ensemble des identités managées.
Dans cet exemple, 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
. Pour plus d’informations sur l’authentification auprès du coffre de clés, consultez le Guide du développeur.
var keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");
var kvUri = $"https://{keyVaultName}.vault.azure.net";
var client = new KeyClient(new Uri(kvUri), new DefaultAzureCredential());
Enregistrer une clé
Pour cette tâche, utilisez la méthode CreateKeyAsync. Les paramètres de la méthode acceptent un nom de clé et le type de clé.
var key = await client.CreateKeyAsync("myKey", KeyType.Rsa);
Notes
Si le nom de clé existe, ce code crée une nouvelle version de cette clé.
Récupérer une clé
Vous pouvez maintenant récupérer la clé créée précédemment à l’aide de la méthode GetKeyAsync.
var key = await client.GetKeyAsync("myKey");
Supprimer une clé
Pour finir, nous allons supprimer et purger la clé de votre coffre de clés avec les méthodes StartDeleteKeyAsync et PurgeDeletedKeyAsync.
var operation = await client.StartDeleteKeyAsync("myKey");
// You only need to wait for completion if you want to purge or recover the key.
await operation.WaitForCompletionAsync();
var key = operation.Value;
await client.PurgeDeletedKeyAsync("myKey");
Exemple de code
Modifiez l’application console .NET pour interagir avec le coffre de clés en effectuant les étapes suivantes :
Remplacez le code dans Program.cs par le code suivant :
using System; using System.Threading.Tasks; using Azure.Identity; using Azure.Security.KeyVault.Keys; namespace key_vault_console_app { class Program { static async Task Main(string[] args) { const string keyName = "myKey"; var keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME"); var kvUri = $"https://{keyVaultName}.vault.azure.net"; var client = new KeyClient(new Uri(kvUri), new DefaultAzureCredential()); Console.Write($"Creating a key in {keyVaultName} called '{keyName}' ..."); var createdKey = await client.CreateKeyAsync(keyName, KeyType.Rsa); Console.WriteLine("done."); Console.WriteLine($"Retrieving your key from {keyVaultName}."); var key = await client.GetKeyAsync(keyName); Console.WriteLine($"Your key version is '{key.Value.Properties.Version}'."); Console.Write($"Deleting your key from {keyVaultName} ..."); var deleteOperation = await client.StartDeleteKeyAsync(keyName); // You only need to wait for completion if you want to purge or recover the key. await deleteOperation.WaitForCompletionAsync(); Console.WriteLine("done."); Console.Write($"Purging your key from {keyVaultName} ..."); await client.PurgeDeletedKeyAsync(keyName); Console.WriteLine(" done."); } } }
Tester et vérifier
Exécutez la commande suivante pour générer le projet :
dotnet build
Exécutez la commande suivante pour exécuter l’application.
dotnet run
Quand vous y êtes invité, entrez une valeur de secret. Par exemple, mySecretPassword.
Une variante de la sortie suivante apparaît :
Creating a key in mykeyvault called 'myKey' ... done. Retrieving your key from mykeyvault. Your key version is '8532359bced24e4bb2525f2d2050738a'. Deleting your key from jl-kv ... done Purging your key from <your-unique-keyvault-name> ... done.
Étapes suivantes
Dans ce guide de démarrage rapide, vous avez créé un coffre de clés, stocké une clé et récupéré cette clé.
Pour plus d’informations sur Key Vault et comment l’intégrer à vos applications, consultez les articles suivants :
- Lire la vue d’ensemble Azure Key Vault
- Lire la Vue d’ensemble des clés
- Consultez un Tutoriel sur l’accès à Key Vault depuis une application App Service
- Consultez un Tutoriel sur l’accès à Key Vault depuis une machine virtuelle
- Consulter le Guide du développeur Azure Key Vault
- Passer en revue la Vue d’ensemble de la sécurité de Key Vault