Share via


Eseguire la migrazione di un'applicazione per usare connessioni senza password con Hub eventi di Azure

Le richieste dell'applicazione ai servizi di Azure devono essere autenticate usando configurazioni quali chiavi di accesso all'account o connessioni senza password. Tuttavia, è consigliabile assegnare priorità alle connessioni senza password nelle applicazioni, quando possibile. I metodi di autenticazione tradizionali che usano password o chiavi segrete creano rischi e complicazioni per la sicurezza. Visitare l’hub delle connessioni senza password per i servizi di Azure per altre informazioni sui vantaggi del passaggio alle connessioni senza password.

L'esercitazione seguente illustra come eseguire la migrazione di un'applicazione esistente per connettersi usando connessioni senza password. Questi stessi passaggi di migrazione devono essere applicati indipendentemente dal fatto che si usino chiavi di accesso, stringhe di connessione o un altro approccio basato su segreti.

Configurare l'ambiente di sviluppo locale

Le connessioni senza password possono essere configurate per funzionare sia per gli ambienti locali sia per gli ambienti ospitati in Azure. In questa sezione si applicano le configurazioni per consentire ai singoli utenti di eseguire l'autenticazione a Hub eventi di Azure per lo sviluppo locale.

Assegnare i ruoli utente

Quando si sviluppa in locale, assicurarsi che l'account utente che accede a Hub eventi di Azure disponga delle autorizzazioni corrette. Per leggere e scrivere i dati dei messaggi sono necessari i ruoli Ricevitore dei dati di Hub eventi di Azure e Mittente dei dati di Hub eventi di Azure. Per assegnare a se stessi questo ruolo, è necessario assegnare il ruolo Amministratore accesso utenti o un altro ruolo che include l'azione Microsoft.Authorization/roleAssignments/write. È possibile assegnare ruoli controllo degli accessi in base al ruolo di Azure a un utente usando il portale di Azure, l'interfaccia della riga di comando di Azure o Azure PowerShell. Altre informazioni sugli ambiti disponibili per le assegnazioni di ruolo sono disponibili nella pagina panoramica dell'ambito .

L'esempio seguente assegna i ruoli Mittente dati di Hub eventi di Azure e Ricevitore dati di Hub eventi di Azure all'account utente. Questo ruolo concede l'accesso in lettura e scrittura ai messaggi dell'hub eventi.

  1. Nel portale di Azure individuare l'hub eventi usando la barra di ricerca principale o lo spostamento a sinistra.

  2. Nella pagina di panoramica dell'hub eventi selezionare Controllo di accesso (IAM) dal menu a sinistra.

  3. Nella pagina Controllo di accesso (IAM), selezionare la scheda Assegnazioni di ruolo.

  4. Selezionare + Aggiungi dal menu in alto e quindi Aggiungi assegnazione di ruolo dal menu a discesa risultante.

    Screenshot che mostra come assegnare un ruolo.

  5. Usare la casella di ricerca per filtrare i risultati in base al ruolo desiderato. Per questo esempio, cercare Mittente dati di Hub eventi di Azure e selezionare il risultato corrispondente e quindi scegliere Avanti.

  6. In Assegna accesso a selezionare Utente, gruppo o entità servizio e quindi scegliere + Seleziona membri.

  7. Nella finestra di dialogo cercare il nome utente di Microsoft Entra (in genere l'indirizzo di posta elettronica user@domain) e quindi scegliere Selezionare nella parte inferiore della finestra di dialogo.

  8. Selezionare Rivedi e assegna per passare alla pagina finale e quindi Rivedi e assegna di nuovo per completare il processo.

  9. Ripetere questi passaggi per il ruolo Ricevitore dati di Hub eventi di Azure per consentire all'account di inviare e ricevere messaggi.

Importante

Nella maggior parte dei casi, la propagazione dell'assegnazione di ruolo in Azure richiederà almeno due minuti, ma in rari casi può richiedere fino a otto minuti. Se si ricevono errori di autenticazione quando si esegue il codice per la prima volta, attendere alcuni istanti e riprovare.

Accedere ad Azure in locale

Per lo sviluppo locale, assicurarsi di essere autenticati con lo stesso account Microsoft Entra a cui è stato assegnato il ruolo. È possibile eseguire l'autenticazione tramite strumenti di sviluppo diffusi, ad esempio l'interfaccia della riga di comando di Azure o Azure PowerShell. Gli strumenti di sviluppo con cui è possibile eseguire l'autenticazione variano a seconda dei linguaggi.

Accedere ad Azure tramite l'interfaccia della riga di comando di Azure usando il comando seguente:

az login

Aggiornare il codice dell'applicazione per usare connessioni senza password

La libreria client di Identità di Azure, per ognuno degli ecosistemi seguenti, fornisce una classe DefaultAzureCredential che gestisce l'autenticazione senza password in Azure:

DefaultAzureCredential supporta più metodi di autenticazione. Il metodo da usare viene determinato in fase di esecuzione. Questo approccio consente all'app di usare metodi di autenticazione diversi in ambienti diversi (locale e di produzione) senza implementare codice specifico dell'ambiente. Vedere i collegamenti precedenti per l'ordine e le posizioni in cui DefaultAzureCredential cerca le credenziali.

  1. Per usare DefaultAzureCredential in un'applicazione .NET, installare il pacchetto Azure.Identity :

    dotnet add package Azure.Identity
    
  2. All'inizio del file aggiungere il codice seguente:

    using Azure.Identity;
    
  3. Identificare i percorsi nel codice che creano un oggetto EventHubProducerClient o EventProcessorClient per connettersi a Hub eventi di Azure. Aggiornare il codice in modo che corrisponda all'esempio seguente:

    DefaultAzureCredential credential = new();
    var eventHubNamespace = $"https://{namespace}.servicebus.windows.net";
    
    // Event Hubs producer
    EventHubProducerClient producerClient = new(
        eventHubNamespace,
        eventHubName,
        credential);
    
    // Event Hubs processor
    EventProcessorClient processorClient = new(
        storageClient,
        EventHubConsumerClient.DefaultConsumerGroupName,
        eventHubNamespace,
        eventHubName,
        credential);
    
  1. Assicurarsi di aggiornare lo spazio dei nomi dell'hub eventi nell'URI degli oggetti EventHubProducerClient o EventProcessorClient. È possibile trovare il nome dello spazio dei nomi nella pagina di panoramica del portale di Azure.

    Screenshot che mostra come trovare il nome dello spazio dei nomi.

Eseguire l'app in locale

Dopo aver apportato queste modifiche al codice, eseguire l'applicazione in locale. La nuova configurazione deve raccogliere le credenziali locali, ad esempio l'interfaccia della riga di comando di Azure, Visual Studio o IntelliJ. I ruoli assegnati all'utente in Azure consentono all'app di connettersi al servizio di Azure in locale.

Configurare l'ambiente di hosting di Azure

Dopo aver configurato l'applicazione per l'uso di connessioni senza password e l'esecuzione in locale, lo stesso codice può eseguire l'autenticazione ai servizi di Azure dopo la distribuzione in Azure. Le sezioni seguenti illustrano come configurare un'applicazione distribuita per connettersi a Hub eventi di Azure usando un'identità gestita. Le identità gestite forniscono un'identità gestita automaticamente in Microsoft Entra ID per le applicazioni da usare per la connessione alle risorse che supportano l'autenticazione di Microsoft Entra. Vedere altre informazioni sulle identità gestite:

Creare l'identità gestita

È possibile creare, elencare ed eliminare un'identità gestita assegnata dall'utente mediante il portale di Azure o l'interfaccia della riga di comando di Azure. L'applicazione usa l'identità per eseguire l'autenticazione ad altri servizi.

  1. Nella parte superiore del portale di Azure cercare Identità gestite. Selezionare il risultato Identità gestite.
  2. Selezionare + Crea nella parte superiore della pagina di panoramica Identità gestite.
  3. Nella scheda Informazioni di base digitare i valori seguenti:
    • Abbonamento: selezionare ll’abbonamento desiderato.
    • Gruppo di risorse: selezionare il gruppo di risorse desiderato.
    • Area: selezionare un'area nelle vicinanze della località.
    • Nome: immettere un nome riconoscibile per l'identità, ad esempio MigrationIdentity.
  4. Selezionare Rivedi e crea nella parte inferiore della pagina.
  5. Al termine dei controlli di convalida, selezionare Crea. Azure crea una nuova identità assegnata all'utente.

Dopo aver creato la risorsa, selezionare Vai alla risorsa per visualizzare i dettagli dell'identità gestita.

Screenshot che mostra come creare un'identità gestita assegnata dall'utente.

Associare l'identità gestita all'app Web

È necessario configurare l'app Web per usare l'identità gestita creata. Assegnare l'identità all'app usando il portale di Azure o l'interfaccia della riga di comando di Azure.

Completare i passaggi seguenti nel portale di Azure per associare un'identità all'app. Questi stessi passaggi si applicano ai servizi di Azure seguenti:

  • Azure Spring Apps
  • App contenitore di Azure
  • Macchine virtuali di Azure
  • Servizio Azure Kubernetes
  1. Passare alla pagina di panoramica dell'app Web.

  2. Selezionare Identità nel pannello di spostamento sinistro.

  3. Nella pagina Identità passare alla scheda Assegnata dall'utente.

  4. Selezionare + Aggiungi per aprire il riquadro a comparsa Aggiungi identità gestita assegnata dall'utente .

  5. Selezionare l’abbonamento usato in precedenza per creare l'identità.

  6. Cercare la MigrationIdentity per nome e selezionarla nei risultati della ricerca.

  7. Selezionare Aggiungi per associare l'identità all'app.

    Screenshot che mostra come creare un'identità assegnata dall'utente.

Assegnare ruoli all'identità gestita

Successivamente, è necessario concedere le autorizzazioni all'identità gestita creata per accedere all'hub eventi. Concedere le autorizzazioni assegnando un ruolo all'identità gestita, proprio come è stato fatto con l'utente di sviluppo locale.

  1. Passare alla pagina di panoramica dell'hub eventi e selezionare Controllo di accesso (IAM) dal riquadro di spostamento a sinistra.

  2. Scegliere Aggiungi assegnazione di ruolo

    Screenshot che mostra come aggiungere un ruolo a un'identità gestita.

  3. Nella casella di ricerca Ruolo cercare Hub eventi di Azure Mittente dati, che è un ruolo comune usato per gestire le operazioni sui dati per le code. È possibile assegnare qualsiasi ruolo appropriato per il caso d'uso. Selezionare il Hub eventi di Azure Mittente dati dall'elenco e scegliere Avanti.

  4. Nella schermata Aggiungi assegnazione di ruolo , per l’opzione Assegna accesso a, selezionare Identità gestita. Scegliere quindi +Seleziona membri.

  5. Nel riquadro a comparsa cercare l'identità gestita creata per nome e selezionarla nei risultati. Scegliere Selezionare per chiudere il menu a comparsa.

    Screenshot che mostra come selezionare l'identità gestita assegnata.

  6. Selezionare Avanti un paio di volte fino a quando non è possibile selezionare Rivedi e assegna per completare l'assegnazione di ruolo.

  7. Ripetere questi passaggi per il ruolo Ricevitore dati dell'hub eventi di Azure.

Aggiornare il codice dell'applicazione

È necessario configurare il codice dell'applicazione per cercare l'identità gestita specifica creata quando viene distribuita in Azure. In alcuni scenari, l'impostazione esplicita dell'identità gestita per l'app impedisce anche il rilevamento accidentale e l'uso automatico di altre identità dell'ambiente.

  1. Nella pagina di panoramica dell'identità gestita copiare il valore dell'ID client negli Appunti.

  2. Applicare le modifiche specifiche della lingua seguenti:

    Creare un oggetto DefaultAzureCredentialOptions e passarlo a DefaultAzureCredential. Impostare la proprietà ManagedIdentityClientId sull'ID client.

    DefaultAzureCredential credential = new(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = managedIdentityClientId
        });
    
  3. Ridistribuire il codice in Azure dopo aver apportato questa modifica affinché vengano applicati gli aggiornamenti della configurazione.

Testare l'app

Dopo aver distribuito il codice aggiornato, passare all'applicazione ospitata nel browser. L'app dovrebbe essere in grado di connettersi correttamente all'hub eventi. Tenere presente che la propagazione delle assegnazioni di ruolo nell'ambiente di Azure può richiedere alcuni minuti. L'applicazione è ora configurata per l'esecuzione sia in locale che in un ambiente di produzione senza che gli sviluppatori debbano gestire i segreti nell'applicazione stessa.

Passaggi successivi

In questa esercitazione si è appreso come eseguire la migrazione di un'applicazione a connessioni senza password.

È possibile leggere le risorse seguenti per esplorare i concetti illustrati in questo articolo in modo più approfondito: