Freigeben über


Authentifizieren von von Azure gehosteten JavaScript-Apps für Azure-Ressourcen mithilfe der Azure Identity-Bibliothek

Wenn eine App in Azure gehostet wird (mit einem Dienst wie Azure App Service, Azure Functions oder Azure Container-Apps), können Sie eine verwaltete Identität verwenden, um Ihre App sicher bei Azure-Ressourcen zu authentifizieren.

Eine verwaltete Identität stellt eine Identität für Ihre App bereit, sodass sie eine Verbindung mit anderen Azure-Ressourcen herstellen kann, ohne einen geheimen Schlüssel verwenden zu müssen (z. B. eine Verbindungszeichenfolge oder einen Schlüssel). Intern erkennt Azure die Identität Ihrer App und weiß, welche Ressourcen die App für den Zugriff autorisiert ist. Azure verwendet diese Informationen, um Microsoft Entra-Token für die App automatisch abzurufen, sodass sie eine Verbindung mit anderen Azure-Ressourcen herstellen kann, ohne dass Sie geheime Authentifizierungsschlüssel verwalten (erstellen oder drehen) müssen.

Arten von verwalteten Identitäten

Es gibt zwei Arten von verwalteten Identitäten:

  • Vom System zugewiesene verwaltete Identitäten – einzelne Azure-Ressource
  • Vom Benutzer zugewiesene verwaltete Identitäten – mehrere Azure-Ressourcen

In diesem Artikel werden die Schritte zum Aktivieren und Verwenden einer vom System zugewiesenen verwalteten Identität für eine App beschrieben. Wenn Sie eine benutzerseitig zugewiesene verwaltete Identität verwenden müssen, lesen Sie den Artikel Verwalten benutzerseitig zugewiesener verwalteter Identitäten , um zu erfahren, wie Sie eine benutzerseitig zugewiesene verwaltete Identität erstellen.

Vom System zugewiesene verwaltete Identitäten für einzelne Ressourcen

Vom System zugewiesene verwaltete Identitäten werden von einer Azure-Ressource bereitgestellt und direkt verknüpft. Wenn Sie die verwaltete Identität für eine Azure-Ressource aktivieren, erhalten Sie eine systemseitig zugewiesene verwaltete Identität für diese Ressource. Die verwaltete Identität ist an den Lebenszyklus der Azure-Ressource gebunden. Azure löscht automatisch die Identität, wenn die Ressource gelöscht wird. Da Sie nur die verwaltete Identität für die Azure-Ressource aktivieren müssen, die Ihren Code hosten soll, ist dieser Identitätstyp der einfachste Typ der verwalteten Identität.

Vom Benutzer zugewiesene verwaltete Identitäten für mehrere Ressourcen

Eine vom Benutzer zugewiesene verwaltete Identität ist eine eigenständige Azure-Ressource. Dieser Identitätstyp wird am häufigsten verwendet, wenn Ihre Lösung über mehrere Workloads verfügt, die auf mehreren Azure-Ressourcen ausgeführt werden, die alle die gleiche Identität und dieselben Berechtigungen gemeinsam nutzen müssen. Angenommen, Ihre Lösung enthält Anwendungen, die auf mehreren App Service- und virtuellen Computerinstanzen ausgeführt werden. Alle Anwendungen benötigen Zugriff auf die gleichen Azure-Ressourcen. Das Erstellen und Verwenden einer vom Benutzer zugewiesenen verwalteten Identität in diesen Ressourcen ist die beste Entwurfsoption.

1 – Aktivieren der vom System zugewiesenen verwalteten Identität in gehosteter App

Der erste Schritt besteht darin, die verwaltete Identität in der Azure-Ressource zu aktivieren, die Ihre App hosten soll. Wenn Sie beispielsweise eine Express.js Anwendung mit Azure App Service hosten, müssen Sie die verwaltete Identität für diese App Service-Web-App aktivieren. Wenn Sie eine VM zum Hosten Ihrer App verwenden, aktivieren Sie Ihre VM für die Verwendung der verwalteten Identität.

Sie können die Verwendung der verwalteten Identität für eine Azure-Ressource mithilfe der Azure-Portal oder der Azure CLI aktivieren.

Anweisungen Screenshot
Navigieren Sie zu der Ressource, die Ihren Anwendungscode im Azure-Portal hostet.

Sie können beispielsweise den Namen Ihrer Ressource in das Suchfeld oben auf der Seite eingeben und zu ihr navigieren, indem Sie ihn im Dialogfeld auswählen.
Ein Screenshot, der zeigt, wie Sie die obere Suchleiste im Azure-Portal verwenden, um eine Ressource in Azure zu finden und zu ihr zu navigieren.
Wählen Sie auf der Seite für Ihre Ressource im linken Menü das Menüelement Identität aus.

Alle Azure-Ressourcen, die verwaltete Identität unterstützen können, verfügen über ein Identitätsmenüelement, auch wenn das Layout des Menüs geringfügig variieren kann.
Screenshot: Speicherort des Menüelements Identität im linken Menü für eine Azure-Ressource.
Auf der Seite Identität :
  1. Schieben Sie den Schieberegler Status auf Ein.
  2. Wählen Sie Speichern.
In einem Dialogfeld wird bestätigt, dass Sie die verwaltete Identität für Ihren Dienst aktivieren möchten. Antworten Sie mit Ja, um die verwaltete Identität für die Azure-Ressource zu aktivieren.
Screenshot: Aktivieren der verwalteten Identität für eine Azure-Ressource auf der Seite Identität der Ressource.

2 - Zuweisen einer Rolle zur verwalteten Identität

Als Nächstes müssen Sie ermitteln, welche Rollen (Berechtigungen) Ihre App benötigt, und die verwaltete Identität diesen Rollen in Azure zuweisen. Einer verwalteten Identität können Rollen in einem Ressourcen-, Ressourcengruppen- oder Abonnementbereich 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 zur Verwendung der oberen Suchleiste im Azure-Portal zum Suchen und Navigieren zu einer Ressourcengruppe in Azure.
Wählen Sie auf der Seite für die Ressourcengruppe im linken Menü Die Option Zugriffssteuerung (IAM) aus. Screenshot mit dem Speicherort des Menüelements „Zugriffssteuerung“ (IAM) im linken Menü einer Azure-Ressourcengruppe.
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 zuweisen zu die Option Verwaltete Identität 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: Auswählen der verwalteten Identität als Benutzertyp, den Sie der Rolle (Berechtigung) auf der Seite Rollenzuweisungen hinzufügen zuweisen möchten.
Im Dialogfeld Verwaltete Identitäten auswählen :
  1. Die Dropdownliste Verwaltete Identität und das Textfeld Auswählen können verwendet werden, um die Liste der verwalteten Identitäten in Ihrem Abonnement zu filtern. In diesem Beispiel werden nur verwaltete Identitäten angezeigt, die einem App Service zugeordnet sind, indem Sie App Service auswählen.
  2. Wählen Sie die verwaltete Identität für die Azure-Ressource aus, die Ihre Anwendung hostt.
Wählen Sie Auswahl unten im Dialogfeld aus, um den Vorgang fortzusetzen.
Screenshot: Verwenden des Dialogfelds „Verwaltete Identitäten auswählen“ zum Filtern und Auswählen der verwalteten Identität, der die Rolle zugewiesen werden soll.
Die verwaltete Identität 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 des letzten Bildschirms „Rollenzuweisung hinzufügen

3 - Implementieren von DefaultAzureCredential in Ihrer Anwendung

DefaultAzureCredential erkennt automatisch, dass eine verwaltete Identität verwendet wird und die verwaltete Identität verwendet wird, um sich bei anderen Azure-Ressourcen zu authentifizieren. Wie in der Azure Identity Library for JavaScript authentication overview Artikel erläutert, unterstützt DefaultAzureCredential mehrere Authentifizierungsmethoden und bestimmt die Authentifizierungsmethode, die zur Laufzeit verwendet wird. Auf diese Weise kann Ihre App unterschiedliche Authentifizierungsmethoden in verschiedenen Umgebungen verwenden, ohne umgebungsspezifischen Code zu implementieren.

Fügen Sie Ihrer Anwendung zunächst das Paket @azure/identity hinzu.

npm install @azure/identity

Als Nächstes möchten 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 für diese Schritte ist im folgenden Codesegment dargestellt.

// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'

const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');

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