Authentifizieren einer Anwendung mit Microsoft Entra-ID für den Zugriff auf Event Hubs

Microsoft Azure bietet eine integrierte Verwaltung der Zugriffssteuerung für Ressourcen und Anwendungen, basierend auf Microsoft Entra ID. Ein wichtiger Vorteil der Verwendung der Microsoft Entra-ID mit Azure Event Hubs besteht darin, dass Sie keine Anmeldeinformationen im Code speichern müssen. Fordern Sie stattdessen ein OAuth 2.0-Zugriffstoken von der Microsoft Identity Platform an. Der Ressourcenname, um ein Token anzufordern, ist https://eventhubs.azure.net/, und er ist für alle Clouds und Tenants gleich. Für Kafka-Clients ist die Ressource zum Anfordern eines Tokens https://<namespace>.servicebus.windows.net. Microsoft Entra authentifiziert den Sicherheitsprinzipal, der die Anwendung ausführt. Dabei kann es sich um einen Benutzer, um eine Gruppe, um einen Dienstprinzipal oder um eine verwaltete Identität handeln. Wenn die Authentifizierung erfolgreich ist, gibt die Microsoft Entra-ID ein Zugriffstoken an die Anwendung zurück, das dann das Token zum Autorisieren von Anforderungen an Azure Event Hubs-Ressourcen verwenden kann.

Wenn Sie einem Microsoft Entra-Sicherheitsprinzipal eine Rolle zuweisen, gewährt Azure diesem Sicherheitsprinzipal Zugriff auf diese Ressourcen. Du kannst auf das Abonnement, die Ressourcengruppe, den Event Hubs-Namensraum oder jede Ressource darunter limitieren. Ein Microsoft Entra-Sicherheitsprinzipal kann einem Benutzer, einer Gruppe, einem Anwendungsdienstprinzipal oder einer verwalteten Identität für Azure-Ressourcen Rollen zuweisen.

Note

Eine Rollendefinition ist eine Sammlung von Berechtigungen. Die rollenbasierte Zugriffssteuerung (Azure RBAC) erzwingt diese Berechtigungen durch Rollenzuweisung. Eine Rollenzuweisung umfasst drei Elemente: Sicherheitsprinzipal, Rollendefinition und Bereich. Weitere Informationen finden Sie unter Grundlegendes zu den verschiedenen Rollen.

Voraussetzungen

Integrierte Rollen für Azure Event Hubs

Azure bietet diese integrierten Rollen, um den Zugriff auf Event Hubs-Daten mithilfe der Microsoft Entra-ID und OAuth zu autorisieren:

  • Azure Event Hubs Dateneigentümer: Verwenden Sie diese Rolle, um vollständigen Zugriff auf Event Hubs-Ressourcen zu erhalten.
  • Azure Event Hubs-Datensender: Ein Sicherheitsprinzipal, der dieser Rolle zugewiesen ist, kann Ereignisse an einen bestimmten Event Hub oder an alle Event Hubs in einem Namespace senden.
  • Azure Event Hubs-Datenempfänger: Ein Sicherheitsprinzipal, der dieser Rolle zugewiesen ist, kann Ereignisse von einen bestimmten Event Hub oder von allen Event Hubs in einem Namespace empfangen.

Informationen zu den integrierten Rollen für die Schemaregistrierung finden Sie unter Schemaregistrierungsrollen.

Important

Die Vorschauversion unterstützt das Hinzufügen von Event Hubs-Datenzugriffsberechtigungen zur Rolle "Besitzer" oder "Mitwirkender". Diese Berechtigungen werden jedoch nicht mehr berücksichtigt. Wenn Sie die Rolle "Besitzer" oder "Mitwirkender" verwenden, wechseln Sie zur Rolle "Azure Event Hubs-Datenbesitzer".

Authentifizieren über eine Anwendung

Ein wichtiger Vorteil der Verwendung von Microsoft Entra ID mit Event Hubs besteht darin, dass Sie Ihre Anmeldeinformationen nicht in Ihrem Code speichern müssen. Fordern Sie stattdessen ein OAuth 2.0-Zugriffstoken von der Microsoft Identity Platform an. Microsoft Entra übernimmt die Authentifizierung des Sicherheitsprinzipals (Benutzer, Gruppe oder Dienstprinzipal), der die Anwendung ausführt. Wenn die Authentifizierung erfolgreich ist, gibt Microsoft Entra ID das Zugriffstoken an die Anwendung zurück, und die Anwendung kann dann das Zugriffstoken zum Autorisieren von Anforderungen an Azure Event Hubs verwenden.

In den folgenden Abschnitten wird erläutert, wie Sie eine systemeigene Anwendung oder Webanwendung für die Authentifizierung mit Microsoft Identity Platform 2.0 konfigurieren. Weitere Informationen zu Microsoft Identity Platform 2.0 finden Sie unter Übersicht über Microsoft Identity Platform (v2.0).

Eine Übersicht über den Datenfluss für OAuth 2.0-Codeberechtigungen finden Sie unter Autorisieren des Zugriffs auf Microsoft Entra-Webanwendungen mit dem Flow zum Erteilen des OAuth 2.0-Codes.

Registrieren Ihrer Anwendung mit Microsoft Entra ID

Der erste Schritt zur Verwendung von Microsoft Entra ID zur Autorisierung von Event Hubs-Ressourcen besteht darin, eine Client-Anwendung bei einem Microsoft Entra-Tenant im Microsoft Entra Admin Center zu registrieren. Führen Sie die Schritte unter Schnellstart: Registrieren einer Anwendung bei Microsoft Identity Platform aus, um eine Anwendung in Microsoft Entra ID zu registrieren, die Ihre Anwendung darstellt, die versucht, auf Event Hubs-Ressourcen zuzugreifen.

Wenn Sie Ihre Clientanwendung registrieren, stellen Sie Informationen zu Ihrer Anwendung bereit. Microsoft Entra-ID stellt eine Client-ID bereit, die auch als Anwendungs-ID bezeichnet wird, um die Anwendung der Microsoft Entra-Runtime zuzuordnen. Weitere Informationen zur Client-ID finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID.

Note

Wenn Sie die Anwendung als native Anwendung registrieren, können Sie jeden gültigen URI als Umleitungs-URI angeben. Bei systemeigenen Anwendungen muss dieser Wert keine echte URL sein. Bei Webanwendungen muss der Umleitungs-URI ein gültiger URI sein, da er die URL angibt, in der Token bereitgestellt werden.

Nachdem Sie Ihre Anwendung registriert haben, wird die Anwendungs-ID (Client-ID) unter Einstellungen angezeigt:

Screenshot der Registrierungsseite der Azure-Portal-App mit hervorgehobener Anwendungs-ID.

Erstellen eines geheimen Clientschlüssels für die Authentifizierung

Die Anwendung erfordert einen geheimen Clientschlüssel, um seine Identität beim Anfordern eines Tokens zu beweisen. Führen Sie die Schritte unter Geheimen Clientschlüssel hinzufügen aus, um einen geheimen Clientschlüssel für Ihre App in Microsoft Entra ID zu erstellen.

Azure-Rollen über das Azure-Portal zuweisen

Weisen Sie dem Dienstprinzipal der Anwendung im gewünschten Bereich eine der Event Hubs-Rollen zu, z. B. den Event Hubs-Namespace, die Ressourcengruppe oder das Abonnement. Ausführliche Schritte finden Sie unter Zuweisen von Azure-Rollen mithilfe des Azure-Portals.

Nachdem Sie die Rolle und ihren Umfang definiert haben, testen Sie dieses Verhalten mit Proben, die in diesem GitHub-Standort verfügbar sind. Um mehr über die Verwaltung des Zugriffs auf Azure-Ressourcen durch Azure Role-Based Access Control (RBAC) und das Azure-Portal zu erfahren, siehe diesen Artikel.

Verwenden von Clientbibliotheken zum Abrufen von Token

Nachdem Sie Ihre Anwendung registriert und ihr die Berechtigung gegeben haben, Daten in Azure Event Hubs zu senden oder zu empfangen, fügen Sie Ihrer Anwendung Code hinzu, um einen Sicherheitsprinzip zu authentifizieren, und erhalten ein OAuth 2.0-Token. Um das Token zu authentifizieren und abzurufen, verwenden Sie eine der Authentifizierungsbibliotheken der Microsoft Identity Platform oder eine andere Open Source-Bibliothek, die OpenID Connect 1.0 unterstützt. Ihre Anwendung kann dann mit dem Zugriffstoken eine Anforderung an Azure Event Hubs autorisieren.

Szenarien, für die das Abrufen von Token unterstützt wird, finden Sie im GitHub-Repository Microsoft Authentication Library (MSAL) (MSAL) für .NET im Abschnitt Szenarien.

Samples

Weitere Informationen finden Sie in den folgenden verwandten Artikeln: