Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo ti mostra come connetterti a Hub eventi di Azure da un'applicazione che gira su una macchina virtuale Azure (VM) utilizzando un'identità gestita. Quando usi un'identità gestita, la tua applicazione si autentica agli Event Hub senza memorizzare stringhe di connessione o chiavi di accesso nel codice o nella configurazione. Azure fornisce e ruota automaticamente le credenziali.
In questo articolo vengono completate le attività seguenti:
- Abilita un'identità gestita assegnata al sistema su una VM.
- Concedi all'identità gestita l'autorizzazione per inviare eventi a un hub di eventi.
- Crea ed esegui un'applicazione di esempio sulla VM che utilizzi l'identità gestita.
Per capire come funziona l'autenticazione dell'identità gestita con gli Event Hubs, consulta Autenticazione dell'identità gestita per Hub eventi di Azure.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Se non ne hai uno, crea un account gratuito.
- Un namespace per Hub Eventi e un hub per eventi. Per crearli, consulta Avvio rapido: Crea un hub eventi usando il portale Azure.
- Una macchina virtuale di Azure. Per crearne una, consulta Quickstart: Crea una VM Windows nel portale Azure oppure Quickstart: Crea una VM Linux nel portale Azure.
- Autorizzazione ad assegnare ruoli Azure nell'ambito di destinazione. Il ruolo di Proprietario o Amministratore Accesso Utente include questa autorizzazione.
- L'SDK .NET è stato installato sulla VM per costruire ed eseguire l'applicazione di esempio.
Abilita un'identità gestita sulla VM
Abilita un'identità gestita assegnata dal sistema sulla VM. Azure crea un'identità in Microsoft Entra ID legata al ciclo di vita della VM.
Accedi al portale di Azure.
Vai alla tua macchina virtuale.
Nella pagina della VM, seleziona Identità di Sicurezza> nel menu sinistro.
Nella pagina Identità , conferma di essere nella scheda Sistema assegnato .
Per il campo Stato , seleziona On.
Seleziona Salva nella barra dei comandi, poi seleziona Sì per confermare.
Dopo che Azure crea l'identità, l'ID dell'oggetto (principale) appare sulla pagina. Userai questa identità nella sezione successiva.
Per abilitare invece un'identità gestita assegnata dall'utente, vedi Configura identità gestite per le risorse Azure su una VM. Un'identità assegnata dall'utente è una risorsa autonoma che puoi assegnare a più di una VM.
Concedere all'identità gestita l'accesso agli Event Hub
Assegna un ruolo integrato Azure all'identità gestita in modo che possa inviare eventi al tuo event hub. Questo esempio assegna il ruolo di Data Sender di Hub eventi di Azure nell'ambito di un singolo event hub. Concedi il campo più ristretto che soddisfi le esigenze della tua domanda.
- Nel portale di Azure passare all'hub eventi.
- Nella pagina dell'hub eventi, seleziona Controllo accesso (IAM) dal menu sinistro.
- Seleziona Aggiungi>Aggiungi assegnazione di ruolo.
- Nella scheda Ruolo, seleziona Hub eventi di Azure Data Sender, e poi seleziona Next.
- Nella scheda Membri , per Assegna accesso a, selezionare Identità gestita.
- Seleziona + Seleziona membri, scegli l'identità gestita della macchina virtuale che hai abilitato nella sezione precedente, e poi seleziona Seleziona.
- Selezionare Rivedi e assegna per completare l'assegnazione di ruolo.
Per l'elenco completo di ruoli e ambiti, vedere Ruoli predefiniti di Azure per Hub eventi di Azure. Per assegnare i ruoli nel portale Azure, vedi Assegna ruoli Azure usando il portale Azure.
Note
La propagazione delle assegnazioni di ruolo può richiedere alcuni minuti. Se la tua applicazione non riesce ad autenticarsi immediatamente, attendi e riprova.
Crea ed esegui l'applicazione di esempio sulla VM
Crea un'applicazione console .NET che invii eventi al tuo hub eventi. Quando l'applicazione si attiva sulla VM, DefaultAzureCredential rileva automaticamente l'identità gestita, quindi non fornisci una stringa di connessione o una key.
Connettersi alla VM. Per una VM Windows, usa Desktop remoto. Per una VM Linux, usa SSH.
In un terminale sulla VM, crea un progetto e aggiungi i pacchetti richiesti:
dotnet new console --name EventHubsManagedIdentitySample cd EventHubsManagedIdentitySample dotnet add package Azure.Messaging.EventHubs dotnet add package Azure.IdentitySostituire il contenuto di
Program.cscon il codice seguente. Sostituisci<namespace>con il nome dello spazio del tuo Event Hub e<event-hub-name>con il nome del tuo hub evento.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.");Compila ed esegui l'applicazione sulla VM:
dotnet runL'applicazione utilizza l'identità gestita della VM per autenticare e inviare gli eventi. Quando gli eventi vengono inviati, la console visualizza
Events sent to the event hub.Per confermare che gli eventi siano arrivati, usa Esplora dati nel portale di Azure per il tuo hub eventi, oppure usa le metriche della pagina Panoramica dello spazio dei nomi.
Tip
Quando usi un'identità gestita assegnata dall'utente, o quando sono disponibili più identità sulla VM, imposta l'ID del client in modo che DefaultAzureCredential scelga l'identità corretta. Per maggiori informazioni, vedi DefaultAzureCredentialOptions.ManagedIdentityClientId.