Que sont les identités gérées pour les ressources Azure ?What is managed identities for Azure resources?

Identités managées pour ressources Azure est une fonctionnalité d’Azure Active Directory.Managed identities for Azure resources is a feature of Azure Active Directory. Les services Azure prenant en charge les identités managées pour ressources Azure sont soumis à leur propre chronologie.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Assurez-vous de passer en revue l’état Disponibilité des identités gérées pour votre ressource et les problèmes connus avant de commencer.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

La gestion des informations d’identification dans votre code pour s’authentifier auprès des services cloud constitue un défi courant lors de la génération d’applications cloud.A common challenge when building cloud applications is how to manage the credentials in your code for authenticating to cloud services. La sécurisation de ces informations d’identification est une tâche importante.Keeping the credentials secure is an important task. Dans l’idéal, elles ne s’affichent jamais sur les stations de travail de développement et ne sont jamais archivées dans le contrôle de code source.Ideally, the credentials never appear on developer workstations and aren't checked into source control. Azure Key Vault permet de stocker en toute sécurité des informations d’identification, secrets, et autres clés, mais votre code doit s’authentifier sur Key Vault pour les récupérer.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 fonctionnalité des identités managées pour les ressources Azure dans Azure Active Directory (Azure AD) résout ce problème.The managed identities for Azure resources feature in Azure Active Directory (Azure AD) solves this problem. Elle fournit aux services Azure une identité système administrée automatiquement dans Azure AD.The feature provides Azure services with an automatically managed identity in Azure AD. Vous pouvez utiliser cette identité pour vous authentifier sur n’importe quel service prenant en charge l’authentification Azure AD, y compris Key Vault, sans avoir d’informations d’identification dans votre code.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 fonctionnalité des identités managées pour les ressources Azure est gratuite avec Azure AD pour les abonnements Azure.The managed identities for Azure resources feature is free with Azure AD for Azure subscriptions. Aucun coût supplémentaire n’est facturé.There's no additional cost.

Notes

Identités managées pour les ressources Azure est le nouveau nom du service anciennement nommé Managed Service Identity (MSI).Managed identities for Azure resources is the new name for the service formerly known as Managed Service Identity (MSI).

TerminologieTerminology

Les termes suivants sont utilisés dans l'ensemble de la documentation sur les identités gérées pour les ressources Azure :The following terms are used throughout the managed identities for Azure resources documentation set:

  • ID client : identificateur unique généré par Azure AD qui est lié à une application et à un principal de service lors de son provisionnement initial.Client ID - a unique identifier generated by Azure AD that is tied to an application and service principal during its initial provisioning.
  • ID du principal : ID d’objet du principal de service pour votre identité managée ; il est utilisé pour accorder un accès basé sur les rôles à une ressource 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.
  • Instance Metadata Service (IMDS) Azure : point de terminaison REST accessible à toutes les machines virtuelles IaaS créées par le biais d’Azure Resource Manager.Azure Instance Metadata Service (IMDS) - a REST endpoint accessible to all IaaS VMs created via the Azure Resource Manager. Le point de terminaison est disponible sur une adresse IP non routable bien connue (169.254.169.254) accessible uniquement à partir de la machine virtuelle.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.

Comment fonctionnent les identités managées pour les ressources Azure ?How does the managed identities for Azure resources work?

Il existe deux types d’identités administrées :There are two types of managed identities:

  • Une identité managée attribué par le système est activée directement sur une instance de service Azure.A system-assigned managed identity is enabled directly on an Azure service instance. Lorsque l’identité est activée, Azure crée une identité pour l’instance dans le locataire Azure AD approuvé par l’abonnement de l’instance.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. Une fois l’identité créée, ses informations d’identification sont provisionnées sur l’instance.After the identity is created, the credentials are provisioned onto the instance. Le cycle de vie d’une identité attribuée par le système est directement lié à l’instance de service Azure sur laquelle elle est activée.The lifecycle of a system-assigned identity is directly tied to the Azure service instance that it's enabled on. Si l’instance est supprimée, Azure efface automatiquement les informations d’identification et l’identité dans Azure AD.If the instance is deleted, Azure automatically cleans up the credentials and the identity in Azure AD.
  • Une identité managée attribuée par l’utilisateur est créée en tant que ressource Azure autonome.A user-assigned managed identity is created as a standalone Azure resource. Via un processus de création, Azure crée une identité dans le locataire Azure AD approuvé par l’abonnement en cours d’utilisation.Through a create process, Azure creates an identity in the Azure AD tenant that's trusted by the subscription in use. Une fois l’identité créée, elle peut être affectée à une ou plusieurs instances de service Azure.After the identity is created, the identity can be assigned to one or more Azure service instances. Le cycle de vie d’une identité attribuée par l’utilisateur est géré séparément du cycle de vie des instances de service Azure auxquelles elle est affectée.The lifecycle of a user-assigned identity is managed separately from the lifecycle of the Azure service instances to which it's assigned.

