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 può essere assegnata all'app contenitore e ad altre risorse. Un'app contenitore può avere più identità assegnate dall'utente. L'identità esiste 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 l'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

L'uso di identità gestite nelle regole di scalabilità non è supportato. Sarà comunque necessario includere il stringa di connessione o la chiave 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. Nel riquadro di spostamento sinistro della pagina dell'app contenitore scorrere verso il basso fino al gruppo Impostazioni.

  2. Selezionare Identità.

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

Screenshot of system-assigned identities.

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. Nel riquadro di spostamento a sinistra per la pagina dell'app contenitore scorrere verso il basso fino al gruppo di Impostazioni.

  3. Selezionare Identità.

  4. Nella scheda Assegnata dall'utente selezionare Aggiungi.

  5. Cercare l'identità creata in precedenza e selezionarla. Seleziona Aggiungi.

Screenshot of user-assigned identities.

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, verranno rifiutate anche se 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 mantengono 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. Attualmente non è possibile forzare l'aggiornamento di un token.

Connessione 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. È possibile accedere all'endpoint REST dall'interno dell'app con un HTTP GET standard, che può essere implementato con un client HTTP generico in ogni linguaggio. Per .NET, JavaScript, Java e Python, la libreria client di Identità di Azure fornisce un'astrazione su questo endpoint REST. Connessione ad altri servizi di Azure è semplice come l'aggiunta di un oggetto credenziale al client specifico del servizio.

Nota

Quando si usa la libreria client di Identità di Azure, è necessario specificare 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 informazioni, vedere le rispettive intestazioni della documentazione della libreria client:

Gli esempi collegati usano DefaultAzureCredential. È utile per la maggior parte degli scenari perché 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