Autentisera ett program med Microsoft Entra-ID för att få åtkomst till Event Hubs-resurser
Microsoft Azure tillhandahåller integrerad hantering av åtkomstkontroll för resurser och program baserat på Microsoft Entra-ID. En viktig fördel med att använda Microsoft Entra-ID med Azure Event Hubs är att du inte behöver lagra dina autentiseringsuppgifter i koden längre. I stället kan du begära en OAuth 2.0-åtkomsttoken från Microsofts identitetsplattform. Resursnamnet för att begära en token är https://eventhubs.azure.net/
, och det är samma för alla moln/klienter (för Kafka-klienter är https://<namespace>.servicebus.windows.net
resursen för att begära en token ). Microsoft Entra autentiserar säkerhetsobjektet (en användare, grupp, tjänstens huvudnamn eller hanterade identitet) som kör programmet. Om autentiseringen lyckas returnerar Microsoft Entra ID en åtkomsttoken till programmet, och programmet kan sedan använda åtkomsttoken för att auktorisera begäran till Azure Event Hubs-resurser.
När en roll tilldelas ett Microsoft Entra-säkerhetsobjekt ger Azure åtkomst till dessa resurser för det säkerhetsobjektet. Åtkomst kan begränsas till prenumerationsnivån, resursgruppen, Event Hubs-namnområdet eller valfri resurs under den. En Microsoft Entra-säkerhet kan tilldela roller till en användare, en grupp, ett huvudnamn för programtjänsten eller en hanterad identitet för Azure-resurser.
Kommentar
En rolldefinition är en samling behörigheter. Rollbaserad åtkomstkontroll i Azure (Azure RBAC) styr hur dessa behörigheter tillämpas via rolltilldelning. En rolltilldelning består av tre delar: säkerhetsobjekt, rolldefinition och omfång. Mer information finns i Förstå de olika rollerna.
Inbyggda roller för Azure Event Hubs
Azure tillhandahåller följande inbyggda Azure-roller för att auktorisera åtkomst till Event Hubs-data med hjälp av Microsoft Entra ID och OAuth:
- Azure Event Hubs-dataägare: Använd den här rollen för att ge fullständig åtkomst till Event Hubs-resurser.
- Azure Event Hubs Data Sender: Ett säkerhetsobjekt som tilldelats den här rollen kan skicka händelser till en specifik händelsehubb eller alla händelsehubbar i ett namnområde.
- Azure Event Hubs Data Receiver: Ett säkerhetsobjekt som tilldelats den här rollen kan ta emot händelser från en specifik händelsehubb eller alla händelsehubbar i ett namnområde.
Inbyggda roller för Schema Registry finns i Schema Registry-roller.
Viktigt!
Vår förhandsversion har stöd för att lägga till åtkomstbehörigheter för Event Hubs-data till rollen Ägare eller Deltagare. Dataåtkomstbehörigheter för rollen Ägare och Deltagare respekteras dock inte längre. Om du använder rollen Ägare eller Deltagare växlar du till att använda rollen Azure Event Hubs-dataägare.
Autentisera från ett program
En viktig fördel med att använda Microsoft Entra-ID med Event Hubs är att dina autentiseringsuppgifter inte längre behöver lagras i koden. I stället kan du begära en OAuth 2.0-åtkomsttoken från Microsofts identitetsplattform. Microsoft Entra autentiserar säkerhetsobjektet (en användare, en grupp eller tjänstens huvudnamn) som kör programmet. Om autentiseringen lyckas returnerar Microsoft Entra-ID:t åtkomsttoken till programmet och programmet kan sedan använda åtkomsttoken för att auktorisera begäranden till Azure Event Hubs.
Följande avsnitt visar hur du konfigurerar ditt interna program eller webbprogram för autentisering med Microsofts identitetsplattform 2.0. Mer information om Microsofts identitetsplattform 2.0 finns i översikten över Microsofts identitetsplattform (v2.0).
En översikt över OAuth 2.0-kodbidragsflödet finns i Auktorisera åtkomst till Microsoft Entra-webbprogram med hjälp av OAuth 2.0-kodtillämpningsflödet.
Registrera ditt program med en Microsoft Entra-klientorganisation
Det första steget i att använda Microsoft Entra-ID för att auktorisera Event Hubs-resurser är att registrera ditt klientprogram med en Microsoft Entra-klient från Azure Portal. Följ stegen i snabbstarten: Registrera ett program med Microsofts identitetsplattform för att registrera ett program i Microsoft Entra-ID som representerar ditt program som försöker komma åt Event Hubs-resurser.
När du registrerar klientprogrammet anger du information om programmet. Microsoft Entra-ID tillhandahåller sedan ett klient-ID (även kallat ett program-ID) som du kan använda för att associera ditt program med Microsoft Entra-körning. Mer information om klient-ID finns i Program- och tjänsthuvudnamnsobjekt i Microsoft Entra-ID.
Kommentar
Om du registrerar ditt program som ett internt program kan du ange en giltig URI för omdirigerings-URI:n. För interna program behöver det här värdet inte vara en riktig URL. För webbprogram måste omdirigerings-URI:n vara en giltig URI eftersom den anger den URL som token tillhandahålls till.
När du har registrerat ditt program visas program-ID :t (klient) under Inställningar:
Skapa en klienthemlighet
Appen behöver en klienthemlighet för att bevisa sin identitet när det begär en token. Följ stegen från Lägg till en klienthemlighet för att skapa en klienthemlighet för din app i Microsoft Entra-ID.
Tilldela Azure-roller med hjälp av Azure-portalen
Tilldela en av Event Hubs-rollerna till programmets tjänsthuvudnamn i önskat omfång (Event Hubs-namnområde, resursgrupp, prenumeration). Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.
När du har definierat rollen och dess omfång kan du testa det här beteendet med exempel på den här GitHub-platsen. Mer information om hur du hanterar åtkomst till Azure-resurser med rollbaserad åtkomstkontroll i Azure (RBAC) och Azure Portal finns i den här artikeln.
Klientbibliotek för tokenförvärv
När du har registrerat ditt program och gett det behörighet att skicka/ta emot data i Azure Event Hubs kan du lägga till kod i ditt program för att autentisera ett säkerhetsobjekt och hämta OAuth 2.0-token. Om du vill autentisera och hämta token kan du använda något av de Microsofts identitetsplattform autentiseringsbiblioteken eller ett annat bibliotek med öppen källkod som stöder OpenID eller Connect 1.0. Ditt program kan sedan använda åtkomsttoken för att auktorisera en begäran mot Azure Event Hubs.
Scenarier där hämtning av token stöds finns i avsnittet Scenarier i Microsoft Authentication Library (MSAL) för .NET GitHub-lagringsplatsen.
Exempel
- RBAC-exempel med det äldre .NET Microsoft.Azure.EventHubs-paketet. Vi arbetar med att skapa en ny version av det här exemplet med hjälp av det senaste Azure.Messaging.EventHubs-paketet. Se den redan konverterade hanterade identiteten.
- RBAC-exempel med det äldre Java com.microsoft.azure.eventhubs-paketet. Du kan använda migreringsguiden för att migrera det här exemplet för att använda det nya paketet (
com.azure.messaging.eventhubs
). Mer information om hur du använder det nya paketet i allmänhet finns i exempel här.
Relaterat innehåll
- Mer information om Azure RBAC finns i Vad är rollbaserad åtkomstkontroll i Azure (Azure RBAC)?
- Mer information om hur du tilldelar och hanterar Azure-rolltilldelningar med Azure PowerShell, Azure CLI eller REST-API:et finns i följande artiklar:
Se följande relaterade artiklar:
- Autentisera en hanterad identitet med Microsoft Entra-ID för åtkomst till Event Hubs-resurser
- Autentisera begäranden till Azure Event Hubs med signaturer för delad åtkomst
- Auktorisera åtkomst till Event Hubs-resurser med hjälp av Microsoft Entra ID
- Auktorisera åtkomst till Event Hubs-resurser med hjälp av signaturer för delad åtkomst