Share via


Eseguire la migrazione di un'applicazione per usare connessioni senza password con Archiviazione BLOB 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 ruoli e utenti per l'autenticazione di sviluppo locale

Quando si sviluppa in locale, assicurarsi che l'account utente che accede ai dati BLOB disponga delle autorizzazioni corrette. È necessario Archiviazione Collaboratore ai dati BLOB per leggere e scrivere dati BLOB. 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. Per altre informazioni sugli ambiti disponibili per le assegnazioni di ruolo, vedere la pagina di panoramica dell'ambito.

In questo scenario si assegneranno le autorizzazioni all'account utente, con ambito all'account di archiviazione, per seguire il principio dei privilegi minimi. Questa procedura offre agli utenti solo le autorizzazioni minime necessarie e crea ambienti di produzione più sicuri.

L'esempio seguente assegnerà il ruolo collaboratore ai dati BLOB Archiviazione all'account utente, che fornisce sia l'accesso in lettura che in scrittura ai dati BLOB nell'account di archiviazione.

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.

  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 BLOB 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.

Accedere ed eseguire la migrazione del codice dell'app per usare connessioni senza password

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 quindi il codice per usare connessioni senza password.

  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 BlobServiceClient oggetto per connettersi a Archiviazione BLOB di Azure. Aggiornare il codice in modo che corrisponda all'esempio seguente:

    DefaultAzureCredential credential = new();
    
    BlobServiceClient blobServiceClient = new(
        new Uri($"https://{storageAccountName}.blob.core.windows.net"),
        credential);
    
  1. Assicurarsi di aggiornare il nome dell'account di archiviazione nell'URI dell'oggetto BlobServiceClient. È 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 di sviluppo locale 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 Archiviazione BLOB di Azure usando un'identità gestita.

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 BLOB, che è un ruolo comune usato per gestire le operazioni sui dati per i BLOB. È possibile assegnare qualsiasi ruolo appropriato per il caso d'uso. Selezionare l'Archiviazione Collaboratore dati BLOB nell'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: