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

Wenn Sie Cloudanwendungen erstellen, müssen Entwickler Anwendungen auf ihrer lokalen Arbeitsstation debuggen und testen. Wenn eine Anwendung während der lokalen Entwicklung auf der Arbeitsstation eines Entwicklers ausgeführt wird, muss sie sich weiterhin bei allen von der App verwendeten Azure-Diensten authentifizieren. In diesem Artikel wird beschrieben, wie Sie die Azure-Anmeldeinformationen eines Entwicklers verwenden, um die App während der lokalen Entwicklung bei Azure zu authentifizieren.

Ein Diagramm, das eine lokale Entwickler-App zeigt, die ausgeführt wird, um einen Dienstprinzipal aus einer env-Datei zu erhalten und diese Identität zum Herstellen einer Verbindung mit Azure-Ressourcen zu verwenden.

Damit eine App bei Azure während der lokalen Entwicklung mithilfe der Azure-Anmeldeinformationen des Entwicklers authentifiziert werden kann, muss der Entwickler über die Erweiterung Visual Studio Code Azure Tools, die Azure CLI oder Azure PowerShell bei Azure angemeldet sein. Das Azure SDK für JavaScript kann erkennen, dass der Entwickler von einem dieser Tools aus angemeldet ist, und dann die erforderlichen Anmeldeinformationen aus dem Anmeldeinformationscache abrufen, um die App bei Azure als angemeldeten Benutzer zu authentifizieren.

Dieser Ansatz ist am einfachsten für ein Entwicklungsteam einzurichten, da es die Vorteile der vorhandenen Azure-Konten der Entwickler nutzt. Das Konto eines Entwicklers verfügt jedoch wahrscheinlich über mehr Berechtigungen als für die Anwendung erforderlich, wodurch die Berechtigungen überschritten werden, mit denen die App in der Produktion ausgeführt wird. Alternativ können Sie Anwendungsdienstprinzipale für die Verwendung während der lokalen Entwicklung erstellen, die nur den Zugriff haben können, der von der App benötigt wird.

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

Da es fast immer mehrere Entwickler gibt, die an einer Anwendung arbeiten, empfiehlt es sich, zuerst eine Microsoft Entra-Gruppe zu erstellen, um die Rollen (Berechtigungen) zu kapseln, die die App in der lokalen Entwicklung benötigt. Dies bietet die folgenden Vorteile:

  • Jedem Entwickler wird sichergestellt, dass dieselben Rollen zugewiesen werden, da Rollen auf Gruppenebene zugewiesen werden.
  • Wenn eine neue Rolle für die App benötigt wird, muss sie nur der Microsoft Entra-Gruppe für die App hinzugefügt werden.
  • Wenn ein neuer Entwickler dem Team beitritt, muss er lediglich der richtigen Microsoft Entra-Gruppe hinzugefügt werden, um die erforderlichen Berechtigungen für die Arbeit an der App zu erhalten.

Wenn Sie über eine Microsoft Entra-Gruppe für Ihr Entwicklungsteam verfügen, können Sie diese Gruppe verwenden. Führen Sie andernfalls die folgenden Schritte aus, um eine Microsoft Entra-Gruppe zu erstellen.

Anweisungen Screenshot
Navigieren Sie im Azure-Portal zur Microsoft Entra ID-Seite, indem Sie Microsoft Entra ID in das Suchfeld oben auf der Seite eingeben und dann unter „Dienste“ die Option Microsoft Entra ID auswählen. Screenshot: Verwenden der oberen Suchleiste im Azure-Portal, um nach der Microsoft Entra ID-Seite zu suchen und zu dieser zu navigieren
Wählen Sie auf der Seite Microsoft Entra ID im Menü auf der linken Seite die Option Gruppen aus. Screenshot: Position des Menüelements „Gruppen“ im linken Menü der Microsoft Entra ID-Standardverzeichnisseite
Wählen Sie auf der Seite Alle GruppenNeue Gruppeaus. Screenshot: Position der Schaltfläche „Neue Gruppe
Auf der Seite Neue Gruppe :
  1. GruppentypSecurity.
  2. Gruppenname → Ein Name für die Sicherheitsgruppe, der in der Regel aus dem Anwendungsnamen erstellt wird. Es ist auch hilfreich, eine Zeichenfolge wie local-dev in den Namen der Gruppe aufzunehmen, um den Zweck der Gruppe anzugeben.
  3. Gruppenbeschreibung → Eine Beschreibung des Zwecks der Gruppe.
  4. Wählen Sie unter Mitglieder den Link Keine Mitglieder ausgewählt aus, um der Gruppe Mitglieder hinzuzufügen.
