Share via


Eseguire la migrazione di un'applicazione per usare connessioni senza password con l'Archiviazione di accodamento 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 le connessioni senza password per l'hub dei 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 se si usano chiavi di accesso, stringa 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 che per gli ambienti ospitati in Azure. In questa sezione verranno applicate le configurazioni per consentire ai singoli utenti di eseguire l'autenticazione ai Archiviazione di accodamento di Azure per lo sviluppo locale.

Assegnare i ruoli utente

Quando si sviluppa in locale, assicurarsi che l'account utente che accede a Queue Archiviazione disponga delle autorizzazioni corrette. Per leggere e scrivere dati della coda, è necessario il ruolo collaboratore ai dati della coda Archiviazione. Per assegnare a se stessi questo ruolo, è necessario assegnare il ruolo Accesso utente Amministrazione istrator 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 nella pagina di panoramica dell'ambito.

Nell'esempio seguente viene assegnato il ruolo collaboratore ai dati della coda Archiviazione all'account utente. Questo ruolo concede l'accesso in lettura e scrittura ai dati della coda nell'account di archiviazione.

  1. Nella portale di Azure individuare l'account di archiviazione usando la barra di ricerca principale o lo spostamento a sinistra.

  2. Nella pagina di panoramica dell'account di archiviazione 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.

    A screenshot showing how to assign a role.

  5. Usare la casella di ricerca per filtrare i risultati in base al ruolo desiderato. Per questo esempio, cercare Archiviazione Collaboratore dati coda 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 Seleziona nella parte inferiore della finestra di dialogo.

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

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 DefaultAzureCredential classe 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 vengono cercate le credenziali.

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

    dotnet add package Azure.Identity
    
  2. Nella parte superiore del file aggiungere il codice seguente:

    using Azure.Identity;
    
  3. Identificare i percorsi nel codice che creano un QueueClient oggetto per connettersi alla coda di Azure Archiviazione. Aggiornare il codice in modo che corrisponda all'esempio seguente:

    DefaultAzureCredential credential = new();
    
    QueueClient queueClient = new(
         new Uri($"https://{storageAccountName}.queue.core.windows.net/{queueName}"),
         new DefaultAzureCredential());
    
  1. Assicurarsi di aggiornare il nome dell'account di archiviazione nell'URI dell'oggetto QueueClient . È possibile trovare il nome dell'account di archiviazione nella pagina di panoramica del portale di Azure.

    Screenshot showing how to find the storage account name.

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 alla coda di Azure Archiviazione 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. Altre informazioni sulle identità gestite:

Creare l'identità gestita

È possibile creare un'identità gestita assegnata dall'utente usando 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 della portale di Azure cercare Identità gestite. Selezionare il risultato identità gestite.
  2. Selezionare + Crea nella parte superiore della pagina di panoramica delle identità gestite.
  3. Nella scheda Informazioni di base immettere i valori seguenti:
    • Sottoscrizione: selezionare la sottoscrizione desiderata.
    • 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 dall'utente.

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

A screenshot showing how to create a user assigned managed identity.

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 nella 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 riquadro di spostamento a sinistra.

  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 la sottoscrizione usata in precedenza per creare l'identità.

  6. Cercare MigrationIdentity per nome e selezionarlo nei risultati della ricerca.

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

    Screenshot showing how to create a user assigned identity.

Assegnare ruoli all'identità gestita

Successivamente, è necessario concedere le autorizzazioni all'identità gestita creata per accedere all'account di archiviazione. 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'account di archiviazione e selezionare Controllo di accesso (IAM) nel riquadro di spostamento a sinistra.

  2. Scegliere Aggiungi assegnazione di ruolo

    Screenshot showing how to add a role to a managed identity.

  3. Nella casella di ricerca Ruolo cercare Archiviazione Collaboratore dati coda, 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 l'Archiviazione Collaboratore dati coda dall'elenco e scegliere Avanti.

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

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

    Screenshot showing how to select the assigned managed identity.

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

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 DefaultAzureCredentialOptions oggetto 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'account di archiviazione. Tenere presente che la propagazione delle assegnazioni di ruolo nell'ambiente di Azure potrebbe richiedere alcuni minuti. L'applicazione è ora configurata per l'esecuzione sia in locale che in un ambiente di produzione senza che gli sviluppatori dover 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: