Hinzufügen von Key Vault zu Ihrer Webanwendung mithilfe der Option „Verbundene Dienste“ in Visual Studio

In diesem Tutorial erfahren Sie, wie Sie auf einfache Weise alles hinzufügen, was Sie zum Verwalten Ihrer Geheimnisse mit Azure Key Vault für Webprojekte in Visual Studio benötigen – ganz unabhängig davon, ob Sie ASP.NET Core oder einen beliebigen Typ von ASP.NET-Projekt verwenden. Mit dem Feature „Verbundene Dienste“ in Visual Studio werden alle NuGet-Pakete und Konfigurationseinstellungen, die für eine Verbindung mit Key Vault in Azure erforderlich sind, von Visual Studio automatisch hinzugefügt.

Ausführliche Informationen zu den Änderungen, die durch verbundene Dienste in Ihrem Projekt durchgeführt werden, um Key Vault zu aktivieren, finden Sie unter Verbundener Key Vault-Dienst – Auswirkungen auf mein ASP.NET-Projekt bzw. unter Verbundener Key Vault-Dienst – Auswirkungen auf mein ASP.NET Core-Projekt.

Voraussetzungen

Hinzufügen von Key Vault-Unterstützung zu Ihrem Projekt

Vergewissern Sie sich zunächst, dass Sie bei Visual Studio angemeldet sind. Melden Sie sich mit dem gleichen Konto an, das Sie auch für Ihr Azure-Abonnement verwenden. Öffnen Sie dann ein Webprojekt (ASP.NET 4.7.1 oder höher oder ASP.NET Core), und führen Sie die folgenden Schritte aus. Die gezeigten Schritte gelten für Visual Studio 2022 Version 17.4. Der Flow kann sich für andere Versionen von Visual Studio geringfügig unterscheiden.

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, dem Sie die Key Vault-Unterstützung hinzufügen möchten, und wählen Sie Hinzufügen>Verbundener Dienst aus. Wählen Sie unter Dienstabhängigkeiten das +-Symbol aus. Die Seite „Verbundener Dienst“ wird mit den Diensten angezeigt, die Sie dem Projekt hinzufügen können.

  2. Wählen Sie im Menü der verfügbaren Dienste Azure Key Vault aus, und klicken Sie auf Weiter.

    Auswählen von „Azure Key Vault“

  3. Wählen Sie das Abonnement aus, das Sie verwenden möchten. Wenn Sie dann bereits über einen Schlüsseltresor verfügen, den Sie verwenden möchten, wählen Sie ihn aus, und klicken Sie auf Weiter.

    Screenshot des Auswählens Ihres Abonnements

  4. Wenn Sie noch keinen Key Vault haben, klicken Sie auf Neuen Key Vault erstellen. Sie werden aufgefordert, die Ressourcengruppe, den Speicherort und die SKU anzugeben.

    Screenshot des Bildschirms „Azure Key Vault erstellen“

  5. Im Bildschirm Schlüsseltresor konfigurieren können Sie den Namen der Umgebungsvariablen ändern, die auf den Schlüsseltresor-URI verweist. Die Verbindungszeichenfolge wird hier nicht gespeichert, sondern im Schlüsseltresor.

    Screenshot des Bildschirms „Verbindung mit Azure Key Vault herstellen“.

  6. Klicken Sie auf Weiter, um eine Zusammenfassung der Änderungen zu überprüfen, und klicken Sie dann auf Fertig stellen.

Nun wird die Verbindung mit Key Vault hergestellt, und Sie können auf Ihre Geheimnisse im Code zugreifen. Wenn Sie gerade einen neuen Schlüsseltresor erstellt haben, testen Sie ihn, indem Sie ein Geheimnis erstellen, auf das Sie im Code verweisen können. Sie können ein Geheimnis erstellen, indem Sie das Azure-Portal, PowerShell oder die Azure CLI verwenden.

Codebeispiele zum Arbeiten mit Geheimnissen finden Sie unter Azure Key Vault-Geheimnisse-Clientbibliothek für .NET – Codebeispiele.

Konfigurieren des Zugriffs auf den Schlüsseltresor

Wenn Ihr Schlüsseltresor in einem anderen Microsoft-Konto als dem ausgeführt wird, mit dem Sie bei Visual Studio angemeldet sind (wenn z. B. der Schlüsseltresor in Ihrem Geschäftskonto ausgeführt wird, für Visual Studio jedoch Ihr privates Konto verwendet wird), wird in der Datei „Program.cs“ die Fehlermeldung angezeigt, dass Visual Studio keinen Zugriff auf den Schlüsseltresor hat. Um dieses Problem zu beheben, wechseln Sie zum Azure-Portal, öffnen Sie Ihren Schlüsseltresor, und wählen Sie Access Control (IAM) aus, um Berechtigungen festzulegen. Weitere Informationen finden Sie unter Gewähren des Zugriffs auf Key Vault-Schlüssel, -Zertifikate und -Geheimnisse mit der rollenbasierten Zugriffssteuerung in Azure.