En interne, des identités managées sont des principaux de service d’un type spécial, qui sont verrouillés pour être utilisés uniquement avec les ressources Azure.Internally, managed identities are service principals of a special type, which are locked to only be used with Azure resources. Lorsqu’une identité managée est supprimée, le principal de service correspondant est automatiquement supprimé.When the managed identity is deleted, the corresponding service principal is automatically removed.

Votre code peut utiliser une identité managée pour faire une demande de jetons d’accès pour les services qui prennent en charge l’authentification Azure AD.Your code can use a managed identity to request access tokens for services that support Azure AD authentication. Azure prend en charge la restauration des informations d’identification utilisées par l’instance de service.Azure takes care of rolling the credentials that are used by the service instance.

Le diagramme suivant illustre le fonctionnement des identités de service administré avec les machines virtuelles (VM) Azure :The following diagram shows how managed service identities work with Azure virtual machines (VMs):

Identités de service administré et machines virtuelles Azure

PropriétéProperty Identité managée affectée par le systèmeSystem-assigned managed identity Identité managée affectée par l’utilisateurUser-assigned managed identity
CréationCreation Créé dans le cadre d’une ressource Azure (par exemple, une machine virtuelle Azure ou Azure App Service)Created as part of an Azure resource (for example, an Azure virtual machine or Azure App Service) Créé en tant que ressource Azure autonomeCreated as a stand-alone Azure resource
Cycle de vieLifecycle Cycle de vie partagé entre la ressource Azure et l’identité managée avec laquelle elle est créée.Shared lifecycle with the Azure resource that the managed identity is created with.
Lorsque la ressource parente est supprimée, l’identité managée l’est également.When the parent resource is deleted, the managed identity is deleted as well.
Cycle de vie indépendant.Independent life-cycle.
Doit être explicitement supprimé.Must be explicitly deleted.
Partage entre ressources AzureSharing across Azure resources Ne peut pas être partagé.Cannot be shared.
Ne peut être associé qu’à une seule ressource Azure.It can only be associated with a single Azure resource.
Peut être partagéCan be shared
Une même identité managée affectée par l’utilisateur peut être associée à plusieurs ressources Azure.The same user-assigned managed identity can be associated with more than one Azure resource.
Cas d’utilisation courantsCommon use cases Charges de travail contenues dans une même ressource AzureWorkloads that are contained within a single Azure resource
Charges de travail pour lesquelles vous avez besoin d’identités indépendantes.Workloads for which you need independent identities.
Par exemple, une application qui s’exécute sur une seule machine virtuelleFor example, an application that runs on a single virtual machine
Charges de travail qui s’exécutent sur plusieurs ressources et qui peuvent partager une même identité.Workloads that run on multiple resources and which can share a single identity.
Charges de travail qui ont besoin d’une autorisation préalable pour accéder à une ressource sécurisée dans le cadre d’un flux de provisionnement.Workloads that need pre-authorization to a secure resource as part of a provisioning flow.
Charges de travail dont les ressources sont recyclées fréquemment, mais pour lesquelles les autorisations doivent rester les mêmes.Workloads where resources are recycled frequently, but permissions should stay consistent.
Par exemple, une charge de travail où plusieurs machines virtuelles doivent accéder à la même ressourceFor example, a workload where multiple virtual machines need to access the same resource

Fonctionnement d’une identité managée attribuée par le système avec une machine virtuelle AzureHow a system-assigned managed identity works with an Azure VM

  1. Azure Resource Manager reçoit une requête pour activer l’identité managée attribuée par le système sur une machine virtuelle.Azure Resource Manager receives a request to enable the system-assigned managed identity on a VM.
  2. Azure Resource Manager crée un principal de service dans Azure AD pour représenter l’identité de la machine virtuelle.Azure Resource Manager creates a service principal in Azure AD for the identity of the VM. Le principal de service est créé dans le locataire Azure AD approuvé par cet abonnement.The service principal is created in the Azure AD tenant that's trusted by the subscription.
  3. Azure Resource Manager configure l’identité sur la machine virtuelle :Azure Resource Manager configures the identity on the VM:
    1. Met à jour le point de terminaison d’identité Azure Instance Metadata Service avec l’ID client et le certificat du Principal de service.Updates the Azure Instance Metadata Service identity endpoint with the service principal client ID and certificate.
    2. Provisionne l’extension de machine virtuelle (dont l’abandon est prévu en janvier 2019), et ajoute l’ID client et le certificat du principal de service.Provisions the VM extension (planned for deprecation in January 2019), and adds the service principal client ID and certificate. (Cette étape sera bientôt abandonnée).(This step is planned for deprecation.)
  4. Maintenant que la machine virtuelle possède une identité, utilisez les informations du Principal de service pour accorder aux ressources Azure l’accès à la machine virtuelle.After the VM has an identity, use the service principal information to grant the VM access to Azure resources. Pour appeler Azure Resource Manager, utilisez le contrôle d’accès en fonction du rôle (RBAC) dans Azure AD pour attribuer le rôle approprié au principal de service de la machine virtuelle.To call Azure Resource Manager, use role-based access control (RBAC) in Azure AD to assign the appropriate role to the VM service principal. Pour appeler Key Vault, accordez à votre code un accès au secret spécifique ou à la clé dans Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.
  5. Votre code en cours d’exécution sur la machine virtuelle peut demander un jeton à partir du point de terminaison d’Azure Instance Metadata Service, accessible uniquement à partir de la machine virtuelle : 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
    • Le paramètre de ressource spécifie le service vers lequel le jeton est envoyé.The resource parameter specifies the service to which the token is sent. Pour vous authentifier à Azure Resource Manager, utilisez resource=https://management.azure.com/.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • Le paramètre de version d’API spécifie la version IMDS, utilisez api-version=2018-02-01 ou version ultérieure.API version parameter specifies the IMDS version, use api-version=2018-02-01 or greater.

Notes

Votre code peut également demander un jeton à partir du point de terminaison de l’extension de machine virtuelle, mais la dépréciation de cette possibilité est prévue prochainement.Your code can also request a token from VM extension endpoint, but this is planned for deprecation soon. Pour plus d’informations sur l’extension de machine virtuelle, consultez Migrer depuis l’extension de machine virtuelle vers Azure IMDS pour l’authentification.For more information about the VM extension, see Migrate from the VM extension to Azure IMDS for authentication.

  1. Un appel est passé à Azure AD pour demander un jeton d’accès (comme indiqué à l’étape 5), à l’aide de l’ID client et du certificat configurés à l’étape 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 renvoie un jeton d’accès JSON Web Token (JWT).Azure AD returns a JSON Web Token (JWT) access token.
  2. Votre code envoie le jeton d’accès sur un appel à un service qui prend en charge l’authentification Azure AD.Your code sends the access token on a call to a service that supports Azure AD authentication.

Fonctionnement d’une identité managée attribuée par l’utilisateur avec une machine virtuelle AzureHow a user-assigned managed identity works with an Azure VM

  1. Azure Resource Manager reçoit une requête pour créer une identité managée attribuée par l’utilisateur.Azure Resource Manager receives a request to create a user-assigned managed identity.

  2. Azure Resource Manager crée un principal de service dans Azure AD pour représenter l’identité managée attribuée par l’utilisateur.Azure Resource Manager creates a service principal in Azure AD for the user-assigned managed identity. Le principal de service est créé dans le locataire Azure AD approuvé par cet abonnement.The service principal is created in the Azure AD tenant that's trusted by the subscription.

  3. Azure Resource Manager reçoit une requête pour configurer l’identité managée attribuée par l’utilisateur sur une machine virtuelle :Azure Resource Manager receives a request to configure the user-assigned managed identity on a VM:

    1. Met à jour le point de terminaison d’identité Azure Instance Metadata Service avec l’ID client et le certificat du Principal de service de l’identité managée attribuée par l’utilisateur.Updates the Azure Instance Metadata Service identity endpoint with the user-assigned managed identity service principal client ID and certificate.
    2. Provisionne l’extension de machine virtuelle et ajoute l’ID client et le certificat du Principal de service de l’identité managée attribuée par l’utilisateur.Provisions the VM extension, and adds the user-assigned managed identity service principal client ID and certificate. (Cette étape sera bientôt abandonnée).(This step is planned for deprecation.)
  4. Maintenant que l’identité managée attribuée par l’utilisateur a été créée, utilisez les informations du Principal de service pour lui accorder l’accès aux ressources Azure.After the user-assigned managed identity is created, use the service principal information to grant the identity access to Azure resources. Pour appeler Azure Resource Manager, utilisez RBAC dans Azure AD pour attribuer le rôle approprié au principal de service de l’Identité attribuée par l’utilisateur.To call Azure Resource Manager, use RBAC in Azure AD to assign the appropriate role to the service principal of the user-assigned identity. Pour appeler Key Vault, accordez à votre code un accès au secret spécifique ou à la clé dans Key Vault.To call Key Vault, grant your code access to the specific secret or key in Key Vault.

    Notes

    Vous pouvez également effectuer cette étape avant l’étape 3.You can also do this step before step 3.

  5. Votre code en cours d’exécution sur la machine virtuelle peut demander un jeton à partir du point de terminaison d’identité d’Azure Instance Metadata Service, accessible uniquement à partir de la machine virtuelle : 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

    • Le paramètre de ressource spécifie le service vers lequel le jeton est envoyé.The resource parameter specifies the service to which the token is sent. Pour vous authentifier à Azure Resource Manager, utilisez resource=https://management.azure.com/.To authenticate to Azure Resource Manager, use resource=https://management.azure.com/.
    • Le paramètre ID client spécifie l’identité pour laquelle le jeton est demandé.The client ID parameter specifies the identity for which the token is requested. Cela est nécessaire pour lever l’ambiguïté lorsque plusieurs identités attribuées par l’utilisateur se trouvent sur une même machine virtuelle.This value is required for disambiguation when more than one user-assigned identity is on a single VM.
    • Le paramètre de version d’API spécifie la version d’Azure Instance Metadata Service.The API version parameter specifies the Azure Instance Metadata Service version. Utilisez la version api-version=2018-02-01 ou ultérieure.Use api-version=2018-02-01 or higher.

Notes

Votre code peut également demander un jeton à partir du point de terminaison de l’extension de machine virtuelle, mais la dépréciation de cette possibilité est prévue prochainement.Your code can also request a token from VM extension endpoint, but this is planned for deprecation soon. Pour plus d’informations sur l’extension de machine virtuelle, consultez Migrer depuis l’extension de machine virtuelle vers Azure IMDS pour l’authentification.For more information about the VM extension, see Migrate from the VM extension to Azure IMDS for authentication.

  1. Un appel est passé à Azure AD pour demander un jeton d’accès (comme indiqué à l’étape 5), à l’aide de l’ID client et du certificat configurés à l’étape 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 renvoie un jeton d’accès JSON Web Token (JWT).Azure AD returns a JSON Web Token (JWT) access token.
  2. Votre code envoie le jeton d’accès sur un appel à un service qui prend en charge l’authentification Azure AD.Your code sends the access token on a call to a service that supports Azure AD authentication.

Comment puis-je utiliser des identités managées pour les ressources Azure ?How can I use managed identities for Azure resources?

Pour découvrir comment utiliser les identités managées pour accéder aux différentes ressources Azure, essayez ces didacticiels.To learn how to use managed identities to access different Azure resources, try these tutorials.

Notes

Consultez le cours Implementing Managed Identities for Microsoft Azure Resources pour plus d’informations sur les identités managées, y compris des vidéos de procédures détaillées relatives à plusieurs scénarios pris en charge.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.

Découvrez comment utiliser une identité managée avec une machine virtuelle Windows :Learn how to use a managed identity with a Windows VM:

Découvrez comment utiliser une identité managée avec une machine virtuelle Linux :Learn how to use a managed identity with a Linux VM:

Découvrez comment utiliser une identité managée avec d’autres services Azure :Learn how to use a managed identity with other Azure services:

Quels sont les services Azure qui prennent en charge la fonctionnalité ?What Azure services support the feature?

Les identités managées pour les ressources Azure peuvent servir à l’authentification auprès des services prenant en charge l’authentification Azure AD.Managed identities for Azure resources can be used to authenticate to services that support Azure AD authentication. Pour obtenir la liste des services Azure qui prennent en charge la fonctionnalité d’identités managées pour les ressources Azure, consultez Services qui prennent en charge les identités managées pour les ressources 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.

Étapes suivantesNext steps

Bien démarrer avec la fonctionnalité des identités managées pour les ressources Azure grâce aux guides de démarrage rapide suivants :Get started with the managed identities for Azure resources feature with the following quickstarts: