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
- Ein Azure-Konto. Wenn Sie nicht über ein Azure-Konto verfügen, aktivieren Sie Ihre Azure-Nutzen für Visual Studio-Abonnenten oder registrieren Sie sich für eine kostenlose Testversion.
- Visual Studio 2019, Version 16.3 oder höher. Jetzt herunterladen
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.
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.
Wählen Sie im Menü der verfügbaren Dienste Azure Key Vault aus, und klicken Sie auf Weiter.
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.
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.
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.
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 Schlüsseltresor-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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für