Verwaltete Identitätsauthentifizierung für Azure Event Hubs

Eine verwaltete Identität ist eine Identität in Microsoft Entra ID, die von Azure für Sie verwaltet wird, sodass eine Anwendung sich auf Dienste authentifizieren kann, die Microsoft Entra-Authentifizierung unterstützen, ohne Zugangsdaten zu speichern. Azure Event Hubs unterstützt Microsoft Entra-Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen, wodurch Anwendungen in Azure mit Event Hubs verbunden werden können, ohne Verbindungsstrings oder Zugriffsschlüssel in Code oder Konfiguration einzubetten.

Wenn Sie eine verwaltete Identität zusammen mit Microsoft Entra-Authentifizierung verwenden, können Anwendungen, die in Diensten wie Azure Virtual Machines, Azure Functions, Azure App Service und Virtual Machine Scale Sets ausgeführt werden, mit von Azure automatisch bereitgestellten und rotierten Anmeldeinformationen auf Event Hubs-Daten zugreifen. Dieser Ansatz beseitigt das Risiko geleakter Schlüssel und reduziert den operativen Aufwand bei der Verwaltung von Zugangsdaten.

Ein Schritt-für-Schritt-Beispiel finden Sie unter Access Azure Event Hubs von einer VM mit verwalteter Identität.

Funktionsweise der verwalteten Identitätsauthentifizierung

Der Zugriff auf eine Event Hubs-Ressource über eine verwaltete Identität ist ein zweistufiger Prozess:

  • Authentifizierung: Die verwaltete Identität fordert ein OAuth 2.0-Token von Microsoft Entra ID an. Azure liefert die Identität automatisch basierend auf der Rechenumgebung, in der der Code ausgeführt wird, sodass kein Geheimnis in der Anwendung gespeichert oder weitergegeben wird.
  • Autorisierung: Das Token wird dem Event Hubs-Service präsentiert, der Zugriff basierend auf den Azure-rollenbasierten Zugriffskontrollrollen (RBAC) gewährt, die der Identität zugewiesen sind.

Für eine vollständige Beschreibung des Authentifizierungs- und Autorisierungsprozesses siehe Zugriff auf Azure Event Hubs-Ressourcen autorisieren mit Microsoft Entra ID.

Verwaltete Identitätstypen

Event Hubs arbeitet mit beiden Arten von verwalteten Identitäten:

  • Systemzugewiesene verwaltete Identität: Direkt auf einer Azure-Ressource, wie einer virtuellen Maschine oder einer App Service App, aktiviert. Ihr Lebenszyklus ist an diese Ressource gebunden, und nur diese Ressource kann sie nutzen, um Token anzufordern.
  • Benutzerzugewiesene verwaltete Identität: Erstellt als eigenständige Azure-Ressource und einer oder mehreren Azure-Ressourcen zugewiesen, sodass mehrere Workloads dieselbe Identität teilen können.

Um mehr über die beiden Typen zu erfahren und wann Sie jeden auswählen sollten, siehe Managed Identity Types. Für die Liste der Dienste, die verwaltete Identitäten unterstützen, siehe Dienste, die verwaltete Identitäten für Azure-Ressourcen unterstützen.

Integrierte Azure-Rollen für Event Hubs

Nachdem Sie eine verwaltete Identität aktiviert haben, weisen Sie ihr eine Azure-integrierte Rolle zu, die ihre Berechtigungen für Event Hubs-Daten definiert. Azure stellt folgende integrierte Rollen zur Autorisierung des Zugriffs auf Event Hubs-Daten mit Microsoft Entra ID bereit:

Role Description
Azure Event Hubs-Datenbesitzer Gewährt vollständigen Zugang zu den Ressourcen von Event Hubs.
Azure Event Hubs-Datensender Gewährt die Erlaubnis, Events an die Ressourcen von Event Hubs zu senden.
Azure Event Hubs-Datenempfänger Erteilt die Erlaubnis, Veranstaltungen von den Ressourcen des Event Hubs zu empfangen.

Sie können eine Rolle auf Ebene einer Verbrauchergruppe, eines Eventhubs, eines Namensraums, einer Ressourcengruppe oder eines Abonnements zuweisen. Gewähren Sie den engsten Anwendungsbereich, der den Anforderungen der Anwendung entspricht. Die vollständige Liste der Bereiche und Rollendetails finden Sie unter In Azure integrierte Rollen für Azure Event Hubs. Um eine Rolle im Azure-Portal zuzuweisen, siehe Assign Azure Roles using the Azure Portal.

Token-Ablaufverhalten

Wenn du eine verwaltete Identität aus einer Event Hubs RBAC-Rolle entfernst, tritt die Änderung für eine laufende Anwendung nicht sofort in Kraft. Wenn der Quelldienst oder die App nicht neu startet, kann er weiterhin Ereignisse an den Ereignishub senden oder von ihm empfangen, bis das Token abläuft. Die Standardgültigkeit des Tokens beträgt 24 Stunden. Dieses Verhalten ist beabsichtigt.

Um den Zugriff sofort zu widerrufen, nachdem du die Identität aus der Rolle entfernt hast, starte die Quell-App oder den Quelldienst neu, sodass das bestehende Token abläuft.

Client-SDK-Unterstützung

Die Client-Bibliotheken des Azure SDK erfassen das verwaltete Identitätstoken für Sie über DefaultAzureCredential, das automatisch die verwaltete Identität erkennt, die in der Hosting-Umgebung verfügbar ist. Du übergibst die Anmeldeinformation an EventHubProducerClient, um Ereignisse zu senden, und an EventHubConsumerClient, um Ereignisse zu empfangen, ohne eine Verbindungszeichenfolge oder einen Schlüssel anzugeben.

var credential = new DefaultAzureCredential();

// Send events with a managed identity.
var producerClient = new EventHubProducerClient(
    "<namespace>.servicebus.windows.net",
    "<event-hub-name>",
    credential);

// Receive events with a managed identity.
var consumerClient = new EventHubConsumerClient(
    EventHubConsumerClient.DefaultConsumerGroupName,
    "<namespace>.servicebus.windows.net",
    "<event-hub-name>",
    credential);

Installiere das neueste Azure. Messaging.EventHubs-Paket von NuGet, um diese Clients zu nutzen. Für laufbare Proben siehe:

Veranstaltungszentren für Apache Kafka

Apache Kafka-Anwendungen können Ereignisse an Azure Event Hubs senden und von ihnen empfangen, indem sie die verwaltete Identität mit OAuth verwenden. Für ein Java-Beispiel siehe Event Hubs for Kafka: Send and receive messages using managed identity OAuth.