Tutoriel : Utiliser Azure Key Vault avec une machine virtuelle dans .NET
Article
Azure Key Vault vous permet de protéger des secrets tels que les clés API et les chaînes de connexion de base de données nécessaires pour accéder à vos applications, services et ressources.
Dans ce tutoriel, vous allez vous procurer une application console pour lire des informations d’Azure Key Vault. L’application utilise l’identité managée de la machine virtuelle pour s’authentifier auprès de Key Vault.
Ce didacticiel explique les procédures suivantes :
Créez un groupe de ressources.
Création d’un coffre de clés
Ajoutez un secret au coffre de clés.
Récupération d’un secret à partir du coffre de clés.
Créons un secret appelé mySecret avec la valeur Success! . Il peut s’agir d’un mot de passe, d’une chaîne de connexion SQL ou de toute autre information que vous devez sécuriser et garder à disposition pour votre application.
Pour ajouter un secret au coffre de clés que vous venez de créer, utilisez la commande suivante :
Pour accorder à vos autorisations d’application sur votre coffre de clés via le contrôle d’accès en fonction du rôle (RBAC), attribuez un rôle en utilisant la commande Azure CLI création de l’attribution de rôle az.
Azure CLI
az role assignment create --role"Key Vault Secrets User"--assignee"<app-id>"--scope"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Pour accorder à vos autorisations d’application sur votre coffre de clés via le contrôle d’accès en fonction du rôle (RBAC), attribuez un rôle en utilisant l’applet de commande Azure PowerShell New-AzRoleAssignment.
Remplacez <app-id>, <subscription-id>, <resource-group-name> et <your-unique-keyvault-name> par vos valeurs réelles. <app-id> est l’ID d’application (client) de votre application inscrite dans Microsoft Entra.
Pour ce guide de démarrage rapide, vous devez installer le package d’identité suivant pour vous authentifier auprès d’Azure Key Vault :
Console
dotnet add package Azure.Identity
Modifier l’application console
Ouvrez le fichier Program.cs et ajoutez ces packages :
C#
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Ajoutez ces lignes, en mettant à jour l’URI pour refléter la valeur vaultUri de votre coffre de clés. Le code ci-dessous utilise 'DefaultAzureCredential()' pour l’authentification auprès du coffre de clés, en utilisant le jeton de l’identité managée par l’application pour s’authentifier. Il utilise également l’interruption exponentielle pour les nouvelles tentatives en cas de limitation du coffre de clés.
C#
classProgram
{
staticvoidMain(string[] args)
{
string secretName = "mySecret";
string keyVaultName = "<your-key-vault-name>";
var kvUri = "https://<your-key-vault-name>.vault.azure.net";
SecretClientOptions options = new SecretClientOptions()
{
Retry =
{
Delay= TimeSpan.FromSeconds(2),
MaxDelay = TimeSpan.FromSeconds(16),
MaxRetries = 5,
Mode = RetryMode.Exponential
}
};
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential(),options);
Console.Write("Input the value of your secret > ");
string secretValue = Console.ReadLine();
Console.Write("Creating a secret in " + keyVaultName + " called '" + secretName + "' with the value '" + secretValue + "' ...");
client.SetSecret(secretName, secretValue);
Console.WriteLine(" done.");
Console.WriteLine("Forgetting your secret.");
secretValue = "";
Console.WriteLine("Your secret is '" + secretValue + "'.");
Console.WriteLine("Retrieving your secret from " + keyVaultName + ".");
KeyVaultSecret secret = client.GetSecret(secretName);
Console.WriteLine("Your secret is '" + secret.Value + "'.");
Console.Write("Deleting your secret from " + keyVaultName + " ...");
client.StartDeleteSecret(secretName);
System.Threading.Thread.Sleep(5000);
Console.WriteLine(" done.");
}
}
Nettoyer les ressources
Quand ils ne sont plus nécessaires, supprimez la machine virtuelle et le coffre de clés.