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:

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.

  1. 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.

  2. Scrollen Sie im linken Bereich nach unten zur Gruppe Einstellungen, und wählen Sie Identität.

  3. Ändern Sie auf der Registerkarte Systemseitig zugewiesen den Status in Ein, und wählen Sie Speichern aus.

  4. Wenn Sie dazu aufgefordert werden, antworten Sie mit Ja, um die systemseitig zugewiesene verwaltete Identität zu aktivieren.

    Screenshot of how to add a managed identity in App Service.

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.

  1. Wählen Sie im Azure-Portal Ihren App Configuration-Speicher aus.

  2. Wählen Sie Zugriffssteuerung (IAM) aus.

  3. Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen.

    Screenshot that shows the Access control (IAM) page with Add role assignment menu open.

    Wenn Sie keine Berechtigung zum Zuweisen von Rollen haben, ist die Option Rollenzuweisung hinzufügen deaktiviert. Weitere Informationen finden Sie unter Integrierte Azure-Rollen.

  4. Wählen Sie auf der Registerkarte Rolle die Rolle App-Konfiguration-Datenleser und dann Weiter aus.

    Screenshot that shows the Add role assignment page with Role tab selected.

  5. Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.

    Screenshot that shows the Add role assignment page with Members tab selected.

  6. Wählen Sie Ihr Azure-Abonnement und als verwaltete Identität App Service aus. Wählen Sie dann Ihren App Service-Namen aus.

    Screenshot that shows the select managed identities page.

  7. 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

  1. Fügen Sie einen Verweis auf das Paket Azure.Identity hinzu:

    dotnet add package Azure.Identity
    
  2. Suchen Sie den Endpunkt Ihres App Configuration-Speichers. Diese URL wird auf der Registerkarte Zugriffsschlüssel für den Speicher im Azure-Portal aufgelistet.

  3. Ö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>"
    }
    
  4. Öffnen Sie die Datei Program.cs, und fügen Sie einen Verweis auf die Namespaces Azure.Identity und Microsoft.Azure.Services.AppAuthentication hinzu:

    using Azure.Identity;
    
  5. Um auf in App Configuration gespeicherte Werte zuzugreifen, aktualisieren Sie die Builder-Konfiguration so, dass sie die AddAzureAppConfiguration()-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.

  1. Suchen Sie den Endpunkt Ihres App Configuration-Speichers. Diese URL ist auf der Registerkarte Übersicht für den Speicher im Azure-Portal aufgeführt.

  2. Ö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.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
  2. Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
  3. Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
  4. Wählen Sie die Option Ressourcengruppe löschen.
  5. 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.