Dela via


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 Microsoft platforma za identitete. 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.netresursen 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 Microsoft platforma za identitete. 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 Microsoft platforma za identitete 2.0. Mer information om Microsoft platforma za identitete 2.0 finns i översikten över Microsoft platforma za identitete (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-klientorganisation från Azure-portalen. Följ stegen i snabbstarten: Registrera ett program med Microsoft platforma za identitete 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:

Skärmbild som visar appregistreringssidan med program-ID markerat.

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 (RBAC) och Azure-portalen 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 Microsoft platforma za identitete 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

Se följande relaterade artiklar: