Freigeben über


Authentifizieren einer Anwendung mit Microsoft Entra ID, um auf Event Hubs-Ressourcen zuzugreifen

Microsoft Azure bietet eine integrierte Verwaltung der Zugriffssteuerung für Ressourcen und Anwendungen, basierend auf Microsoft Entra ID. Ein wesentlicher Vorteil der Verwendung von Microsoft Entra ID mit Azure Event Hubs besteht darin, dass Sie Ihre Anmeldeinformationen nicht mehr im Code speichern müssen. Stattdessen können Sie ein OAuth 2.0-Zugriffstoken von der Microsoft Identity Platform anfordern. Der Ressourcenname zum Anfordern eines Tokens lautet https://eventhubs.azure.net/. Dieser Wert ist für alle Clouds/Mandanten gleich. (Für Kafka-Clients lautet 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 Microsoft Entra ID ein Zugriffstoken an die Anwendung zurück, und die Anwendung kann dann das Zugriffstoken zum Autorisieren von Anforderungen an Azure Event Hubs-Ressourcen verwenden.

Wenn einem Microsoft Entra-Sicherheitsprinzipal eine Azure-Rolle zugewiesen ist, gewährt Azure diesem Sicherheitsprinzipal Zugriff auf diese Ressourcen. Der Zugriff kann sich auf den Bereich des Abonnements, der Ressourcengruppe, des Event Hubs-Namespace oder jeder darin vorhandenen Ressource beziehen. Ein Microsoft Entra-Sicherheitsprinzipal kann einem Benutzer bzw. einer Benutzerin, einer Gruppe, einem Anwendungsdienstprinzipal oder einer verwalteten Identität für Azure-Ressourcen Rollen zuweisen.

Hinweis

Eine Rollendefinition ist eine Sammlung von Berechtigungen. Die rollenbasierte Zugriffssteuerung in Azure (Role-Based Access Control, Azure RBAC) steuert, wie diese Berechtigungen mittels Rollenzuweisung erzwungen werden. Eine Rollenzuweisung besteht aus drei Elementen: Sicherheitsprinzipal, Rollendefinition und Bereich. Weitere Informationen finden Sie unter Grundlegendes zu den verschiedenen Rollen.

Integrierte Rollen für Azure Event Hubs

Azure stellt die folgenden integrierten Azure-Rollen zum Autorisieren des Zugriffs auf Event Hubs-Daten mithilfe von Microsoft Entra ID und OAuth bereit:

  • Azure Event Hubs-Datenbesitzer: Mit dieser Rolle gewähren Sie Vollzugriff auf Event Hubs-Ressourcen.
  • 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.

Wichtig

In unserer Vorschauversion wurde das Hinzufügen von Event Hubs-Datenzugriffsberechtigungen für die Rollen „Besitzer“ und „Mitwirkender“ unterstützt. Datenzugriffsberechtigungen für die Rollen „Besitzer“ und „Mitwirkender“ werden jedoch nicht mehr berücksichtigt. Wenn Sie die Rolle „Besitzer“ oder „Mitwirkender“ verwenden, wechseln Sie zur Verwendung der Rolle „Azure Event Hubs-Datenbesitzer“.

Authentifizieren über eine Anwendung

Ein wesentlicher Vorteil der Verwendung von Microsoft Entra ID mit Event Hubs besteht darin, dass Ihre Anmeldeinformationen nicht mehr im Code gespeichert werden müssen. Stattdessen können Sie ein OAuth 2.0-Zugriffstoken von Microsoft Identity Platform anfordern. 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 gezeigt, wie Sie Ihre native 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 Mandanten

Der erste Schritt bei der Verwendung von Microsoft Entra ID zum Autorisieren von Azure Event Hubs-Ressourcen besteht darin, Ihre Clientanwendung mit einem Microsoft Entra-Mandanten aus dem Azure-Portalzu 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 dann eine Client-ID (auch als Anwendungs-ID bezeichnet) bereit, mit der Sie Ihre Anwendung zur Laufzeit Microsoft Entra zuordnen können. Weitere Informationen zur Client-ID finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID.

Hinweis

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

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

Screenshot: Seite „App-Registrierung“ mit hervorgehobener Anwendungs-ID

Erstellen eines Clientgeheimnisses

Die Anwendung benötigt zum Beweis ihrer Identität einen geheimen Clientschlüssel, wenn sie ein Token anfordert. 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.

Zuweisen von Azure-Rollen über das Azure-Portal

Weisen Sie eine der Event Hubs-Rollen dem Dienstprinzipal der Anwendung im gewünschten Bereich (Event Hubs-Namespace, Ressourcengruppe, Abonnement) zu. Ausführliche Informationen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.

Nachdem Sie die Rolle und ihren Bereich definiert haben, können Sie dieses Verhalten mit den Beispielen an diesem GitHub-Speicherort testen. Weitere Informationen zur Verwaltung des Zugriffs auf Azure-Ressourcen mithilfe der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Azure und des Azure-Portals finden Sie in diesem Artikel.

Clientbibliotheken für die Tokenbeschaffung

Nachdem Sie Ihre Anwendung registriert und ihr die Berechtigung zum Senden/Empfangen von Daten in Azure Event Hubs erteilt haben, können Sie Ihrer Anwendung Code hinzufügen, um einen Sicherheitsprinzipal zu authentifizieren und ein OAuth 2.0-Token abzurufen. Zum Authentifizieren und Abrufen des Tokens können Sie entweder eine der Authentifizierungsbibliotheken von Microsoft Identity Platform oder eine andere Open-Source-Bibliothek verwenden, die OpenID oder 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) für .NET im Abschnitt Szenarien.

Beispiele

Weitere Informationen finden Sie in den folgenden verwandten Artikeln: