Condividi tramite


Usare le identità gestite per accedere a Configurazione app

Le identità gestite di Microsoft Entra semplificano la gestione dei segreti per l'applicazione cloud. Con un'identità gestita, il codice può usare l'entità servizio creata per il servizio di Azure in cui viene eseguita. È possibile usare un'identità gestita invece di usare credenziali distinte archiviate in Azure Key Vault o una stringa di connessione locale.

Configurazione app di Azure e le relative librerie client .NET, .NET Framework e Java Spring supportano le identità gestite integrate. Benché il suo utilizzo non sia obbligatorio, l'identità gestita elimina la necessità di un token di accesso che contiene i segreti. Il codice può accedere all'archivio di Configurazione app usando solo l'endpoint di servizio. È possibile incorporare questo URL direttamente nel codice senza esporre alcun segreto.

Questo articolo illustra come sfruttare l'identità gestita per accedere a Configurazione app. Si basa sull'app Web presentata nelle guide introduttive. Prima di continuare, Creare un'app ASP.NET Core con Configurazione app.

Questo articolo illustra come sfruttare l'identità gestita per accedere a Configurazione app. Si basa sull'app Web presentata nelle guide introduttive. Prima di continuare, Creare un'app Java Spring con Configurazione app di Azure.

Importante

L'identità gestita non può essere usata per autenticare le applicazioni in esecuzione in locale. L'applicazione deve essere distribuita in un servizio di Azure che supporta l'identità gestita. Questo articolo usa servizio app di Azure come esempio. Tuttavia, lo stesso concetto si applica a qualsiasi altro servizio di Azure che supporta l'identità gestita. Ad esempio, il servizio Azure Kubernetes, la macchina virtuale di Azure e le Istanze di Azure Container. Se il carico di lavoro è ospitato in uno di questi servizi, è anche possibile sfruttare il supporto dell'identità gestita del servizio.

Per completare i passaggi riportati in questa esercitazione, è possibile usare qualsiasi editor di codice. Visual Studio Code è un'ottima scelta per le piattaforme Windows, macOS e Linux.

In questo articolo vengono illustrate le operazioni seguenti:

  • Concedere a un'identità gestita l'accesso a Configurazione app.
  • Configurare l'app in modo da usare un'identità gestita per connettersi a Configurazione app.

Prerequisiti

Per completare l'esercitazione, sono necessari:

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Aggiungere un'identità gestita

Per configurare un'identità gestita nel portale, è prima necessario creare un'applicazione e quindi abilitare la funzionalità.

  1. Accedere alla risorsa Servizi app nel portale di Azure. Se non si ha una risorsa di Servizi app esistente da usare, crearne una.

  2. Scorrere verso il basso fino al gruppo Impostazioni nel riquadro a sinistra e selezionare Identità.

  3. Nella scheda Assegnata dal sistema impostare Stato su Attivato e selezionare Salva.

  4. Quando richiesto, rispondere per attivare l'identità gestita assegnata dal sistema.

    Screenshot di come aggiungere un'identità gestita nel servizio app.

Concedere l'accesso a Configurazione app

I passaggi seguenti descrivono come assegnare il ruolo Lettore dati di Configurazione app al servizio app. Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando il portale di Azure.

  1. Nel portale di Azure selezionare l'archivio di Configurazione app.

  2. Seleziona Controllo di accesso (IAM).

  3. Seleziona Aggiungi>Aggiungi assegnazione ruolo.

    Screenshot che mostra la pagina Controllo di accesso (IAM) con il menu Aggiungi assegnazione di ruolo aperto.

    Se non si dispone dell'autorizzazione per assegnare ruoli, allora l'opzione Aggiungi assegnazione di ruolo verrà disabilitata. Per altre informazioni, vedere Ruoli predefiniti di Azure.

  4. Nella scheda Ruolo, selezionare il ruolo Lettore dati Configurazione app e quindi selezionare Avanti.

    Screenshot che mostra la pagina Aggiungi un'assegnazione di ruolo con la scheda Ruolo selezionata.

  5. Nella scheda Membri, selezionare Identità gestita e quindi Seleziona membri.

    Screenshot che mostra la pagina Aggiungi un'assegnazione di ruolo con la scheda Membri selezionata.

  6. Selezionare la sottoscrizione di Azure per Identità gestita selezionare Servizio app e quindi selezionare il nome del servizio app.

    Screenshot che mostra la pagina Seleziona identità gestite.

  7. Nella scheda Rivedi e assegna selezionare Rivedi e assegna per assegnare il ruolo.

Usare un'identità gestita

  1. Aggiungere un riferimento al pacchetto Azure.Identity:

    dotnet add package Azure.Identity
    
  2. Trovare l'endpoint nell'archivio di Configurazione app. Questo URL è elencato nella scheda Chiavi di accesso per l'archivio nel portale di Azure.

  3. Aprire il file appsettings.json e aggiungere lo script seguente. Sostituire <service_endpoint> (incluse le parentesi acute) con l'URL dell'archivio di Configurazione app.

    "AppConfig": {
        "Endpoint": "<service_endpoint>"
    }
    
  4. Aprire il file Program.cs e aggiungere un riferimento allo spazio dei nomi Azure.Identity:

    using Azure.Identity;
    
  5. Per accedere ai valori archiviati in Configurazione app, aggiornare la configurazione Builder per usare il metodo AddAzureAppConfiguration().

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Configuration.AddAzureAppConfiguration(options =>
        options.Connect(
            new Uri(builder.Configuration["AppConfig:Endpoint"]),
            new ManagedIdentityCredential()));
    

    Nota

    Se si vuole usare un'identità gestita assegnata dall'utente, assicurarsi di specificare clientId quando si crea ManagedIdentityCredential.

    new ManagedIdentityCredential("<your_clientId>")
    

    Come illustrato nelle domande frequenti sulle identità gestite per le risorse di Azure, esiste un modo predefinito per risolvere l'identità gestita usata. In questo caso, la libreria di identità di Azure impone di specificare l'identità desiderata per evitare possibili problemi di runtime in futuro. Ad esempio, se viene aggiunta una nuova identità gestita assegnata dall'utente o se l'identità gestita assegnata dal sistema è abilitata. Sarà quindi necessario specificare anche clientId se viene definita una sola identità gestita assegnata dall'utente e non esiste alcuna identità gestita assegnata dal sistema.

  1. Trovare l'endpoint nell'archivio di Configurazione app. Questo URL è elencato nella scheda Panoramica per l'archivio nel portale di Azure.

  2. Aprire bootstrap.properties, rimuovere la proprietà della stringa di connessione e sostituirla con l'endpoint per Identità assegnata dal sistema:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>

Per l'identità assegnata dall'utente:

spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
spring.cloud.azure.credential.managed-identity-enabled= true
spring.cloud.azure.credential.client-id= <client_id>

Nota

Per altre informazioni, vedere Autenticazione di Spring Cloud in Azure.

Distribuire l'applicazione

È necessario distribuire l'app in un servizio di Azure quando si usano le identità gestite. Le identità gestite non possono essere usate per l'autenticazione delle app in esecuzione in locale. Per distribuire l'app .NET Core creata nella guida introduttiva Creare un'app ASP.NET Core con Configurazione app e modificare per usare le identità gestite, seguire le indicazioni riportate in Pubblicare l'app Web.

L'uso delle identità gestite richiede la distribuzione dell'app in un servizio di Azure. Le identità gestite non possono essere usate per l'autenticazione delle app in esecuzione in locale. Per distribuire l'app Spring creata nella guida introduttiva Creare un'app Java Spring con Configurazione app di Azure e modificare per usare le identità gestite, seguire le indicazioni riportate in Pubblicare l'app Web.

Oltre al servizio app, molti altri servizi di Azure supportano le identità gestite. Per altre informazioni, vedere Servizi che supportano le identità gestite per le risorse di Azure.

Pulire le risorse

Se non si vuole continuare a usare le risorse create in questo articolo, eliminare il gruppo di risorse creato qui per evitare addebiti.

Importante

L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse o le risorse sbagliate. Se le risorse per questo articolo sono state create in un gruppo di risorse che contiene altre risorse che si vogliono mantenere, eliminare ogni risorsa singolarmente dal rispettivo riquadro anziché eliminare il gruppo di risorse.

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.
  2. Nella casella Filtra per nome immettere il nome del gruppo di risorse.
  3. Nell'elenco dei risultati selezionare il nome del gruppo di risorse per visualizzare una panoramica.
  4. Selezionare Elimina gruppo di risorse.
  5. Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Immettere il nome del gruppo di risorse per confermare e selezionare Elimina.

Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.

Passaggi successivi

In questa esercitazione è stata aggiunta un'identità gestita di Azure per facilitare l'accesso a Configurazione app e migliorare la gestione delle credenziali dell'app. Per altre informazioni sull'uso di Configurazione app, passare agli esempi dell'interfaccia della riga di comando di Azure.