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.

app Azure Configuration e le relative librerie client .NET, .NET Framework e Java Spring supportano l'identità gestita. Anche se non è necessario usarlo, l'identità gestita elimina la necessità di un token di accesso che contiene segreti. Il codice può accedere all'archivio 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 alle Configurazione app. Si basa sull'app Web presentata nelle guide introduttive. Prima di continuare, creare un'app ASP.NET Core con Configurazione app prima.

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

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 app Azure Servizio come esempio. Tuttavia, lo stesso concetto si applica a qualsiasi altro servizio di Azure che supporta l'identità gestita. Ad esempio, servizio Azure Kubernetes, macchina virtuale di Azure e 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, creare prima un'applicazione e quindi abilitare la funzionalità.

  1. Accedere alla risorsa servizio app s nella portale di Azure. Se non si dispone di una risorsa servizio app s 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 of how to add a managed identity in App Service.

Concedere l'accesso a Configurazione app

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

  1. Nella portale di Azure selezionare l'archivio Configurazione app creato nella guida introduttiva.

  2. Seleziona Controllo di accesso (IAM).

  3. Seleziona Aggiungi>Aggiungi assegnazione ruolo.

    Screenshot that shows the Access control (IAM) page with Add role assignment menu open.

    Se non si dispone dell'autorizzazione per assegnare i ruoli, 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 that shows the Add role assignment page with Role tab selected.

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

    Screenshot that shows the Add role assignment page with Members tab selected.

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

    Screenshot that shows the select managed identities page.

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

Usare un'identità gestita

  1. Aggiungere un riferimento al Azure.Identity pacchetto:

    dotnet add package Azure.Identity
    
  2. Trovare l'endpoint nell'archivio 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 quadre, con l'URL dell'archivio Configurazione app.

    "AppConfig": {
        "Endpoint": "<service_endpoint>"
    }
    
  4. Aprire il file Program.cs e aggiungere un riferimento agli Azure.Identity spazi dei nomi e Microsoft.Azure.Services.AppAuthentication :

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

    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 quando clientId 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 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 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 in Creare un'app ASP.NET Core con Configurazione app guida introduttiva e modificata 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 nell'argomento di avvio rapido Creare un'app Java Spring con app Azure Configurazione e modificata per usare le identità gestite, seguire le indicazioni riportate in Pubblicare l'app Web.

Oltre a 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 semplificare l'accesso a Configurazione app e migliorare la gestione delle credenziali per l'app. Per altre informazioni sull'uso di Configurazione app, passare agli esempi dell'interfaccia della riga di comando di Azure.