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.
Den här artikeln visar hur du ansluter till Azure Event Hubs från en applikation som körs på en Azure virtuell maskin (VM) genom att använda en hanterad identitet. När du använder en hanterad identitet autentiserar din applikation sig mot Event Hubs utan att lagra anslutningssträngar eller accessnycklar i kod eller konfiguration. Azure tillhandahåller och roterar inloggningsuppgifterna automatiskt.
I den här artikeln utför du följande uppgifter:
- Aktivera en systemtilldelad hanterad identitet på en VM.
- Ge den hanterade identiteten behörighet att skicka händelser till en händelsehubb.
- Skapa och kör en exempelapplikation på VM:n som använder den hanterade identiteten.
För att lära dig hur hanterad identitetsautentisering fungerar med Event Hubs, se Managed identity authentication for Azure Event Hubs.
Prerequisites
- Ett Azure-konto med en aktiv prenumeration. Om du inte har något konto, skapa ett kostnadsfritt konto.
- Ett Event Hubs-namnområde och en händelsehubb. För att skapa dem, se Quickstart: Create an event hub using Azure portal.
- En virtuell Azure-maskin. För att skapa en, se Quickstart: Create a Windows VM in the Azure portal eller Quickstart: Create a Linux VM in the Azure portal.
- Behörighet att tilldela Azure-roller inom målomfånget. Rollen Ägare eller Användaråtkomstadministratör inkluderar denna behörighet.
- .NET SDK:n installerades på VM:n för att bygga och köra exempelapplikationen.
Aktivera en hanterad identitet på VM:n
Aktivera en systemtilldelad hanterad identitet på VM:n. Azure skapar en identitet i Microsoft Entra ID som är kopplad till VM:ns livscykel.
Logga in på Azure-portalen.
Gå till den virtuella datorn.
På VM-sidan, välj Säkerhetsidentitet> från vänstermenyn.
På sidan Identitet kontrollerar du att du är på fliken Systemtilldelad.
För statusfältet , välj På.
Välj Spara i kommandofältet och välj sedan Ja för att bekräfta.
Efter att Azure skapat identiteten visas Object (principal) ID på sidan. Du använder denna identitet i nästa avsnitt.
För att aktivera en användartilldelad hanterad identitet istället, se Konfigurera hanterade identiteter för Azure-resurser på en VM. En användartilldelad identitet är en fristående resurs som du kan tilldela till mer än en VM.
Tilldela den hanterade identiteten åtkomst till Event Hubs
Tilldela en Azure-inbyggd roll till den hanterade identiteten så att den kan skicka händelser till din event hub. Detta exempel tilldelar rollen Azure Event Hubs Data Sender inom omfånget för en enskild händelsehubb. Bevilja det snävaste utrymme som uppfyller din ansökan.
- Gå till din händelsehubb i Azure-portalen.
- På sidan för händelsehubben, välj Access Control (IAM) från vänstermenyn.
- Välj Lägg till>Lägg till rolltilldelning.
- På fliken Roll, välj Azure Event Hubs Data Sender och välj sedan Nästa.
- På fliken Medlemmar väljer du Hanterad identitet för Tilldela åtkomst till.
- Välj + Välj medlemmar, välj den virtuella maskinhanterade identiteten som du aktiverade i föregående avsnitt och välj sedan Välj.
- Välj Granska + tilldela för att genomföra rolltilldelningen.
För hela listan över roller och omfattningar, se Azure inbyggda roller för Azure Event Hubs. För att tilldela roller i Azure-portalen, se Assign Azure roles using the Azure portal.
Note
Rolltilldelningar kan ta några minuter för att spridas. Om din applikation inte kan autentiseras omedelbart, vänta och försök igen.
Skapa och köra exempelapplikationen på VM:n
Skapa en .NET-konsolapplikation som skickar händelser till din händelsehubb. När applikationen körs på VMDefaultAzureCredential:n upptäcker den automatiskt den hanterade identiteten, så du tillhandahåller ingen reťazec pripojenia eller nyckel.
Anslut till den virtuella datorn. För en Windows-VM, använd Fjärrskrivbord. För en Linux-VM, använd SSH.
I en terminal på VM:n, skapa ett projekt och lägg till de nödvändiga paketen:
dotnet new console --name EventHubsManagedIdentitySample cd EventHubsManagedIdentitySample dotnet add package Azure.Messaging.EventHubs dotnet add package Azure.IdentityErsätt innehållet i
Program.csmed följande kod. Byt ut<namespace>med ditt Event Hubs-namnrymdsnamn och<event-hub-name>med ditt event hub-namn.using Azure.Identity; using Azure.Messaging.EventHubs; using Azure.Messaging.EventHubs.Producer; // DefaultAzureCredential detects the managed identity available on the VM. var credential = new DefaultAzureCredential(); var producerClient = new EventHubProducerClient( "<namespace>.servicebus.windows.net", "<event-hub-name>", credential); using EventDataBatch eventBatch = await producerClient.CreateBatchAsync(); eventBatch.TryAdd(new EventData("First event from a managed identity")); eventBatch.TryAdd(new EventData("Second event from a managed identity")); await producerClient.SendAsync(eventBatch); await producerClient.DisposeAsync(); Console.WriteLine("Events sent to the event hub.");Bygg och kör applikationen på VM:n:
dotnet runApplikationen använder VM:ns hanterade identitet för att autentisera och skickar händelserna. När händelserna skickas visas konsolen
Events sent to the event hub.För att bekräfta att händelserna har anlänt, använd Data Explorer i Azure-portalen för din händelsehubb, eller måtten på namnrymdens översiktssida.
Tip
När du använder en användartilldelad hanterad identitet, eller när mer än en identitet finns tillgänglig på VM:n, ställ in klient-ID:t så att DefaultAzureCredential rätt identitet väljs. För mer information, se DefaultAzureCredentialOptions.ManagedIdentityClientId.