Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce tutoriel, vous utilisez le service Azure App Configuration avec Azure Key Vault. App Configuration et Key Vault sont des services complémentaires utilisés côte à côte dans la plupart des déploiements d’applications.
Votre application peut utiliser le fournisseur client App Configuration pour récupérer les références Key Vault, tout comme pour les autres clés stockées dans App Configuration. Lorsque vous ajoutez une référence Key Vault à App Configuration, App Configuration crée une clé qui référence la valeur stockée dans Key Vault. La valeur que App Configuration stocke n’est pas une valeur ou des informations d’identification Key Vault. Au lieu de cela, il s’agit d’un URI qui référence la valeur dans Key Vault. Étant donné que le fournisseur client reconnaît la clé comme référence Key Vault, il utilise Key Vault pour récupérer sa valeur.
Votre application est chargée de s’authentifier correctement auprès d’App Configuration et auprès de Key Vault. Les deux services ne communiquent pas directement.
Ce tutoriel vous montre comment implémenter des références Key Vault dans votre code. Il s’appuie sur l’application web présentée dans le démarrage rapide d’ASP.NET Core répertorié dans les prérequis ci-dessous. Avant de continuer, suivez ce guide de démarrage rapide.
Vous pouvez utiliser l’éditeur de code de votre choix pour exécuter les étapes de ce tutoriel. Par exemple, Visual Studio Code est un éditeur de code multiplateforme qui est disponible pour les systèmes d’exploitation Windows, macOS et Linux.
Dans ce tutoriel, vous allez :
- Créer une clé App Configuration qui référence une valeur stockée dans Key Vault.
- Accéder à la valeur de cette clé à partir d’une application web ASP.NET Core.
Prérequis
Terminez le guide de démarrage rapide Créer une application ASP.NET Core avec App Configuration .
Créer un coffre de clés
Accédez au portail Azure, puis sélectionnez Créer une ressource.
Dans la zone de recherche, entrez Key Vault. Dans la liste des résultats, sélectionnez Key Vault.
Dans la page Key Vault , sélectionnez Créer.
Dans la page Créer un coffre de clés , entrez les informations suivantes :
- Pour l’abonnement : sélectionnez un abonnement.
- Pour le groupe de ressources : entrez le nom d’un groupe de ressources existant ou sélectionnez Créer et entrez un nom de groupe de ressources.
- Pour le nom du coffre de clés : entrez un nom unique.
- Pour la région : sélectionnez un emplacement.
Pour les autres options, utilisez les valeurs par défaut.
Sélectionnez Vérifier + créer.
Une fois le système validé et affiché vos entrées, sélectionnez Créer.
À ce stade, votre compte Azure est le seul autorisé à accéder à ce nouveau coffre.
Ajouter un secret au coffre de clés
Pour tester la récupération de Key Vault dans votre application, commencez par ajouter un secret dans le coffre-fort en suivant les étapes ci-dessous. Le secret que vous ajoutez est appelé Message et sa valeur est « Hello from Key Vault ».
Dans le menu de la ressource Key Vault, sélectionnez Objets>Secrets.
Sélectionnez Générer/Importer.
Dans la boîte de dialogue Créer un secret , entrez les valeurs suivantes :
- Pour les options de chargement : Entrer Manual.
- Nom : entrez le message.
- Pour la valeur secrète : entrez Bonjour depuis Key Vault.
Pour les autres options, utilisez les valeurs par défaut.
Sélectionnez Create (Créer).
Ajouter une référence Key Vault à App Configuration
Connectez-vous au portail Azure. Sélectionnez Toutes les ressources, puis sélectionnez le magasin App Configuration que vous créez dans le guide de démarrage rapide.
Sélectionnez l’Explorateur de configuration.
Sélectionnez Créer une>référence Key Vault, puis entrez les valeurs suivantes :
- Pour Clé : entrez TestApp :Settings :KeyVaultMessage.
- Pour l’étiquette : laissez la valeur vide.
- Pour l’abonnement, le groupe de ressources et Key Vault : entrez les valeurs que vous utilisez lorsque vous créez le coffre de clés précédemment dans ce didacticiel.
- Pour secret : sélectionnez le secret nommé Message que vous créez dans la section précédente.
Mettre à jour votre code pour utiliser une référence Key Vault
Accédez au dossier qui contient le projet d’application web core ASP.NET que vous avez créé dans le guide de démarrage rapide.
Depuis une invite de commandes, exécutez la commande suivante. Cette commande ajoute la référence du
Azure.Identitypackage NuGet à votre fichier projet ou la met à jour.dotnet add package Azure.IdentityOuvrez Program.cs. Dans la section de directive
using, ajoutez la ligne suivante pour importer les types à partir de l’espace de nomsAzure.Identity:using Azure.Identity;Dans Program.cs, remplacez l’appel à la
AddAzureAppConfigurationméthode par l’appel dans le code suivant. L’appel mis à jour inclut l’optionConfigureKeyVault. Cette option utilise la méthodeSetCredentialpour transmettre les identifiants nécessaires à l’authentification auprès de votre coffre de clés.var builder = WebApplication.CreateBuilder(args); // Retrieve the App Configuration endpoint. string endpoint = builder.Configuration.GetValue<string>("Endpoints:AppConfiguration") // Load the configuration from App Configuration. builder.Configuration.AddAzureAppConfiguration(options => { options.Connect(new Uri(endpoint), new DefaultAzureCredential()); options.ConfigureKeyVault(keyVaultOptions => { keyVaultOptions.SetCredential(new DefaultAzureCredential()); }); });Conseil
Si vous avez plusieurs coffres de clés, le système utilisera les mêmes informations d’identification pour tous. Si vos coffres de clés nécessitent des informations d’identification différentes, vous pouvez les définir en utilisant les méthodes
RegisterouSetSecretResolverde la classeAzureAppConfigurationKeyVaultOptions.Pour accéder aux valeurs des références Key Vault dans votre code, accédez au dossier Pages de votre projet. Ouvrez Index.cshtml et remplacez son contenu par le code suivant. Le code du bloc précédent initialise la connexion App Configuration et configure la connexion Key Vault. Par conséquent, dans Index.cshtml, vous pouvez accéder aux valeurs des références Key Vault de la même manière que vous accédez aux valeurs des clés de configuration d'application régulières.
@page @using Microsoft.Extensions.Configuration @inject IConfiguration Configuration <style> body { background-color: @Configuration["TestApp:Settings:BackgroundColor"] } h1 { color: @Configuration["TestApp:Settings:FontColor"]; font-size: @Configuration["TestApp:Settings:FontSize"]px; } </style> <h1>@Configuration["TestApp:Settings:Message"] and @Configuration["TestApp:Settings:KeyVaultMessage"]</h1>Ce code accède à la valeur de la référence
TestApp:Settings:KeyVaultMessageKey Vault de la même façon qu’il accède à la valeur de configuration deTestApp:Settings:Message.
Autoriser votre application à accéder à Key Vault
App Configuration n’accède pas à votre coffre de clés. Au lieu de cela, votre application lit directement à partir de Key Vault. Vous devez donc accorder à votre application l’accès aux secrets dans votre coffre de clés. Ainsi, les secrets restent toujours avec votre application. Vous pouvez utiliser une stratégie d’accès Key Vault ou un contrôle d’accès en fonction du rôle Azure pour accorder l’accès.
Le code de ce didacticiel utilise la classe pour l’authentification DefaultAzureCredential . Ces informations d’identification de jeton agrégées essaient automatiquement plusieurs types d’informations d’identification, tels que EnvironmentCredential, ManagedIdentityCredential, SharedTokenCacheCredentialet VisualStudioCredential. Pour plus d’informations, consultez classe DefaultAzureCredential.
Vous pouvez remplacer DefaultAzureCredential par n’importe quel type d’informations d’identification explicite. Toutefois, lorsque vous utilisez DefaultAzureCredential, votre code peut s’exécuter dans des environnements locaux et Azure. Par exemple, lorsque votre application s’exécute dans Azure, DefaultAzureCredential utilise ManagedIdentityCredential. Mais lorsque vous utilisez Visual Studio pour le développement local, DefaultAzureCredential revient automatiquement à SharedTokenCacheCredential ou VisualStudioCredential.
Vous pouvez également définir les variables d’environnement AZURE_TENANT_ID, AZURE_CLIENT_ID, et AZURE_CLIENT_SECRET. Lorsque vous l’effectuez, DefaultAzureCredential utilise ces variables et EnvironmentCredential pour vous authentifier auprès de votre coffre de clés.
Après avoir déployé votre application sur un service Azure avec une identité managée activée, telle qu’Azure App Service, Azure Kubernetes Service ou Azure Container Instance, vous accordez l’identité managée du service Azure pour accéder à votre coffre de clés.
DefaultAzureCredential utilise automatiquement ManagedIdentityCredential lorsque votre application s’exécute dans Azure. Vous pouvez utiliser la même identité gérée pour vous authentifier avec la configuration de l’application et Key Vault. Pour plus d’informations, consultez Utiliser des identités gérées pour accéder à la configuration des applications.
Générer et exécuter l’application localement
Pour générer l’application à l’aide de l’interface CLI .NET, exécutez la commande suivante à l’invite de commandes :
dotnet buildUne fois la génération terminée, utilisez la commande suivante pour exécuter l’application web localement :
dotnet runDans la sortie de la
dotnet runcommande, recherchez une URL sur laquelle l’application web écoute, par exemplehttp://localhost:5292. Ouvrez un navigateur et accédez à cette URL.
Le texte de la page web comprend les composants suivants :
- Valeur associée à la clé
TestApp:Settings:Messagedans votre magasin App Configuration - Valeur du secret Message stocké dans votre coffre à clés
- Valeur associée à la clé
Nettoyer les ressources
Si vous ne souhaitez plus utiliser les ressources créées dans cet article, supprimez le groupe de ressources que vous avez créé ici afin d’éviter des frais.
Important
La suppression d’un groupe de ressources est irréversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement. Veillez à ne pas supprimer accidentellement les mauvaises ressources ou le mauvais groupe de ressources. Si vous avez créé les ressources pour cet article dans un groupe de ressources contenant d’autres ressources que vous souhaitez conserver, supprimez chaque ressource individuellement à partir de son volet, au lieu de supprimer l’intégralité du groupe de ressources.
- Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.
- Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
- Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
- Sélectionnez Supprimer le groupe de ressources.
- Vous êtes invité à confirmer la suppression du groupe de ressources. Entrez le nom de votre groupe de ressources à confirmer, puis sélectionnez Supprimer.
Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.