Hinweis

Ältere Schlüsseltresore verwenden möglicherweise ein veraltetes Zugriffsrichtlinienmodell. Es wird empfohlen, ältere Schlüsseltresore zu migrieren, um Azure RBAC zu verwenden. Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung in Azure (Azure RBAC) im Vergleich zu Zugriffsrichtlinien.

Ändern des ASP.NET Core-Projekts

In diesem Abschnitt werden die genauen Änderungen identifiziert, die an einem ASP.NET-Projekt vorgenommen werden, wenn der verbundene Schlüsseltresor-Dienst mit Visual Studio hinzugefügt wird.

Hinzugefügte Verweise für ASP.NET Core

Betrifft die .NET-Verweise der Projektdatei und NuGet-Verweise.

type Verweis
NuGet Microsoft.AspNetCore.AzureKeyVault.HostingStartup

Hinzugefügte Dateien für ASP.NET Core

  • ConnectedService.json wurde hinzugefügt. Diese Datei enthält Informationen zum Anbieter des verbundenen Diensts und zur Version sowie einen Link zur Dokumentation.

Änderungen an der Projektdatei für ASP.NET Core

  • Die Elementgruppe (ItemGroup) der verbundenen Dienste und die Datei ConnectedServices.json wurden hinzugefügt.

Änderungen an „launchsettings.json“ für ASP.NET Core

  • Dem IIS Express-Profil und dem Profil, das Ihrem Webprojektnamen entspricht, wurde die folgende Umgebungsvariable hinzugefügt:

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

Änderungen in Azure für ASP.NET Core

  • Eine Ressourcengruppe wurde erstellt (oder eine bereits vorhandene wurde verwendet).
  • Eine Schlüsseltresorinstanz wurde in der angegebenen Ressourcengruppe erstellt.

Ändern des ASP.NET Framework-Projekts

In diesem Abschnitt werden die genauen Änderungen identifiziert, die an einem ASP.NET-Projekt vorgenommen werden, wenn der verbundene Schlüsseltresor-Dienst mit Visual Studio hinzugefügt wird.

Hinzugefügte Verweise für ASP.NET Framework

Betrifft die Projektdatei (.NET-Verweise) und packages.config (NuGet-Verweise).

type Verweis
.NET; NuGet Azure.Identity
.NET; NuGet Azure.Security.KeyVault.Keys
.NET; NuGet Azure.Security.key vault.Secrets

Wichtig

Standardmäßig ist Azure.Identity 1.1.1 installiert. Diese Implementierung unterstützt keine Visual Studio-Anmeldeinformationen. Sie können den Paketverweis manuell auf Version 1.2 oder höher aktualisieren, um Visual Studio-Anmeldeinformationen zu verwenden.

Hinzugefügte Dateien für ASP.NET Framework

  • ConnectedService.json wurde hinzugefügt. Diese Datei enthält Informationen zum Anbieter des verbundenen Diensts und zur Version sowie einen Link zur Dokumentation.

Änderungen an der Projektdatei für ASP.NET Framework

  • Die Elementgruppe des verbundenen Diensts und die Datei „ConnectedServices.json“ wurden hinzugefügt.
  • Verweise auf die .NET-Assemblys werden im Abschnitt Hinzugefügte Verweise beschrieben.

Nächste Schritte

Wenn Sie dieses Tutorial befolgt haben, sind Ihre Key Vault-Berechtigungen so eingerichtet, dass sie mit Ihrem eigenen Azure-Abonnement ausgeführt werden, aber das ist für ein Produktionsszenario möglicherweise nicht wünschenswert. Sie können eine verwaltete Identität erstellen, um Key Vault-Zugriff für Ihre App zu verwalten. Weitere Informationen finden Sie unter Authentifizieren bei Key Vault und Zuweisen einer Key Vault-Zugriffsrichtlinie.

Weitere Informationen zur Key Vault-Entwicklung finden Sie im Key Vault-Entwicklerhandbuch.

Wenn Sie die Konfiguration für eine ASP.NET Core-App in einem Azure-Schlüsseltresor speichern möchten, lesen Sie Azure Key Vault-Konfigurationsanbieter in ASP.NET Core.