Condividi tramite


Identità gestite nelle app di Azure Container

Un'identità gestita da Microsoft Entra ID consente all'app contenitore di accedere ad altre risorse protette di Microsoft Entra. Per altre informazioni sulle identità gestite in Microsoft Entra ID, vedere Identità gestite per le risorse di Azure.

All'app contenitore possono essere concessi due tipi di identità:

  • Un'identità assegnata dal sistema è associata all'app contenitore e viene eliminata quando l'app contenitore viene eliminata. A un'app può essere associata una sola identità assegnata dal sistema.
  • Un'identità assegnata dall'utente è una risorsa di Azure autonoma che è possibile assegnare all'app contenitore e ad altre risorse. Un'app contenitore può avere più identità assegnate dall'utente. Le identità assegnate dall'utente esistono fino a quando non vengono eliminate.

Perché usare un'identità gestita?

È possibile usare un'identità gestita in un'app contenitore in esecuzione per eseguire l'autenticazione a qualsiasi servizio che supporti l'autenticazione di Microsoft Entra.

Con le identità gestite:

  • L'app si connette alle risorse con l'identità gestita. Non è necessario gestire le credenziali nell'app contenitore.
  • È possibile usare il controllo degli accessi in base al ruolo per concedere autorizzazioni specifiche a un'identità gestita.
  • Le identità assegnate dal sistema vengono create e gestite automaticamente. Vengono eliminati quando l'app contenitore viene eliminata.
  • È possibile aggiungere ed eliminare identità assegnate dall'utente e assegnarle a più risorse. Sono indipendenti dal ciclo di vita dell'app contenitore.
  • È possibile usare l'identità gestita per eseguire l'autenticazione con un Registro Azure Container privato senza nome utente e password per eseguire il pull dei contenitori per l'app contenitore.
  • È possibile usare un'identità gestita per creare connessioni per le applicazioni abilitate per Dapr tramite i componenti dapr

Casi d'uso comuni

Le identità assegnate dal sistema sono ideali per i carichi di lavoro che:

  • sono contenuti all'interno di una singola risorsa
  • necessitano di identità indipendenti

Le identità assegnate dall'utente sono ideali per i carichi di lavoro che:

  • eseguire su più risorse e condividere una singola identità
  • è necessaria la pre-autorizzazione per una risorsa sicura

Limiti

  • Le identità gestite nelle regole di scalabilità non sono supportate. È necessario includere stringa di connessione o chiavi nella secretRef regola di ridimensionamento.
  • I contenitori Init non possono accedere alle identità gestite.

Configurare le identità gestite

È possibile configurare le identità gestite tramite:

  • Portale di Azure
  • l'interfaccia della riga di comando di Azure
  • modello di Azure Resource Manager (ARM)

Quando viene aggiunta, eliminata o modificata un'identità gestita in un'app contenitore in esecuzione, l'app non viene riavviata automaticamente e non viene creata una nuova revisione.

Nota

Quando si aggiunge un'identità gestita a un'app contenitore distribuita prima del 11 aprile 2022, è necessario creare una nuova revisione.

Aggiungere un'identità assegnata dal sistema

  1. Passare all'app contenitore nel portale di Azure.

  2. Nel gruppo Impostazioni selezionare Identità.

  3. All'interno della scheda Assegnata dal sistema impostare Stato su Attivato.

  4. Seleziona Salva.

Screenshot delle identità assegnate dal sistema.

Aggiungere un'identità assegnata dall'utente

La configurazione di un'app contenitore con un'identità assegnata dall'utente richiede prima di tutto di creare l'identità e quindi aggiungerne l'identificatore alla configurazione dell'app contenitore. È possibile creare identità assegnate dall'utente tramite il portale di Azure o l'interfaccia della riga di comando di Azure. Per informazioni sulla creazione e la gestione delle identità assegnate dall'utente, vedere Gestire le identità gestite assegnate dall'utente.

Sarà prima di tutto necessario creare una risorsa identità assegnata dall'utente.

  1. Creare una risorsa di identità gestita assegnata dall'utente in base alla procedura descritta in Gestire le identità gestite assegnate dall'utente.

  2. Passare all'app contenitore nel portale di Azure.

  3. Nel gruppo Impostazioni selezionare Identità.

  4. Nella scheda Assegnata dall'utente selezionare Aggiungi.

  5. Cercare e selezionare l'identità creata in precedenza.

  6. Selezionare Aggiungi.

Screenshot delle identità assegnate dall'utente.

Configurare una risorsa di destinazione

Per alcune risorse, è necessario configurare le assegnazioni di ruolo per l'identità gestita dell'app per concedere l'accesso. In caso contrario, le chiamate dall'app ai servizi, ad esempio Azure Key Vault e database SQL di Azure, vengono rifiutate anche quando si usa un token valido per tale identità. Per altre informazioni sul controllo degli accessi in base al ruolo di Azure, vedere Informazioni sul controllo degli accessi in base al ruolo. Per altre informazioni sulle risorse che supportano i token Microsoft Entra, vedere Servizi di Azure che supportano l'autenticazione di Microsoft Entra.

Importante

I servizi back-end per le identità gestite conservano una cache per ogni URI di risorsa per circa 24 ore. Se si aggiornano i criteri di accesso di una determinata risorsa di destinazione e si recupera immediatamente un token per tale risorsa, è possibile ottenere un token memorizzato nella cache con autorizzazioni obsolete fino alla scadenza del token. L'uso forzato di un aggiornamento del token non è supportato.

Connettersi ai servizi di Azure nel codice dell'app

Con le identità gestite, un'app può ottenere token per accedere alle risorse di Azure che usano l'ID Microsoft Entra, ad esempio database SQL di Azure, Azure Key Vault e Archiviazione di Azure. Questi token rappresentano le applicazioni che accedono alla risorsa e non un utente specifico dell'applicazione.

App contenitore fornisce un endpoint REST accessibile internamente per recuperare i token. L'endpoint REST è disponibile dall'interno dell'app con una richiesta HTTP GET standard, che è possibile inviare con un client HTTP generico nella lingua preferita. Per .NET, JavaScript, Java e Python, la libreria client di Identità di Azure fornisce un'astrazione su questo endpoint REST. È possibile connettersi ad altri servizi di Azure aggiungendo un oggetto credenziale al client specifico del servizio.

Nota

Quando si usa la libreria client di Identità di Azure, è necessario specificare in modo esplicito l'ID client dell'identità gestita assegnata dall'utente.

Nota

Quando ci si connette alle origini dati SQL di Azure con Entity Framework Core, è consigliabile usare Microsoft.Data.SqlClient, che fornisce stringa di connessione speciali per la connettività delle identità gestite.

Per le app .NET, il modo più semplice per usare un'identità gestita consiste nell'usare la libreria client di Identità di Azure per .NET. Per altre informazioni, vedere le risorse seguenti:

Gli esempi collegati usano DefaultAzureCredential. Questo oggetto è efficace nella maggior parte degli scenari come lo stesso modello funziona in Azure (con identità gestite) e nel computer locale (senza identità gestite).

Visualizzare le identità gestite

È possibile visualizzare le identità gestite assegnate dal sistema e assegnate dall'utente usando il comando dell'interfaccia della riga di comando di Azure seguente. L'output mostra il tipo di identità gestita, gli ID tenant e gli ID entità di tutte le identità gestite assegnate all'app contenitore.

az containerapp identity show --name <APP_NAME> --resource-group <GROUP_NAME>

Rimuovere un'identità gestita

Quando si rimuove un'identità assegnata dal sistema, viene eliminata dall'ID Microsoft Entra. Anche le identità assegnate dal sistema vengono rimosse automaticamente dall'ID Microsoft Entra quando si elimina la risorsa dell'app contenitore stessa. La rimozione delle identità gestite assegnate dall'utente dall'app contenitore non le rimuove dall'ID Microsoft Entra.

  1. Nel riquadro di spostamento sinistro della pagina dell'app scorrere verso il basso fino al gruppo Impostazioni .

  2. Selezionare Identità. Seguire quindi i passaggi in base al tipo di identità:

    • Identità assegnata dal sistema: nella scheda Assegnata dal sistema impostare Stato su Disattivato. Seleziona Salva.
    • Identità assegnata dall'utente: selezionare la scheda Assegnata dall'utente, selezionare la casella di controllo per l'identità e selezionare Rimuovi. Seleziona per confermare.

Passaggi successivi