Beheerde identiteitsauthenticatie voor Azure Event Hubs

Een beheerde identiteit is een identiteit in Microsoft Entra ID die Azure voor je beheert, zodat een applicatie kan authenticeren bij diensten die Microsoft Entra-authenticatie ondersteunen zonder inloggegevens op te slaan. Azure Event Hubs ondersteunt Microsoft Entra-authenticatie met beheerde identiteiten voor Azure-resources, waardoor applicaties die in Azure draaien verbinding kunnen maken met Event Hubs zonder verbindingsstrings of toegangssleutels in code of configuratie in te voegen.

Wanneer je een beheerde identiteit samen met Microsoft Entra-authenticatie gebruikt, kunnen applicaties die worden uitgevoerd in services zoals Azure Virtuele Machines, Azure Functions, Azure App Service en Virtual Machine Scale Sets toegang krijgen tot Event Hubs-gegevens met referenties die Azure automatisch verstrekt en roteert. Deze aanpak verwijdert het risico op gelekte sleutels en vermindert de operationele overhead van het beheer van inloggegevens.

Voor een stapsgewijs voorbeeld, zie Access Azure Event Hubs vanaf een VM met een beheerde identiteit.

Hoe verificatie van beheerde identiteit werkt

Toegang tot een Event Hubs-resource via een beheerde identiteit is een proces in twee stappen:

  • Authenticatie: De beheerde identiteit vraagt een OAuth 2.0-token aan van Microsoft Entra ID. Azure levert de identiteit automatisch op basis van de rekenomgeving waar de code draait, zodat er geen geheim wordt opgeslagen of doorgegeven in de applicatie.
  • Autorisatie: Het token wordt gepresenteerd aan de Event Hubs-service, die toegang verleent op basis van de Azure role-based access control (RBAC)-rollen die aan de identiteit zijn toegewezen.

Voor een volledige beschrijving van de authenticatie- en autorisatiestroom, zie Toegang tot Azure Event Hubs-resources autoriseren met Microsoft Entra ID.

Typen beheerde identiteiten

Event Hubs werkt met beide typen beheerde identiteiten:

  • Systeem-toegewezen beheerde identiteit: Wordt direct ingeschakeld op een Azure-bron, zoals een virtuele machine of een App Service-app. De levenscyclus ervan is gekoppeld aan die hulpbron, en alleen die bron kan deze gebruiken om tokens aan te vragen.
  • Door de gebruiker toegewezen beheerde identiteit: Gemaakt als een zelfstandige Azure-resource en toegewezen aan één of meer Azure-resources, zodat meerdere workloads dezelfde identiteit kunnen delen.

Raadpleeg Typen beheerde identiteiten voor meer informatie over de twee typen en wanneer u voor elk type kiest. Voor de lijst van diensten die beheerde identiteiten ondersteunen, zie Services die beheerde identiteiten ondersteunen voor Azure-resources.

Azure ingebouwde rollen voor Event Hubs

Nadat je een beheerde identiteit hebt ingeschakeld, wijs je deze een ingebouwde rol toe aan Azure die zijn rechten op Event Hubs-data definieert. Azure biedt de volgende ingebouwde rollen voor het autoriseren van toegang tot Event Hubs-gegevens met Microsoft Entra ID:

Role Description
Azure Event Hubs-gegevenseigenaar Geeft volledige toegang tot de middelen van Event Hubs.
Azure Event Hubs-gegevenszender Geeft toestemming om evenementen naar de resources van Event Hubs te sturen.
Azure Event Hubs-gegevensontvanger Geeft toestemming om evenementen te ontvangen van de middelen van Event Hubs.

Je kunt een rol toewijzen op het niveau van een consumentengroep, event hub, namespace, resource group of abonnement. Geef de smalste scope die aan de behoeften van de aanvraag voldoet. Voor de volledige lijst van scopes en roldetails, zie Azure ingebouwde rollen voor Azure Event Hubs. Om een rol toe te wijzen in het Azure-portaal, zie Assign Azure roles using the Azure portal.

Token-vervaldatum

Wanneer je een beheerde identiteit verwijdert uit een Event Hubs RBAC-rol, treedt de wijziging niet direct in voor een draaiende applicatie. Als de bronservice of app niet opnieuw opstart, kan het evenementen blijven sturen naar of evenementen ontvangen van de event hub totdat het token verloopt. De standaard geldigheid van de token is 24 uur. Dit is zo ontworpen.

Om de toegang onmiddellijk in te trekken nadat je de identiteit uit de rol verwijdert, start je de bron-app of -dienst opnieuw zodat het bestaande token vervalt.

Client SDK-ondersteuning

De Azure SDK-clientbibliotheken verkrijgen het beheerde identiteitstoken voor je via DefaultAzureCredential, dat automatisch de beheerde identiteit detecteert die beschikbaar is in de hostingomgeving. Je geeft de referentie door aan EventHubProducerClient om gebeurtenissen te verzenden en aan EventHubConsumerClient om gebeurtenissen te ontvangen, zonder een verbindingsreeks of sleutel op te geven.

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);

Installeer de nieuwste Azure. Messaging.EventHubs-pakket van NuGet om deze clients te gebruiken. Zie voor uitvoerbare voorbeelden:

Evenementenhubs voor Apache Kafka

Apache Kafka-applicaties kunnen gebeurtenissen naar en ontvangen van Azure Event Hubs door managed identity met OAuth te gebruiken. Voor een Java-voorbeeld, zie Event Hubs for Kafka: send and receive messages using managed identity OAuth.