Dela via


Autentisera ett program med Microsoft Entra-ID för att få åtkomst till Event Hubs

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 autentiseringsuppgifter i kod. Begär i stället 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.netresursen för att begära en token ). Microsoft Entra autentiserar säkerhetsprincipen, såsom en användare, grupp, tjänstehuvudman eller hanterad identitet, som kör applikationen. Om autentiseringen lyckas returnerar Microsoft Entra ID en åtkomsttoken till programmet, som sedan kan använda token för att auktorisera begäranden 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 prenumerationen, resursgruppen, Event Hubs-namnområdet eller valfri resurs under den. Ett Microsoft Entra-säkerhetsobjekt kan tilldela roller till en användare, grupp, programtjänsthuvudnamn eller en hanterad identitet för Azure-resurser.

Note

En rolldefinition är en samling behörigheter. Rollbaserad åtkomstkontroll i Azure (Azure RBAC) tillämpar dessa behörigheter via rolltilldelning. En rolltilldelning innehåller tre element: 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 dessa inbyggda 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.

För inbyggda roller i Schema Registry, se Schema Registry-roller.

Important

Förhandsversionen har stöd för att lägga till åtkomstbehörigheter för Event Hubs-data till rollen Ägare eller Deltagare. Dessa privilegier respekteras dock inte längre. Om du använder rollen Ägare eller Deltagare växlar du till 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 du inte behöver lagra dina autentiseringsuppgifter i koden. Begär i stället 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.

I följande avsnitt beskrivs hur du konfigurerar ett internt program eller ett webbprogram för autentisering med Microsoft identity platform 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 Microsoft Entra-ID

Det första steget för att använda Microsoft Entra-ID för att auktorisera Event Hubs-resurser är att registrera ett klientprogram med en Microsoft Entra-klientorganisation i Azure-portalen. 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 ett klient-ID, även kallat program-ID, för att associera programmet med Microsoft Entra-körning. Mer information om klient-ID finns i Program- och tjänsthuvudnamnsobjekt i Microsoft Entra-ID.

Note

Om du registrerar programmet som ett internt program anger du 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 där token tillhandahålls.

När du har registrerat ditt program visas applikations-ID (klient) under Inställningar:

Skärmbild av registreringssidan för Azure-portalappen med program-ID markerat.

Skapa en klienthemlighet för autentisering

Programmet kräver en klienthemlighet för att bevisa sin identitet när en token begärs. 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, till exempel Event Hubs-namnområdet, resursgruppen eller prenumerationen. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

När du har definierat rollen och dess omfång testar du det här beteendet med exempel som är tillgängliga på den här GitHub-platsen. Mer information om hur du hanterar åtkomst till Azure-resurser med rollbaserad åtkomstkontroll i Azure (RBAC) och Azure-portalen finns i den här artikeln.

Använda klientbibliotek för att hämta token

När du har registrerat ditt program och beviljat det behörighet att skicka eller ta emot data i Azure Event Hubs lägger du till kod i ditt program för att autentisera ett säkerhetsobjekt och hämta en OAuth 2.0-token. Om du vill autentisera och hämta token använder du ett av autentiseringsbiblioteken för Microsofts identitetsplattform eller ett annat bibliotek med öppen källkod som stöder OpenID 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.

Samples

Se följande relaterade artiklar: