Freigeben über


Authentifizieren von .NET-Apps bei Azure-Diensten während der lokalen Entwicklung mithilfe von Entwicklerkonten

Während der lokalen Entwicklung müssen sich Anwendungen bei Azure authentifizieren, um unterschiedliche Azure-Dienste zu verwenden. Authentifizieren Sie sich lokal mithilfe eines der folgenden Ansätze:

In diesem Artikel wird erläutert, wie Sie sich mithilfe eines Entwicklerkontos mit Tools authentifizieren, die von der Azure Identity-Bibliothek unterstützt werden. In den folgenden Abschnitten lernen Sie Folgendes:

  • Verwenden von Microsoft Entra-Gruppen zum effizienten Verwalten von Berechtigungen für mehrere Entwicklerkonten.
  • So weisen Sie Entwicklerkonten Rollen zur Verwaltung von Berechtigungen zu.
  • So melden Sie sich bei unterstützten lokalen Entwicklungstools an.
  • So authentifizieren Sie sich mithilfe eines Entwicklerkontos aus Ihrem App-Code.

Unterstützte Entwicklertools für die Authentifizierung

Damit eine App bei Azure während der lokalen Entwicklung mithilfe der Azure-Anmeldeinformationen des Entwicklers authentifiziert werden kann, muss der Entwickler über eine der folgenden Entwicklertools bei Azure angemeldet sein:

  • Azure-Befehlszeilenschnittstelle (Azure CLI)
  • Azure Developer CLI (Befehlszeilenschnittstelle für Entwickler)
  • Azure PowerShell
  • Visual Studio
  • Visual Studio Code

Die Azure Identity-Bibliothek kann erkennen, dass der Entwickler von einem dieser Tools aus angemeldet ist. Die Bibliothek kann dann das Microsoft Entra-Zugriffstoken über das Tool abrufen, um die App bei Azure als angemeldeten Benutzer zu authentifizieren.

Dieser Ansatz nutzt die vorhandenen Azure-Konten des Entwicklers, um den Authentifizierungsprozess zu optimieren. Das Konto eines Entwicklers verfügt jedoch wahrscheinlich über mehr Berechtigungen als für die App erforderlich, wodurch die Berechtigungen überschritten werden, mit denen die App in der Produktion ausgeführt wird. Alternativ können Sie Anwendungsdienstprinzipale erstellen, die während der lokalen Entwicklung verwendet werden können, die nur auf den Von der App benötigten Zugriff zugreifen können.

Erstellen einer Microsoft Entra-Gruppe für die lokale Entwicklung

Erstellen Sie eine Microsoft Entra-Gruppe, um die Rollen (Berechtigungen) zu kapseln, die die App in der lokalen Entwicklung benötigt, anstatt die Rollen einzelnen Dienstprinzipalobjekten zuzuweisen. Dieser Ansatz bietet die folgenden Vorteile:

  • Jeder Entwickler hat die gleichen Rollen auf Gruppenebene zugewiesen.
  • Wenn eine neue Rolle für die App erforderlich ist, muss sie nur der Gruppe für die App hinzugefügt werden.
  • Wenn ein neuer Entwickler dem Team beitritt, wird ein neuer Anwendungsdienstprinzipal für den Entwickler erstellt und der Gruppe hinzugefügt, um sicherzustellen, dass der Entwickler über die richtigen Berechtigungen für die Arbeit an der App verfügt.
  1. Navigieren Sie im Azure-Portal zur Übersichtsseite der Microsoft Entra-ID .

  2. Wählen Sie im linken Menü "Alle Gruppen " aus.

  3. Wählen Sie auf der Seite "Gruppen " die Option "Neue Gruppe" aus.

  4. Füllen Sie auf der Seite "Neue Gruppe " die folgenden Formularfelder aus:

    • Gruppentyp: Wählen Sie Sicherheit aus.
    • Gruppenname: Geben Sie einen Namen für die Gruppe ein, die einen Verweis auf den App- oder Umgebungsnamen enthält.
    • Gruppenbeschreibung: Geben Sie eine Beschreibung ein, die den Zweck der Gruppe erläutert.

    Screenshot zum Erstellen einer Gruppe im Azure-Portal.

  5. Wählen Sie unter Mitglieder den Link Keine Mitglieder ausgewählt aus, um der Gruppe Mitglieder hinzuzufügen.

  6. Suchen Sie im daraufhin geöffneten Flyoutbereich nach dem zuvor erstellten Dienstprinzipal, und wählen Sie ihn aus den gefilterten Ergebnissen aus. Wählen Sie unten im Bereich die Schaltfläche "Auswählen " aus, um Ihre Auswahl zu bestätigen.

  7. Wählen Sie unten auf der Seite "Neue Gruppe erstellen" aus, um die Gruppe zu erstellen und zur Seite "Alle Gruppen" zurückzukehren. Wenn die neue Gruppe nicht aufgeführt ist, warten Sie einen Moment, und aktualisieren Sie die Seite.

Weisen Sie der Gruppe Rollen zu

Ermitteln Sie als Nächstes, welche Rollen (Berechtigungen) Ihre App für welche Ressourcen benötigt, und weisen Sie diese Rollen der von Ihnen erstellten Microsoft Entra-Gruppe zu. Gruppen können einer Rolle im Ressourcen-, Ressourcengruppen- oder Abonnementbereich zugewiesen werden. In diesem Beispiel wird gezeigt, wie Rollen im Ressourcengruppenbereich zugewiesen werden, da die meisten Apps alle ihre Azure-Ressourcen in einer einzelnen Ressourcengruppe gruppieren.

  1. Navigieren Sie im Azure-Portal zur Seite "Übersicht" der Ressourcengruppe, die Ihre App enthält.

  2. Wählen Sie im linken Navigationsbereich die Option Zugriffssteuerung (IAM).

  3. Wählen Sie auf der Seite access control (IAM)+ Hinzufügen und dann im Dropdownmenü " Rollenzuweisung hinzufügen " aus. Die Seite " Rollenzuweisung hinzufügen " bietet mehrere Registerkarten zum Konfigurieren und Zuweisen von Rollen.

  4. Verwenden Sie auf der Registerkarte " Rolle " das Suchfeld, um die Rolle zu suchen, die Sie zuweisen möchten. Wählen Sie die Rolle und dann "Weiter" aus.

  5. Auf der Registerkarte „Mitglieder“

    • Wählen Sie für den Wert "Zugriff zuweisen""Benutzer", "Gruppe" oder "Dienstprinzipal" aus.
    • Wählen Sie für den Wert " Mitglieder " die Option "Mitglieder auswählen " aus, um den Flyoutbereich " Mitglieder auswählen " zu öffnen.
    • Suchen Sie nach der Zuvor erstellten Microsoft Entra-Gruppe, und wählen Sie sie aus den gefilterten Ergebnissen aus. Wählen Sie Auswählen aus, um die Gruppe auszuwählen und das Flyout-Panel zu schließen.
    • Wählen Sie "Überprüfen" und "Zuweisen " am unteren Rand der Registerkarte " Mitglieder " aus.

    Screenshot, der zeigt, wie sie der Microsoft Entra-Gruppe eine Rolle zuweisen.

  6. Wählen Sie auf der Registerkarte " Überprüfen+ Zuweisen " die Option "Überprüfen" und "Zuweisen " am unteren Rand der Seite aus.

Anmelden bei Azure mithilfe von Entwicklertools

Melden Sie sich als Nächstes mit einem von mehreren Entwicklertools bei Azure an, die zum Durchführen der Authentifizierung in Ihrer Entwicklungsumgebung verwendet werden können. Das Konto, das Sie authentifizieren, sollte auch in der Microsoft Entra-Gruppe vorhanden sein, die Sie zuvor erstellt und konfiguriert haben.

Entwickler, die Visual Studio 2017 oder höher verwenden, können sich über die IDE mit ihrem Entwicklerkonto authentifizieren. Apps, die DefaultAzureCredential oder VisualStudioCredential verwenden, können dieses Konto entdecken und nutzen, um App-Anforderungen bei der lokalen Ausführung zu authentifizieren. Dieses Konto wird auch verwendet, wenn Sie Apps direkt aus Visual Studio in Azure veröffentlichen.

Von Bedeutung

Sie müssen den Azure-Entwicklungsworkload installieren , um visual Studio-Tools für die Azure-Authentifizierung, -Entwicklung und -Bereitstellung zu aktivieren.

  1. Navigieren Sie in Visual Studio zu ">", um das Dialogfeld "Optionen" zu öffnen.

  2. Geben Sie im Feld "Suchoptionen " oben Azure ein, um die verfügbaren Optionen zu filtern.

  3. Wählen Sie unter Azure Service Authenticationdie Option "Kontoauswahl" aus.

  4. Wählen Sie das Dropdownmenü unter "Konto auswählen " aus, und fügen Sie ein Microsoft-Konto hinzu.

  5. Geben Sie im daraufhin geöffneten Fenster die Anmeldeinformationen für Ihr gewünschtes Azure-Konto ein, und bestätigen Sie dann Ihre Eingaben.

    Screenshot, der zeigt, wie Sie sich mit Visual Studio bei Azure anmelden.

  6. Wählen Sie 'OK' aus, um das Dialogfeld "Optionen" zu schließen.

Authentifizieren von Azure-Diensten aus Ihrer App

Die Azure Identity-Bibliothek bietet Implementierungen, die TokenCredential verschiedene Szenarien und Microsoft Entra-Authentifizierungsflüsse unterstützen. Die folgenden Schritte veranschaulichen, wie Anmeldeinformationen für DefaultAzureCredential oder ein spezifisches Entwicklungstool beim lokalen Arbeiten mit Benutzerkonten verwendet werden.

Implementieren des Codes

Führen Sie die folgenden Schritte aus:

  1. Fügen Sie Verweise auf die Pakete "Azure.Identity " und " Microsoft.Extensions.Azure " in Ihrem Projekt hinzu:

    dotnet add package Azure.Identity
    dotnet add package Microsoft.Extensions.Azure
    
  2. Fügen Sie im Program.cs Direktiven für die Namespaces Azure.Identity und Microsoft.Extensions.Azure hinzu.

  3. Registrieren Sie den Azure-Dienstclient mithilfe der entsprechenden `Add`-präfixierten Erweiterungsmethode.

    Auf Azure-Dienste wird mithilfe spezieller Clientklassen aus den Azure SDK-Clientbibliotheken zugegriffen. Registrieren Sie diese Clienttypen, damit Sie über die Abhängigkeitseinfügung in Ihrer App darauf zugreifen können.

  4. Übergeben Sie eine TokenCredential Instanz an die UseCredential Methode. Zu den gängigen Beispielen TokenCredential gehören:

    • Eine DefaultAzureCredential Instanz, die für die lokale Entwicklung optimiert ist. In diesem Beispiel wird die Umgebungsvariable AZURE_TOKEN_CREDENTIALS auf dev gesetzt. Weitere Informationen finden Sie unter Ausschließen eines Berechtigungstyps.

      builder.Services.AddAzureClients(clientBuilder =>
      {
          clientBuilder.AddBlobServiceClient(
              new Uri("https://<account-name>.blob.core.windows.net"));
      
          DefaultAzureCredential credential = new(
              DefaultAzureCredential.DefaultEnvironmentVariableName);
          clientBuilder.UseCredential(credential);
      });
      
    • Eine Instanz einer Anmeldeinformation, die einem bestimmten Entwicklungstool entspricht, z. B. VisualStudioCredential.

      builder.Services.AddAzureClients(clientBuilder =>
      {
          clientBuilder.AddBlobServiceClient(
              new Uri("https://<account-name>.blob.core.windows.net"));
      
          VisualStudioCredential credential = new();
          clientBuilder.UseCredential(credential);
      });
      

    Tipp

    Wenn Ihr Team mehrere Entwicklungstools für die Authentifizierung bei Azure verwendet, bevorzugen Sie eine lokale entwicklungsoptimierte Instanz von DefaultAzureCredential über toolspezifischen Anmeldeinformationen.