Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel zeigt Ihnen, wie Sie von einer Anwendung, die auf einer virtuellen Azure-Maschine (VM) ausgeführt wird, mithilfe einer verwalteten Identität eine Verbindung mit Azure Event Hubs herstellen. Wenn Sie eine verwaltete Identität verwenden, authentifiziert sich Ihre Anwendung bei Event Hubs, ohne Verbindungsstrings oder Zugriffsschlüssel im Code oder in der Konfiguration zu speichern. Azure stellt die Zugangsdaten bereit und rotiert sie automatisch.
In diesem Artikel führen Sie die folgenden Aufgaben aus:
- Aktivieren Sie eine systemzugewiesene verwaltete Identität auf einer VM.
- Erteilen Sie der verwalteten Identität die Berechtigung, Ereignisse an einen Event Hub zu senden.
- Erstelle und führe eine Beispielanwendung auf der VM aus, die die verwaltete Identität verwendet.
Um zu erfahren, wie die Authentifizierung der verwalteten Identität mit Event Hubs funktioniert, siehe Verwaltete Identitätsauthentifizierung für Azure Event Hubs.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie kein Konto haben, erstellen Sie ein kostenloses Konto.
- Ein Event Hubs-Namensraum und ein Event Hub. Um sie zu erstellen, siehe Quickstart: Erstellen Sie einen Event Hub mit Azure Portal.
- Ein virtueller Azure-Computer. Um eine zu erstellen, siehe Quickstart: Create a Windows VM in the Azure Portal oder Quickstart: Create a Linux VM in the Azure Portal.
- Berechtigung zur Zuweisung von Azure-Rollen im Zielumfang. Die Rolle Eigentümer oder Benutzerzugriffsadministrator enthält diese Berechtigung.
- Das .NET SDK wurde auf der VM installiert, um die Beispielanwendung zu erstellen und auszuführen.
Aktivieren Sie eine verwaltete Identität auf der VM
Aktivieren Sie eine systemzugewiesene verwaltete Identität auf der VM. Azure erstellt eine Identität in Microsoft Entra ID, die an den Lebenszyklus der VM gebunden ist.
Melden Sie sich im Azure-Portal an.
Wechseln Sie zu Ihrer VM.
Wählen Sie auf der VM-Seite im linken Menü SecurityIdentityaus>.
Vergewissern Sie sich auf der Seite Identität, dass Sie sich auf der Registerkarte System assigned befinden.
Für das Statusfeld wählen Sie Ein.
Wählen Sie in der Befehlsleiste Speichern und dann Ja, um dies zu bestätigen.
Nachdem Azure die Identität erstellt hat, erscheint die Objekt-(Haupt-)ID auf der Seite. Diese Identität verwenden Sie im nächsten Abschnitt.
Um stattdessen eine vom Benutzer zugewiesene verwaltete Identität zu aktivieren, siehe Configure managed Identities for Azure resources on a VM. Eine benutzerzugewiesene Identität ist eine eigenständige Ressource, die Sie mehr als einer VM zuweisen können.
Gewähren Sie der verwalteten Identität den Zugriff auf Event Hubs
Weisen Sie der verwalteten Identität eine integrierte Azure-Rolle zu, damit sie Ereignisse an Ihren Event Hub senden kann. Dieses Beispiel weist die Rolle Azure Event Hubs Data Sender für den Bereich eines einzelnen Event Hubs zu. Gewähren Sie den kleinstmöglichen Berechtigungsumfang, der den Anforderungen Ihrer Anwendung entspricht.
- Wechseln Sie im Azure-Portal zu Ihrem Event Hub.
- Auf der Eventhub-Seite wählen Sie im linken Menü Access Control (IAM) aus.
- Wählen Sie Hinzufügen>Rollenzuweisung hinzufügen aus.
- Auf der Registerkarte Rolle wählen Sie Azure Event Hubs Data Sender aus und dann Weiter.
- Wählen Sie auf der Registerkarte " Mitglieder " für "Zugriff zuweisen"die Option "Verwaltete Identität" aus.
- Wählen Sie + Mitglieder auswählen, wählen Sie die verwaltete Identität des Virtuellen Computers aus, die Sie im vorherigen Abschnitt aktiviert haben, und wählen Sie dann Auswählen.
- Wählen Sie Überprüfen + zuweisen aus, um die Rollenzuweisung abzuschließen.
Die vollständige Liste der Rollen und Bereiche finden Sie unter Integrierte Azure-Rollen für Azure Event Hubs. Um Rollen im Azure-Portal zuzuweisen, siehe Assign Azure Roles using the Azure Portal.
Note
Rollenzuweisungen können einige Minuten dauern, bis sie verteilt werden. Wenn deine Anwendung sich nicht sofort authentifizieren kann, warte und versuche es erneut.
Erstellen und ausführen Sie die Beispielanwendung auf der VM
Erstellen Sie eine .NET-Konsolenanwendung, die Ereignisse an Ihren Event Hub sendet. Wenn die Anwendung auf der VM läuft, DefaultAzureCredential erkennt sie automatisch die verwaltete Identität, sodass du keinen Verbindungszeichenfolge oder Key angibst.
Stellen Sie eine Verbindung mit der VM her. Für eine Windows-VM verwenden Sie Remotedesktop. Für eine Linux-VM verwenden Sie SSH.
Erstellen Sie in einem Terminal der VM ein Projekt und fügen Sie die erforderlichen Pakete hinzu:
dotnet new console --name EventHubsManagedIdentitySample cd EventHubsManagedIdentitySample dotnet add package Azure.Messaging.EventHubs dotnet add package Azure.IdentityErsetzen Sie den Inhalt von
Program.csdurch den folgenden Code. Ersetzen Sie<namespace>durch Ihren Event Hubs-Namespace und<event-hub-name>durch den Namen Ihres Event Hubs.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.");Baue und führe die Anwendung auf der VM aus:
dotnet runDie Anwendung verwendet die verwaltete Identität der VM zur Authentifizierung und sendet die Ereignisse. Wenn die Ereignisse gesendet werden, zeigt die Konsole
Events sent to the event hub.an.Um zu bestätigen, dass die Ereignisse angekommen sind, verwenden Sie den Data Explorer im Azure-Portal Ihres Event-Hubs oder die Metriken auf der Übersichtsseite des Namensraums.
Tip
Wenn Sie eine benutzerzugewiesene verwaltete Identität verwenden oder wenn mehr als eine Identität auf der VM verfügbar ist, stellen Sie die Client-ID so ein, dass die DefaultAzureCredential korrekte Identität ausgewählt wird. Weitere Informationen finden Sie unter DefaultAzureCredentialOptions.ManagedIdentityClientId.