Ajouter Key Vault à votre application web à l’aide des Services connectés Visual Studio

Dans ce tutoriel, vous allez voir comment ajouter facilement tout ce dont vous avez besoin pour utiliser Azure Key Vault en vue de gérer les secrets de vos projets web dans Visual Studio, que vous utilisiez ASP.NET Core ou tout type de projet ASP.NET. Quand vous utilisez la fonctionnalité Services connectés de Visual Studio, Visual Studio peut ajouter automatiquement tous les packages NuGet et les paramètres de configuration dont vous avez besoin pour vous connecter à Key Vault dans Azure.

Pour plus d’informations sur les changements qu’apportent les Services connectés à votre projet pour l’activation de Key Vault, consultez Key Vault Connected Service - What happened to my ASP.NET project ou Key Vault Connected Service - What happened to my ASP.NET Core project.

Prérequis

Ajouter la prise en charge Key Vault à votre projet

Avant de commencer, vérifiez que vous êtes connecté à Visual Studio. Connectez-vous avec le même compte que celui que vous utilisez pour votre abonnement Azure. Ouvrez ensuite un projet web ASP.NET 4.7.1 (ou version ultérieure) ou ASP.NET Core, puis procédez de la façon suivante. Les étapes indiquées concernent Visual Studio 2022 version 17.4. Les étapes peuvent varier légèrement dans les autres versions de Visual Studio.

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet auquel vous souhaitez ajouter la prise en charge de Key Vault, puis choisissez Ajouter>Service connecté. Sous Dépendances de service, choisissez l’icône +. La page Service connecté s’affiche et montre des services que vous pouvez ajouter à votre projet.

  2. Dans le menu des services disponibles, choisissez Azure Key Vault et cliquez sur Suivant.

    Choisir « Azure Key Vault »

  3. Sélectionnez l’abonnement que vous souhaitez utiliser, puis, si vous avez déjà un coffre de clés que vous souhaitez utiliser, sélectionnez-le, puis cliquez sur Suivant.

    Capture d’écran Sélectionner votre abonnement

  4. Si vous n’avez pas de coffre de clés existant, cliquez sur Créer un coffre de clés. Vous serez invité à indiquer le groupe de ressources, l’emplacement et la référence SKU.

    Capture de l’écran « Créer un coffre de clés Azure »

  5. Dans l’écran Configurer Key Vault, vous pouvez modifier le nom de la variable d’environnement qui référence l’URI du coffre de clés. La chaîne de connexion n’est pas stockée ici ; elle est stockée dans le coffre de clés.

    Capture de l’écran Se connecter à Azure Key Vault.

  6. Cliquez sur Suivant pour lire le récapitulatif des modifications, puis sur Terminer.

À présent, la connexion à Key Vault est établie et vous pouvez accéder à vos secrets dans le code. Si vous venez de créer un coffre de clés, testez-le en créant un secret que vous pouvez référencer dans le code. Vous pouvez créer un secret avec le portail Azure, PowerShell ou Azure CLI.

Pour voir des exemples de code qui utilisent des secrets, consultez Bibliothèque de client des secrets Azure Key Vault pour .NET - Exemples de code.

Configuration de l’accès au coffre de clés

Si votre Key Vault s’exécute sur un autre compte Microsoft que celui auquel vous êtes connecté à Visual Studio (par exemple, Key Vault s’exécute sur votre compte professionnel, alors que Visual Studio utilise votre compte privé), un message d’erreur indiquant que Visual Studio ne peut pas avoir accès à Key Vault est ajouté à votre fichier Program.cs. Pour résoudre ce problème, accédez au Portail Azure, ouvrez votre coffre de clés et choisissez Contrôle d’accès (IAM) pour définir les autorisations. Consultez Donner accès aux clés, certificats et secrets du coffre de clés avec un contrôle d’accès en fonction du rôle Azure.

Remarque

Les anciens coffres de clés pourraient utiliser un modèle de stratégie d’accès hérité. Il est recommandé de migrer les coffres de clés plus anciens pour utiliser Azure RBAC. Consultez Contrôle d’accès en fonction du rôle Azure (RBAC) et stratégies d’accès.

Modifications apportées à votre projet ASP.NET Core

Cette section identifie les changements exacts apportés à un projet ASP.NET lors de l’ajout du Service connecté Key Vault avec Visual Studio.

Références ajoutées pour ASP.NET Core

Affecte les références .NET du fichier projet et les références de package NuGet.

Type Informations de référence
NuGet Microsoft.AspNetCore.AzureKeyVault.HostingStartup

Fichiers ajoutés pour ASP.NET Core

  • Ajout de ConnectedService.json, qui enregistre des informations sur le fournisseur et la version du service connecté, ainsi qu’un lien vers la documentation.

Modifications apportées au fichier projet pour ASP.NET Core

  • Ajout de l’ItemGroup des services connectés et du fichier ConnectedServices.json.

Modifications de launchsettings.json pour ASP.NET Core

  • Ajout des entrées de variables d’environnement suivantes au profil IIS Express et au profil qui correspond au nom de votre projet web :

      "environmentVariables": {
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONENABLED": "true",
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONVAULT": "<your keyvault URL>"
      }
    

Modifications apportées à Azure pour ASP.NET Core

  • Création d’un groupe de ressources (ou utilisation d’un groupe existant).
  • Création d’un coffre de clés dans le groupe de ressources spécifié.

Modifications apportées à votre projet ASP.NET Framework

Cette section identifie les changements exacts apportés à un projet ASP.NET lors de l’ajout du Service connecté Key Vault avec Visual Studio.

Références ajoutées pour ASP.NET Framework

Affecte les références .NET du fichier projet et packages.config (références NuGet).

Type Informations de référence
.NET ; NuGet Azure.Identity
.NET ; NuGet Azure.Security.KeyVault.Keys
.NET ; NuGet Azure.Security.KeyVault.Secrets

Important

Par défaut, Azure.Identity 1.1.1 est installé, qui ne prend pas en charge les informations d’identification de Visual Studio. Vous pouvez mettre à jour manuellement la référence du package vers 1.2 et utiliser les informations d’identification de Visual Studio.

Fichiers ajoutés pour ASP.NET Framework

  • Ajout de ConnectedService.json, qui enregistre des informations sur le fournisseur et la version du service connecté, ainsi qu’un lien vers la documentation.

Modifications apportées au fichier projet pour ASP.NET Framework

  • Ajout de l’ItemGroup des services connectés et du fichier ConnectedServices.json.
  • Références aux assemblys .NET décrits dans la section Références ajoutées.

Étapes suivantes

Si vous avez suivi ce tutoriel, vos autorisations Key Vault sont configurées pour s’exécuter avec votre propre abonnement Azure, mais cela peut ne pas être souhaitable pour un scénario de production. Vous pouvez créer une identité managée afin de gérer l’accès à Key Vault pour votre application. Consultez Comment s’authentifier auprès de Key Vault et Attribuer une stratégie d’accès Key Vault.

Découvrez plus en détail le développement de coffres de clés en lisant le Guide du développeur de coffre de clés.

Si votre objectif est de stocker une configuration d’application ASP.NET Core dans un coffre de clés Azure, consultez Fournisseur de configuration Azure Key Vault dans ASP.NET Core.