Screenshot: Erstellen einer neuen Microsoft Entra-Gruppe. Die Position des Links, der zum Hinzufügen von Mitgliedern zu dieser Gruppe ausgewählt wird, ist hervorgehoben.
Das Dialogfeld Mitglieder hinzufügen wird angezeigt.
  1. Verwenden Sie das Suchfeld, um die Liste der Benutzernamen in der Liste zu filtern.
  2. Wählen Sie Benutzer für die lokale Entwicklung für diese App aus. Wenn Sie ein Objekt auswählen, wird das Objekt in die Liste Ausgewählte Elemente unten im Dialogfeld verschoben.
  3. Wenn Sie fertig sind, wählen Sie die Schaltfläche Auswählen aus.
Screenshot des Dialogfelds Mitglieder hinzufügen, das zeigt, wie Entwicklerkonten ausgewählt werden, die in die Gruppe aufgenommen werden sollen..
Wählen Sie auf der Seite Neue Gruppe die Option Erstellen aus, um die Gruppe zu erstellen.

Die Gruppe wird erstellt, und Sie werden zur Seite Alle Gruppen zurückgeführt. Es kann bis zu 30 Sekunden dauern, bis die Gruppe angezeigt wird, und Sie müssen die Seite möglicherweise aktualisieren, da sie im Azure-Portal zwischengespeichert wird.
Screenshot der Seite „Neue Gruppe

2: Zuweisen von Rollen zur Microsoft Entra-Gruppe

Als Nächstes müssen Sie bestimmen, welche Rollen (Berechtigungen) Ihre App für welche Ressourcen benötigt, und diese Rollen Ihrer App zuweisen. In diesem Beispiel werden die Rollen der in Schritt 1 erstellten Microsoft Entra-Gruppe zugewiesen. Rollen können in einem Ressourcen-, Ressourcengruppen- oder Abonnementbereich eine Rolle zugewiesen werden. In diesem Beispiel wird gezeigt, wie Sie Rollen auf der Ebene der Ressourcengruppe zuweisen, da die meisten Anwendungen alle ihre Azure-Ressourcen in einer einzigen Ressourcengruppe zusammenfassen.

Anweisungen Screenshot
Suchen Sie die Ressourcengruppe für Ihre Anwendung, indem Sie über das Suchfeld oben im Azure-Portal nach dem Namen der Ressourcengruppe suchen.

Navigieren Sie zu Ihrer Ressourcengruppe, indem Sie den Namen der Ressourcengruppe unter der Überschrift Ressourcengruppen im Dialogfeld auswählen.
Screenshot: Verwenden des oberen Suchfelds im Azure-Portal zum Suchen und Navigieren zu der Ressourcengruppe, denen Sie Rollen (Berechtigungen) zuweisen möchten.
Wählen Sie auf der Seite für die Ressourcengruppe im linken Menü Die Option Zugriffssteuerung (IAM) aus. Screenshot der Seite
Klicken Sie auf der Seite Zugriffssteuerungseinstellungen:
  1. Klicken Sie auf die Registerkarte Rollenzuweisungen.
  2. Wählen Sie im oberen Menü + Hinzufügen und aus dem dann angezeigten Dropdownmenü die Option Rollenzuweisung hinzufügen aus.
Screenshot, der zeigt, wie Sie zur Registerkarte Rollenzuweisungen und zum Speicherort der Schaltfläche navigieren, die zum Hinzufügen von Rollenzuweisungen zu einer Ressourcengruppe verwendet wird.
Auf der Seite Rollenzuweisung hinzufügen werden alle Rollen aufgelistet, die der Ressourcengruppe zugewiesen werden können.
  1. Verwenden Sie das Suchfeld, um die Liste auf eine besser verwaltbare Größe zu filtern. In diesem Beispiel wird gezeigt, wie Sie nach Storage-Blobrollen filtern.
  2. Wählen Sie die Rolle aus, die Sie zuweisen möchten.
    Klicken Sie auf Weiter, um zum nächsten Bildschirm zu wechseln.
Screenshot: Filtern und Auswählen von Rollenzuweisungen, die der Ressourcengruppe hinzugefügt werden sollen.
Auf der nächsten Seite Rollenzuweisung hinzufügen können Sie angeben, welchem Benutzer die Rolle zugewiesen werden soll.
  1. Wählen Sie unter Zugriff zuweisendie Option Benutzer, Gruppe oder Dienstprinzipal aus.
  2. Wählen Sie unter Mitglieder die Option +Mitglieder auswählen aus.
Auf der rechten Seite des Azure-Portal wird ein Dialogfeld geöffnet.
Screenshot: Optionsfeld zum Zuweisen einer Rolle zu einer Microsoft Entra-Gruppe und Link zum Auswählen der Gruppe, der die Rolle zugewiesen werden soll
Im Dialogfeld Mitglieder auswählen :
  1. Das Textfeld Auswählen kann verwendet werden, um die Liste der Benutzer und Gruppen in Ihrem Abonnement zu filtern. Geben Sie bei Bedarf die ersten Zeichen der lokalen Microsoft Entra-Gruppe ein, die Sie für die App erstellt haben.
  2. Wählen Sie die Microsoft Entra-Gruppe für lokale Entwicklung aus, die Ihrer Anwendung zugeordnet ist.
Wählen Sie unten im Dialogfeld Auswählen aus, um den Vorgang fortzusetzen.
Screenshot: Filtern nach und Auswählen der Microsoft Entra-Gruppe für die Anwendung im Dialogfeld „Mitglieder auswählen“
Die Microsoft Entra-Gruppe wird auf dem Bildschirm Rollenzuweisung hinzufügen als ausgewählt angezeigt.

Wählen Sie Überprüfen und zuweisen aus, um zur letzten Seite zu gelangen, und wählen Sie erneut Überprüfen und zuweisen aus, um den Vorgang abzuschließen.
Screenshot der abgeschlossenen Seite

3 – Melden Sie sich mit VS Code, Azure CLI oder Azure PowerShell bei Azure an.

Öffnen Sie ein Terminal auf Ihrer Entwicklerarbeitsstation, und melden Sie sich von Azure PowerShell bei Azure an.

Connect-AzAccount

4. Implementieren von DefaultAzureCredential in Ihrer Anwendung

Um Azure SDK-Clientobjekte für Azure zu authentifizieren, sollte Ihre Anwendung die DefaultAzureCredential-Klasse aus dem @azure/identity-Paket verwenden. In diesem Szenario wird sequenziell überprüft, DefaultAzureCredential ob sich der Entwickler mit der Erweiterung VS Code Azure Tools, azure CLI oder Azure PowerShell bei Azure angemeldet hat. Wenn der Entwickler mit einem dieser Tools bei Azure angemeldet ist, werden die zum Anmelden beim Tool verwendeten Anmeldeinformationen von der App verwendet, um sich bei Azure zu authentifizieren.

Fügen Sie zunächst das @azure-/Identitätspaket zu Ihrer Anwendung hinzu.

npm install @azure/identity

Danach sollten Sie für jeden JavaScript-Code, der ein Azure SDK-Clientobjekt in Ihrer App erstellt, Folgendes ausführen:

  1. Importieren Sie die DefaultAzureCredential-Klasse aus dem @azure/identity-Modul.
  2. Erstellen eines DefaultAzureCredential-Objekts
  3. Übergeben Sie das DefaultAzureCredential-Objekt an den Azure SDK-Clientobjektkonstruktor.

Ein Beispiel dafür wird im folgenden Codeausschnitt gezeigt.

import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';

// Acquire a credential object
const tokenCredential = DefaultAzureCredential();

const blobServiceClient = BlobServiceClient(
        `https://${accountName}.blob.core.windows.net`,
        tokenCredential
);

DefaultAzureCredential erkennt automatisch den für die App konfigurierten Authentifizierungsmechanismus und ruft die erforderlichen Token ab, um die App bei Azure zu authentifizieren. Wenn eine Anwendung mehrere SDK-Clients verwendet, kann dasselbe Anmeldeinformationsobjekt mit jedem SDK-Clientobjekt verwendet werden.