Informazioni sulle identità gestite per le risorse di AzureWhat is managed identities for Azure resources?

Le identità gestite per le risorse di Azure sono una funzionalità di Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Tutti i servizi di Azure che supportano le identità gestite per le risorse di Azure sono soggetti alla sequenza temporale di tali entità.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Prima di iniziare, assicurarsi di esaminare lo stato di disponibilità delle identità gestite per la risorsa e i problemi noti.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Una difficoltà comune durante la creazione di applicazioni cloud è rappresentata dalla gestione delle credenziali presenti nel codice per l'autenticazione ai servizi cloud.A common challenge when building cloud applications is how to manage the credentials in your code for authenticating to cloud services. Proteggere le credenziali è un'attività importante.Keeping the credentials secure is an important task. In teoria, le credenziali non sono mai presenti nelle workstation di sviluppo e non vengono verificate nel controllo del codice sorgente.Ideally, the credentials never appear on developer workstations and aren't checked into source control. Azure Key Vault consente di archiviare in modo sicuro le credenziali, i segreti e altre chiavi, ma è necessario autenticare il codice in Key Vault per recuperarle.Azure Key Vault provides a way to securely store credentials, secrets, and other keys, but your code has to authenticate to Key Vault to retrieve them.

La funzionalità delle identità gestite per le risorse di Azure in Azure Active Directory (Azure AD) consente di risolvere questo problema.The managed identities for Azure resources feature in Azure Active Directory (Azure AD) solves this problem. La funzionalità offre ai servizi di Azure un'identità gestita automaticamente in Azure AD.The feature provides Azure services with an automatically managed identity in Azure AD. È possibile usare l'identità per l'autenticazione a qualsiasi servizio che supporti l'autenticazione di Azure AD, incluso Key Vault, senza inserire le credenziali nel codice.You can use the identity to authenticate to any service that supports Azure AD authentication, including Key Vault, without any credentials in your code.

La funzionalità delle identità gestite per le risorse di Azure è gratuita con le sottoscrizioni di Azure AD per Azure.The managed identities for Azure resources feature is free with Azure AD for Azure subscriptions. Non sono previsti costi aggiuntivi.There's no additional cost.

Nota

Identità gestite per le risorse di Azure è il nuovo nome per il servizio precedentemente noto come identità del servizio gestita.Managed identities for Azure resources is the new name for the service formerly known as Managed Service Identity (MSI).

TerminologiaTerminology

I termini seguenti vengono usati in tutta la documentazione relativa alle identità gestite per le risorse di Azure:The following terms are used throughout the managed identities for Azure resources documentation set:

  • ID client: un identificatore univoco generato da Azure AD che viene associato a un'entità servizio e applicazione durante il provisioning iniziale.Client ID - a unique identifier generated by Azure AD that is tied to an application and service principal during its initial provisioning.
  • ID entità servizio: l'ID dell'oggetto entità servizio per l'identità gestita che viene usato per concedere l'accesso basato sul ruolo a una risorsa di Azure.Principal ID - the object ID of the service principal object for your managed identity that is used to grant role-based access to an Azure resource.
  • Servizio metadati dell'istanza di Azure: un endpoint REST accessibile a tutte le macchine virtuali IaaS create tramite Azure Resource Manager.Azure Instance Metadata Service (IMDS) - a REST endpoint accessible to all IaaS VMs created via the Azure Resource Manager. L'endpoint è disponibile a un indirizzo IP non instradabile noto (169.254.169.254) a cui è possibile accedere solo dalla macchina virtuale.The endpoint is available at a well-known non-routable IP address (169.254.169.254) that can be accessed only from within the VM.

Funzionamento delle identità gestite per le risorse di AzureHow does the managed identities for Azure resources work?

Sono disponibili due tipi di identità gestite:There are two types of managed identities:

  • Un'identità gestita assegnata dal sistema viene abilitata direttamente in un'istanza del servizio di Azure.A system-assigned managed identity is enabled directly on an Azure service instance. In caso di abilitazione dell'identità, Azure crea un'identità per l'istanza nel tenant di Azure AD considerato attendibile dalla sottoscrizione dell'istanza.When the identity is enabled, Azure creates an identity for the instance in the Azure AD tenant that's trusted by the subscription of the instance. Dopo la creazione dell'identità, viene effettuato il provisioning delle credenziali nell'istanza.After the identity is created, the credentials are provisioned onto the instance. Il ciclo di vita di un'identità assegnata dal sistema viene direttamente associato all'istanza del servizio di Azure in cui l'identità è abilitata.The lifecycle of a system-assigned identity is directly tied to the Azure service instance that it's enabled on. Se l'istanza viene eliminata, Azure pulisce automaticamente le credenziali e l'identità in Azure AD.If the instance is deleted, Azure automatically cleans up the credentials and the identity in Azure AD.
  • Un'identità gestita assegnata dall'utente viene creata come risorsa di Azure autonoma.A user-assigned managed identity is created as a standalone Azure resource. Tramite un processo di creazione, Azure crea un'identità nel tenant di Azure AD considerato attendibile dalla sottoscrizione in uso.Through a create process, Azure creates an identity in the Azure AD tenant that's trusted by the subscription in use. Dopo la creazione, l'identità può essere assegnata a una o più istanze del servizio di Azure.After the identity is created, the identity can be assigned to one or more Azure service instances. Il ciclo di vita di un'identità assegnata dall'utente viene gestito separatamente dal ciclo di vita delle istanze del servizio di Azure a cui l'identità è assegnata.The lifecycle of a user-assigned identity is managed separately from the lifecycle of the Azure service instances to which it's assigned.

Internamente, le identità gestite sono entità servizio di un tipo speciale, bloccate per essere usate solo con le risorse di Azure.Internally, managed identities are service principals of a special type, which are locked to only be used with Azure resources. Quando l'identità gestita viene eliminata, l'entità servizio corrispondente viene automaticamente rimossa.When the managed identity is deleted, the corresponding service principal is automatically removed.

Il codice può usare un'identità gestita per richiedere token di accesso per i servizi che supportano l'autenticazione di Azure AD.Your code can use a managed identity to request access tokens for services that support Azure AD authentication. Azure gestisce le credenziali usate dall'istanza del servizio in sequenza.Azure takes care of rolling the credentials that are used by the service instance.

Il diagramma seguente illustra il funzionamento delle identità del servizio gestite con macchine virtuali di Azure:The following diagram shows how managed service identities work with Azure virtual machines (VMs):

Identità del servizio gestite e macchine virtuali di Azure

ProprietàProperty Identità gestita assegnata dal sistemaSystem-assigned managed identity Identità gestita assegnata dall'utenteUser-assigned managed identity
CreazioneCreation Creata come parte di una risorsa di Azure (ad esempio, una macchina virtuale di Azure o servizio App di Azure)Created as part of an Azure resource (for example, an Azure virtual machine or Azure App Service) Creata come risorsa di Azure autonomaCreated as a stand-alone Azure resource
Ciclo di vitaLifecycle Ciclo di vita condiviso con la risorsa di Azure con cui viene creata l'identità gestita.Shared lifecycle with the Azure resource that the managed identity is created with.
Quando viene eliminata la risorsa padre, viene eliminata anche l'identità gestita.When the parent resource is deleted, the managed identity is deleted as well.
Ciclo di vita indipendente.Independent life-cycle.
Dev'essere eliminato in modo esplicito.Must be explicitly deleted.
Condivisione tra risorse di AzureSharing across Azure resources Non può essere condivisa.Cannot be shared.
Può essere associata solo a una singola risorsa di Azure.It can only be associated with a single Azure resource.
Può essere condivisaCan be shared
La stessa identità gestita assegnata dall'utente può essere associata a più risorse di Azure.The same user-assigned managed identity can be associated with more than one Azure resource.
Casi d'uso comuniCommon use cases Carichi di lavoro che sono contenuti all'interno di una singola risorsa di AzureWorkloads that are contained within a single Azure resource
Carichi di lavoro per cui sono necessarie identità indipendenti.Workloads for which you need independent identities.
Ad esempio, un'applicazione che viene eseguita in una singola macchina virtualeFor example, an application that runs on a single virtual machine
Carichi di lavoro che vengono eseguiti in più risorse e che possono condividere una singola identità.Workloads that run on multiple resources and which can share a single identity.
Carichi di lavoro che richiedono l'autorizzazione preliminare per una risorsa protetta come parte di un flusso di provisioning.Workloads that need pre-authorization to a secure resource as part of a provisioning flow.
Carichi di lavoro in cui le risorse vengono riciclate frequentemente, ma le autorizzazioni devono rimanere coerenti.Workloads where resources are recycled frequently, but permissions should stay consistent.
Ad esempio, un carico di lavoro in cui più macchine virtuali devono accedere alla stessa risorsaFor example, a workload where multiple virtual machines need to access the same resource

