Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En hanterad identitet är en identitet i Microsoft Entra ID som Azure hanterar åt dig, så en applikation kan autentiseras till tjänster som stödjer Microsoft Entra-autentisering utan att lagra några inloggningsuppgifter. Azure Event Hubs stöder Microsoft Entra-autentisering med hanterade identiteter för Azure-resurser, vilket låter applikationer som körs i Azure ansluta till Event Hubs utan att bädda in anslutningssträngar eller åtkomstnycklar i kod eller konfiguration.
När du använder en hanterad identitet tillsammans med Microsoft Entra-autentisering kan program som körs i tjänster som Azure Virtual Machines, Azure Functions, Azure App Service och Virtual Machine Scale Sets få åtkomst till Event Hubs-data med autentiseringsuppgifter som Azure tillhandahåller och roterar automatiskt. Denna metod eliminerar risken för läckta nycklar och minskar den operativa belastningen för att hantera inloggningsuppgifter.
För ett steg-för-steg-exempel, se Access Azure Event Hubs från en VM som använder en hanterad identitet.
Så här fungerar hanterad identitetsautentisering
Tillgång till en Event Hubs-resurs via en hanterad identitet är en tvåstegsprocess:
- Autentisering: Den hanterade identiteten begär en OAuth 2.0-token från Microsoft Entra ID. Azure tillhandahåller identiteten automatiskt baserat på den beräkningsmiljö där koden körs, så ingen hemlighet lagras eller skickas i applikationen.
- Auktorisering: Tokenet visas upp för Event Hubs-tjänsten, som ger åtkomst baserat på de Azure-roller för rollbaserad åtkomstkontroll (RBAC) som har tilldelats identiteten.
För en fullständig beskrivning av autentiserings- och auktorisationsflödet, se Auktorisera åtkomst till Azure Event Hubs-resurser med Microsoft Entra ID.
Hanterade identitetstyper
Event Hubs arbetar med båda typerna av hanterade identiteter:
- Systemtilldelad hanterad identitet: Aktiverad direkt på en Azure-resurs, såsom en virtuell maskin eller en App Service-app. Dess livscykel är kopplad till den resursen, och endast den resursen kan använda den för att begära tokens.
- Användartilldelad hanterad identitet: Skapad som en fristående Azure-resurs och tilldelad en eller flera Azure-resurser, så att flera arbetsbelastningar kan dela samma identitet.
För att lära dig mer om de två typerna och när du ska välja varje, se Managed identity types. För listan över tjänster som stödjer hanterade identiteter, se Tjänster som stödjer hanterade identiteter för Azure-resurser.
Azure inbyggda roller för Event Hubs
Efter att du aktiverat en hanterad identitet, tilldela den en Azure-inbyggd roll som definierar dess behörigheter för Event Hubs-data. Azure tillhandahåller följande inbyggda roller för att auktorisera åtkomst till Event Hubs-data med Microsoft Entra ID:
| Role | Description |
|---|---|
| Azure Event Hubs-dataägare | Ger full tillgång till Event Hubs resurser. |
| Avsändare av Azure Event Hubs-data | Ger tillstånd att skicka händelser till Event Hubs resurser. |
| Azure Event Hubs-datamottagare | Ger tillstånd att ta emot evenemang från Event Hubs resurser. |
Du kan tilldela en roll på nivå med en konsumentgrupp, event hub, namespace, resursgrupp eller prenumeration. Bevilja det snävaste utrymmet som uppfyller applikationens behov. För hela listan över omfattningar och rolldetaljer, se Azure inbyggda roller för Azure Event Hubs. För att tilldela en roll i Azure-portalen, se Tilldela Azure-roller med Azure-portalen.
Tokens utgångsbeteende
När du tar bort en hanterad identitet från en Event Hubs RBAC-roll träder ändringen inte i kraft omedelbart för en körande applikation. Om källtjänsten eller appen inte startar om kan den fortsätta skicka händelser till eller ta emot händelser från händelsehubben tills tokenen går ut. Standardgiltigheten för token är 24 timmar. Detta beteende är av design.
För att omedelbart återkalla åtkomsten efter att du tagit bort identiteten från rollen, starta om källappen eller tjänsten så att den befintliga token går ut.
Stöd för klient-SDK
Azure SDKs:s klientbibliotek hämtar den hanterade identitetstoken åt dig via DefaultAzureCredential, som automatiskt upptäcker den hanterade identiteten som finns tillgänglig i värdmiljön. Du skickar behörigheten till EventHubProducerClient för att skicka händelser och för att EventHubConsumerClient ta emot händelser, utan att ange en reťazec pripojenia eller nyckel.
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);
Installera den senaste Azure. Messaging.EventHubs-paketet från NuGet för att använda dessa klienter. För körbara prover, se:
- Publicera händelser med en hanterad identitet (.NET), som använder det aktuella Azure.Messaging.EventHubs-paketet.
- Exempel på hanterad identitet (.NET, äldre), som använder det äldre Microsoft.Azure.EventHubs-paketet.
- Publicera händelser med Azure-identitet (Java).
Evenemangsnav för Apache Kafka
Apache Kafka-applikationer kan skicka händelser till och ta emot händelser från Azure Event Hubs genom att använda managed identity med OAuth. För ett Java-exempel, se Event Hubs för Kafka: skicka och ta emot meddelanden med managed identity OAuth.
Relaterat innehåll
- Åtkomst till Azure Event Hubs från en VM med en hanterad identitet
- Vad är hanterade identiteter för Azure-resurser?
- Auktorisera åtkomst till Event Hubs-resurser med hjälp av Microsoft Entra ID
- Autentisera begäranden till Azure Event Hubs från ett program med hjälp av Microsoft Entra-ID
- Autentisera begäranden till Azure Event Hubs med signaturer för delad åtkomst
- Auktorisera åtkomst till Event Hubs-resurser med hjälp av signaturer för delad åtkomst