Verwenden verwalteter Identitäten für den Zugriff auf App Configuration
Microsoft Entra verwaltete Identitäten vereinfachen die Verwaltung von Geheimnissen für Ihre Cloud-Anwendung. Mit einer verwalteten Identität kann Ihr Code den Dienstprinzipal verwenden, der für den Azure-Dienst, auf dem er ausgeführt wird, erstellt wurde. Eine verwaltete Identität wird anstelle von separaten Anmeldeinformationen verwendet, die in Azure Key Vault oder in einer lokalen Verbindungszeichenfolge gespeichert sind.
Azure App Configuration und die zugehörigen .NET-, .NET Framework- und Java Spring-Clientbibliotheken verfügen über integrierte Unterstützung für die verwaltete Dienstidentität. Zwar müssen Sie die verwaltete Identität nicht verwenden, jedoch entfällt durch deren Verwendung die Notwendigkeit für ein Zugriffstoken mit Geheimnissen. Ihr Code kann nur mithilfe des Dienstendpunkts auf den App Configuration-Speicher zuzugreifen. Sie können diese URL direkt in Ihren Code einbetten, ohne Geheimnisse offenzulegen.
In diesem Artikel wird veranschaulicht, wie Sie die verwaltete Identität für den Zugriff auf App Configuration nutzen können. Dies baut auf der Web-App auf, die in den Schnellstartanleitungen vorgestellt wurde. Bevor Sie fortfahren, erstellen Sie zuerst eine ASP.NET Core-App mit App-Konfiguration.
In diesem Artikel wird veranschaulicht, wie Sie die verwaltete Identität für den Zugriff auf App Configuration nutzen können. Dies baut auf der Web-App auf, die in den Schnellstartanleitungen vorgestellt wurde. Erstellen Sie zunächst eine Java Spring-App mit Azure App Configuration, bevor Sie fortfahren.
Wichtig
Eine verwaltete Identität kann nicht zum Authentifizieren lokal ausgeführter Anwendungen verwendet werden. Ihre Anwendung muss in einem Azure-Dienst bereitgestellt werden, der verwaltete Identitäten unterstützt. In diesem Artikel wird Azure App Service als Beispiel verwendet. Das gleiche Konzept gilt jedoch auch für jeden anderen Azure-Dienst, der verwaltete Identitäten unterstützt. Beispielsweise Azure Kubernetes Service, Azure Virtual Machine und Azure Container Instances. Wenn Ihre Workload in einem dieser Dienste gehostet wird, können Sie auch die Unterstützung dieses Diensts für verwaltete Identitäten nutzen.
Für die Ausführung der Schritte dieses Tutorials können Sie einen beliebigen Code-Editor verwenden. Visual Studio Code ist eine hervorragende Option, die auf Windows-, macOS- und Linux-Plattformen verfügbar ist.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Gewähren des Zugriffs auf App Configuration für eine verwaltete Identität.
- Konfigurieren Ihrer App für die Verwendung einer verwalteten Identität bei der Verbindungsherstellung mit App Configuration.
Voraussetzungen
Für dieses Tutorial benötigen Sie Folgendes:
- Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie ein kostenloses Konto.
- Ein Azure App Configuration-Speicher. Erstellen Sie einen Speicher.
- .NET SDK 6.0 oder höher.
- Ein Azure-Konto mit einem aktiven Abonnement. Erstellen Sie ein kostenloses Konto.
- Ein Azure App Configuration-Speicher. Erstellen Sie einen Speicher.
- Ein unterstütztes Java Development Kit (JDK) mit Version 11.
- Apache Maven Version 3.0 oder höher
Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.
Hinzufügen einer verwalteten Identität
Um eine verwaltete Entität im Portal einzurichten, erstellen Sie zuerst eine Anwendung und aktivieren dann das Feature.
Greifen Sie im Azure-Portal auf Ihre App Services-Ressource zu. Wenn Sie über keine vorhandene App Services-Ressource verfügen, die Sie verwenden können, erstellen Sie eine.
Scrollen Sie im linken Bereich nach unten zur Gruppe Einstellungen, und wählen Sie Identität.
Ändern Sie auf der Registerkarte Systemseitig zugewiesen den Status in Ein, und wählen Sie Speichern aus.
Wenn Sie dazu aufgefordert werden, antworten Sie mit Ja, um die systemseitig zugewiesene verwaltete Identität zu aktivieren.
Gewähren des Zugriffs auf App Configuration
In den folgenden Schritten wird beschrieben, wie Sie App Service die Rolle App-Konfiguration-Datenleser zuweisen. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Wählen Sie im Azure-Portal Ihren App Configuration-Speicher aus.
Wählen Sie Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen.
Wenn Sie keine Berechtigung zum Zuweisen von Rollen haben, ist die Option Rollenzuweisung hinzufügen deaktiviert. Weitere Informationen finden Sie unter Integrierte Azure-Rollen.
Wählen Sie auf der Registerkarte Rolle die Rolle App-Konfiguration-Datenleser und dann Weiter aus.
Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.
Wählen Sie Ihr Azure-Abonnement und als verwaltete Identität App Service aus. Wählen Sie dann Ihren App Service-Namen aus.
Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.
Verwenden einer verwalteten Identität
Fügen Sie einen Verweis auf das Paket
Azure.Identity
hinzu:dotnet add package Azure.Identity
Suchen Sie den Endpunkt Ihres App Configuration-Speichers. Diese URL wird auf der Registerkarte Zugriffsschlüssel für den Speicher im Azure-Portal aufgelistet.
Öffnen Sie die Datei appsettings.json, und fügen Sie das folgende Skript hinzu: Ersetzen Sie <service_endpoint>, einschließlich der Klammern, durch die URL zu Ihrem App-Konfigurationsspeicher.
"AppConfig": { "Endpoint": "<service_endpoint>" }
Öffnen Sie die Datei Program.cs, und fügen Sie einen Verweis auf den
Azure.Identity
-Namespace hinzu:using Azure.Identity;
Um auf in App Configuration gespeicherte Werte zuzugreifen, aktualisieren Sie die
Builder
-Konfiguration so, dass sie dieAddAzureAppConfiguration()
-Methode verwendet.var builder = WebApplication.CreateBuilder(args); builder.Configuration.AddAzureAppConfiguration(options => options.Connect( new Uri(builder.Configuration["AppConfig:Endpoint"]), new ManagedIdentityCredential()));
Hinweis
Wenn Sie eine benutzerseitig zugewiesene verwaltete Identität verwenden möchten, achten Sie darauf, dass Sie beim Erstellen von ManagedIdentityCredential die
clientId
angeben.new ManagedIdentityCredential("<your_clientId>")
Wie in den Häufig gestellten Fragen zu verwalteten Identitäten für Azure-Ressourcen erläutert, gibt es eine Standardmethode, um aufzulösen, welche verwaltete Identität verwendet wird. In diesem Fall erzwingt die Azure-Identitätsbibliothek die Angabe der gewünschten Identität, um mögliche Laufzeitprobleme in der Zukunft zu vermeiden. Wenn beispielsweise eine neue benutzerseitig zugewiesene verwaltete Identität hinzugefügt wird oder wenn die systemseitig zugewiesene verwaltete Identität aktiviert wird. Daher müssen Sie die
clientId
auch dann angeben, wenn nur eine benutzerseitig zugewiesene verwaltete Identität definiert ist und keine systemseitig zugewiesene verwaltete Identität vorhanden ist.
Suchen Sie den Endpunkt Ihres App Configuration-Speichers. Diese URL ist auf der Registerkarte Übersicht für den Speicher im Azure-Portal aufgeführt.
Öffnen Sie
bootstrap.properties
, entfernen Sie die Eigenschaft „connection-string“, und ersetzen Sie sie durch den Endpunkt für die systemseitig zugewiesene Identität:
spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
Für benutzerseitig zugewiesene Identität:
spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
spring.cloud.azure.credential.managed-identity-enabled= true
spring.cloud.azure.credential.client-id= <client_id>
Hinweis
Weitere Informationen finden Sie unter Spring Cloud Azure-Authentifizierung.
Bereitstellen der Anwendung
Sie müssen Ihre App für einen Azure-Dienst bereitstellen, wenn Sie verwaltete Identitäten verwenden. Verwaltete Identitäten können nicht für die Authentifizierung lokal ausgeführter Apps verwendet werden. Um die .NET Core-App bereitzustellen, die Sie im Schnellstart Erstellen einer ASP.NET Core-App mit App Configuration erstellt und zur Verwendung verwalteter Identitäten geändert haben, befolgen Sie die Anleitung unter Veröffentlichen Ihrer Web-App.
Die Verwendung verwalteter Identitäten erfordert, dass Sie Ihre App in einem Azure-Dienst bereitstellen. Verwaltete Identitäten können nicht für die Authentifizierung lokal ausgeführter Apps verwendet werden. Um die Spring-App bereitzustellen, die Sie im Schnellstart Erstellen einer Java Spring-App mit Azure App Configuration erstellt und zur Verwendung verwalteter Identitäten geändert haben, befolgen Sie die Anleitung unter Veröffentlichen Ihrer Web-App.
Neben App Service unterstützen viele andere Azure-Dienste verwaltete Identitäten. Weitere Informationen finden Sie unter Dienste, die verwaltete Identitäten für Azure-Ressourcen unterstützen.
Bereinigen von Ressourcen
Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.
Wichtig
Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.
- Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
- Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
- Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
- Wählen Sie die Option Ressourcengruppe löschen.
- Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.
Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.
Nächste Schritte
In diesem Tutorial haben Sie eine verwaltete Azure-Identität hinzugefügt, um den Zugriff auf App Configuration zu optimieren und die Verwaltung der Anmeldeinformationen für Ihre App zu verbessern. Fahren Sie mit den Azure CLI-Beispielen fort, um mehr über die Verwendung von App Configuration zu erfahren.