Funzionamento di un'identità gestita assegnata dal sistema con una macchina virtuale di AzureHow a system-assigned managed identity works with an Azure VM

  1. Azure Resource Manager riceve una richiesta per abilitare l'identità gestita assegnata dal sistema in una macchina virtuale.Azure Resource Manager receives a request to enable the system-assigned managed identity on a VM.

  2. Azure Resource Manager crea un'entità servizio in Azure AD per l'identità della macchina virtuale.Azure Resource Manager creates a service principal in Azure AD for the identity of the VM. L'entità servizio viene creata nel tenant di Azure AD considerata attendibile dalla sottoscrizione.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager configura l'identità nella macchina virtuale aggiornando l'endpoint dell'identità del servizio metadati dell'istanza di Azure con l'ID client e il certificato dell'entità servizio.Azure Resource Manager configures the identity on the VM by updating the Azure Instance Metadata Service identity endpoint with the service principal client ID and certificate.

  4. Quando la VM ha un'identità, è possibile usare le informazioni dell'entità servizio per concedere alla VM l'accesso alle risorse di Azure.After the VM has an identity, use the service principal information to grant the VM access to Azure resources. Per chiamare Azure Resource Manager, usare il controllo degli accessi in base al ruolo in Azure AD per assegnare il ruolo appropriato all'entità servizio della VM.To call Azure Resource Manager, use role-based access control (RBAC) in Azure AD to assign the appropriate role to the VM service principal. Per chiamare Key Vault, concedere al codice l'accesso a un segreto specifico o a una chiave specifica in Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

  5. Il codice in esecuzione nella macchina virtuale può richiedere un token all'endpoint servizio metadati dell'istanza di Azure, accessibile solo dall'interno della macchina virtuale: http://169.254.169.254/metadata/identity/oauth2/tokenYour code that's running on the VM can request a token from the Azure Instance Metadata service endpoint, accessible only from within the VM: http://169.254.169.254/metadata/identity/oauth2/token

    • Il parametro della risorsa specifica il servizio a cui viene inviato il token.The resource parameter specifies the service to which the token is sent. Per l'autenticazione in Azure Resource Manager, usare resource=https://management.azure.com/.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • Il parametro della versione API specifica la versione del servizio metadati dell'istanza. Usare api-version=2018-02-01 o una versione successiva.API version parameter specifies the IMDS version, use api-version=2018-02-01 or greater.
  6. Viene effettuata una chiamata ad Azure AD per richiedere un token di accesso come specificato nel Passaggio 5, usando l'ID client e il certificato di cui è stata eseguita la configurazione nel Passaggio 3.A call is made to Azure AD to request an access token (as specified in step 5) by using the client ID and certificate configured in step 3. Azure AD restituisce un token di accesso JSON Web.Azure AD returns a JSON Web Token (JWT) access token.

  7. Il codice invia il token di accesso in una chiamata a un servizio che supporta l'autenticazione di Azure AD.Your code sends the access token on a call to a service that supports Azure AD authentication.

Funzionamento di un'identità gestita assegnata dall'utente con una macchina virtuale di AzureHow a user-assigned managed identity works with an Azure VM

  1. Azure Resource Manager riceve una richiesta per creare un'identità gestita assegnata dall'utente.Azure Resource Manager receives a request to create a user-assigned managed identity.

  2. Azure Resource Manager crea un'entità servizio in Azure AD per l'identità gestita assegnata dall'utente.Azure Resource Manager creates a service principal in Azure AD for the user-assigned managed identity. L'entità servizio viene creata nel tenant di Azure AD considerata attendibile dalla sottoscrizione.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager riceve una richiesta di configurazione dell'identità gestita assegnata dall'utente in una macchina virtuale e aggiorna l'endpoint dell'identità del servizio metadati dell'istanza di Azure con l'ID client e il certificato dell'entità servizio dell'identità gestita assegnata dall'utente.Azure Resource Manager receives a request to configure the user-assigned managed identity on a VM and updates the Azure Instance Metadata Service identity endpoint with the user-assigned managed identity service principal client ID and certificate.

  4. Dopo la creazione dell'identità gestita assegnata dall'utente, usare le informazioni dell'entità servizio per concedere all'identità l'accesso alle risorse di Azure.After the user-assigned managed identity is created, use the service principal information to grant the identity access to Azure resources. Per chiamare Azure Resource Manager, usare il controllo degli accessi in base al ruolo in Azure AD per assegnare il ruolo appropriato all'entità servizio dell'identità assegnata dall'utente.To call Azure Resource Manager, use RBAC in Azure AD to assign the appropriate role to the service principal of the user-assigned identity. Per chiamare Key Vault, concedere al codice l'accesso a un segreto specifico o a una chiave specifica in Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

    Nota

    È possibile eseguire questo passaggio anche prima del Passaggio 3.You can also do this step before step 3.

  5. Il codice in esecuzione nella macchina virtuale può richiedere un token all'endpoint dell'identità del servizio metadati dell'istanza di Azure, accessibile solo dall'interno della macchina virtuale: http://169.254.169.254/metadata/identity/oauth2/tokenYour code that's running on the VM can request a token from the Azure Instance Metadata Service identity endpoint, accessible only from within the VM: http://169.254.169.254/metadata/identity/oauth2/token

    • Il parametro della risorsa specifica il servizio a cui viene inviato il token.The resource parameter specifies the service to which the token is sent. Per l'autenticazione in Azure Resource Manager, usare resource=https://management.azure.com/.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • Il parametro dell'ID client specifica l'identità per cui viene richiesto il token.The client ID parameter specifies the identity for which the token is requested. Questo valore è necessario per evitare ambiguità quando in una singola macchina virtuale sono presenti più identità assegnate dall'utente.This value is required for disambiguation when more than one user-assigned identity is on a single VM.
    • Il parametro relativo alla versione dell'API specifica la versione del servizio metadati dell'istanza di Azure.The API version parameter specifies the Azure Instance Metadata Service version. Usare api-version=2018-02-01 o versione successiva.Use api-version=2018-02-01 or higher.
  6. Viene effettuata una chiamata ad Azure AD per richiedere un token di accesso come specificato nel Passaggio 5, usando l'ID client e il certificato di cui è stata eseguita la configurazione nel Passaggio 3.A call is made to Azure AD to request an access token (as specified in step 5) by using the client ID and certificate configured in step 3. Azure AD restituisce un token di accesso JSON Web.Azure AD returns a JSON Web Token (JWT) access token.

  7. Il codice invia il token di accesso in una chiamata a un servizio che supporta l'autenticazione di Azure AD.Your code sends the access token on a call to a service that supports Azure AD authentication.

Come usare le identità gestite per le risorse di AzureHow can I use managed identities for Azure resources?

Per informazioni sull'uso delle identità gestite per l'accesso a diverse risorse di Azure, vedere queste esercitazioni.To learn how to use managed identities to access different Azure resources, try these tutorials.

Nota

Per altre informazioni sulle identità gestite, tra cui video con procedure dettagliate per diversi scenari supportati, vedere il corso Implementing Managed Identities for Microsoft Azure Resources (Implementazione delle identità gestite per le risorse di Microsoft Azure).Check out the Implementing Managed Identities for Microsoft Azure Resources course for more information about managed identities, including detailed video walkthroughs of several supported scenarios.

Informazioni sull'uso di un'identità gestita con una VM Windows:Learn how to use a managed identity with a Windows VM:

Informazioni sull'uso di un'identità gestita con una VM Linux:Learn how to use a managed identity with a Linux VM:

Informazioni sull'uso di un'identità gestita con altri servizi di Azure:Learn how to use a managed identity with other Azure services:

Servizi di Azure che supportano questa funzionalitàWhat Azure services support the feature?

Le identità gestite per le risorse di Azure possono essere usate per eseguire l'autenticazione ai servizi che supportano l'autenticazione di Azure AD.Managed identities for Azure resources can be used to authenticate to services that support Azure AD authentication. Per un elenco dei servizi di Azure che supportano la funzionalità delle identità gestite per le risorse di Azure, vedere Servizi che supportano le identità gestite per le risorse di Azure.For a list of Azure services that support the managed identities for Azure resources feature, see Services that support managed identities for Azure resources.

Passaggi successiviNext steps

È possibile iniziare a usare la funzionalità delle identità gestite per le risorse di Azure con le guide introduttive seguenti:Get started with the managed identities for Azure resources feature with the following quickstarts: