S’authentifier auprès d’Azure Key VaultAuthenticate to Azure Key Vault

Azure Key Vault offre la possibilité de stocker des secrets et de contrôler leur distribution dans un référentiel cloud centralisé et sécurisé, ce qui évite d’avoir à stocker des informations d’identification dans les applications.Azure Key Vault allows you to store secrets and control their distribution in a centralized, secure cloud repository, which eliminates the need to store credentials in applications. Il suffit aux applications de s’authentifier auprès de Key Vault à l’exécution pour accéder à ces secrets.Applications need only authenticate with Key Vault at run time to access those secrets.

Identité et principaux de sécurité des applicationsApp identity and security principals

L’authentification auprès de Key Vault fonctionne conjointement avec Azure Active Directory (Azure AD), qui est chargé d’authentifier l’identité de chaque principal de sécurité donné.Authentication with Key Vault works in conjunction with Azure Active Directory (Azure AD), which is responsible for authenticating the identity of any given security principal.

Un principal de sécurité est un objet qui représente un utilisateur, un groupe, un service ou une application demandant l’accès aux ressources Azure.A security principal is an object that represents a user, group, service, or application that's requesting access to Azure resources. Azure affecte un ID d’objet unique à chaque principal de sécurité.Azure assigns a unique object ID to every security principal.

  • Un principal de sécurité utilisateur identifie une personne disposant d’un profil dans Azure Active Directory.A user security principal identifies an individual who has a profile in Azure Active Directory.

  • Un principal de sécurité groupe identifie un ensemble d’utilisateurs créés dans Azure Active Directory.A group security principal identifies a set of users created in Azure Active Directory. Tous les rôles et autorisations attribués au groupe sont accordés à tous les utilisateurs du groupe.Any roles or permissions assigned to the group are granted to all of the users within the group.

  • Un principal de service est un type de principal de sécurité qui identifie une application ou un service, c’est-à-dire un morceau de code plutôt qu’un utilisateur ou un groupe.A service principal is a type of security principal that identities an application or service, which is to say, a piece of code rather than a user or group. L’ID d’objet d’un principal de service, appelé ID client, lui sert de nom d’utilisateur.A service principal's object ID is known as its client ID and acts like its username. La clé secrète client du principal de service fonctionne comme un mot de passe.The service principal's client secret acts like its password.

Pour les applications, il existe deux façons d’obtenir un principal de service :For applications, there are two ways to obtain a service principal:

  • Méthode recommandée : activez une identité managée affectée par le système pour l’application.Recommended: enable a system-assigned managed identity for the application.

    Avec l’identité managée, Azure gère en interne le principal de service de l’application et authentifie automatiquement l’application auprès d’autres services Azure.With managed identity, Azure internally manages the application's service principal and automatically authenticates the application with other Azure services. L’identité managée est disponible pour les applications déployées sur un large éventail de services.Managed identity is available for applications deployed to a variety of services.

    Pour plus d’informations, consultez Vue d’ensemble de l’identité managée.For more information, see the Managed identity overview. Consultez également Services Azure qui prennent en charge l’identité managée, qui comporte des liens vers des articles expliquant comment activer l’identité managée pour des services spécifiques (par exemple, App Service, Azure Functions ou Machines Virtuelles).Also see Azure services that support managed identity, which links to articles that describe how to enable managed identity for specific services (such as App Service, Azure Functions, Virtual Machines, etc.).

  • Si vous ne pouvez pas utiliser l’identité managée, inscrivez l’application auprès de votre locataire Azure AD (cf. Démarrage rapide : Inscription d’une application avec la Plateforme d’identités Azure).If you cannot use managed identity, you instead register the application with your Azure AD tenant, as described on Quickstart: Register an application with the Azure identity platform. L’inscription a également pour effet de créer un deuxième objet d’application qui identifie l’application sur tous les locataires.Registration also creates a second application object that identifies the app across all tenants.

Autoriser un principal de sécurité à accéder à Key VaultAuthorize a security principal to access Key Vault

Key Vault fonctionne avec deux niveaux d’autorisation distincts :Key Vault works with two separate levels of authorization:

  • Les stratégies d’accès contrôlent si un utilisateur, un groupe ou un principal de service est autorisé à accéder aux secrets, aux clés et aux certificats au sein d’une ressource Key Vault existante (opérations parfois appelées « plan de données »).Access policies control whether a user, group, or service principal is authorized to access secrets, keys, and certificates within an existing Key Vault resource (sometimes referred to "data plane" operations). Ces stratégies sont généralement accordées à des utilisateurs, groupes et applications.Access policies are typically granted to users, groups, and applications.

    Pour affecter des stratégies d’accès, consultez les articles suivants :To assign access policies, see the following articles:

  • Les autorisations de rôle contrôlent si un utilisateur, un groupe ou un principal de service est autorisé à créer, à supprimer et, plus généralement, à gérer une ressource Key Vault (opérations parfois appelées « plan de gestion »).Role permissions control whether a user, group, or service principal is authorized to create, delete, and otherwise manage a Key Vault resource (sometimes referred to as "management plane" operations). Ces rôles sont la plupart du temps accordés uniquement aux administrateurs.Such roles are most often granted only to administrators.

    Pour affecter et gérer les rôles, consultez les articles suivants :To assign and manage roles, see the following articles:

    Key Vault prend actuellement en charge le rôle Contributeur, qui autorise les opérations de gestion sur les ressources Key Vault.Key Vault currently supports the Contributor role, which allows management operations on Key Vault resources. D’autres rôles sont actuellement en préversion.A number of other roles are currently in preview. Vous pouvez également créer des rôles personnalisés (cf. Rôles personnalisés Azure).You can also create custom roles, as described on Azure custom roles.

    Pour obtenir des informations générales sur les rôles, consultez Qu’est-ce que le contrôle d’accès en fonction du rôle Azure (RBAC Azure) ?For general information on roles, see What is Azure role-based access control (Azure RBAC)?.

Important

Pour une sécurité optimale, suivez toujours le principe des privilèges minimum : accordez uniquement les stratégies d’accès et les rôles les plus spécifiques nécessaires.For greatest security, always follow the principal of least privilege and grant only the most specific access policies and roles that are necessary.

Configuration du pare-feu Key VaultConfigure the Key Vault firewall

Par défaut, Key Vault autorise l’accès aux ressources par le biais d’adresses IP publiques.By default, Key Vault allows access to resources through public IP addresses. Pour une sécurité optimale, vous pouvez aussi limiter l’accès à des plages d’adresses IP, des points de terminaison de service, des réseaux virtuels ou des points de terminaison privés spécifiques.For greater security, you can also restrict access to specific IP ranges, service endpoints, virtual networks, or private endpoints.

Pour plus d’informations, consultez Accès à Azure Key Vault derrière un pare-feu.For more information, see Access Azure Key Vault behind a firewall.

Flux d’authentification Key VaultThe Key Vault authentication flow

  1. Un principal de service demande à s’authentifier auprès d’Azure AD, par exemple :A service principal requests to authenticate with Azure AD, for example:

    • Un utilisateur se connecte au Portail Azure avec un nom d’utilisateur et un mot de passe.A user logs into the Azure portal using a username and password.
    • Une application appelle une API REST Azure, en présentant un ID client et une clé secrète ou un certificat client.An application invokes an Azure REST API, presenting a client ID and secret or a client certificate.
    • Une ressource Azure, comme une machine virtuelle avec identité managée, contacte le point de terminaison REST Azure Instance Metadata Service (IMDS) pour obtenir un jeton d’accès.An Azure resource such as a virtual machine with a managed identity contacts the Azure Instance Metadata Service (IMDS) REST endpoint to get an access token.
  2. Si l’authentification auprès d’Azure AD réussit, un jeton OAuth est accordé au principal de service.If authentication with Azure AD is successful, the service principal is granted an OAuth token.

  3. Le principal de service effectue un appel à l’API REST Key Vault par le biais du point de terminaison (URI) de Key Vault.The service principal makes a call to the Key Vault REST API through the Key Vault's endpoint (URI).

  4. Le pare-feu Key Vault vérifie les critères suivants.Key Vault Firewall checks the following criteria. Si un critère est respecté, l’appel est autorisé.If any criterion is met, the call is allowed. Dans le cas contraire, l’appel est bloqué et une réponse Interdit est retournée.Otherwise the call is blocked and a forbidden response is returned.

    • Le pare-feu Key Vault est désactivé et le point de terminaison public de Key Vault est accessible sur l’Internet public.The firewall is disabled and the public endpoint of Key Vault is reachable from the public internet.
    • L’appelant est un service approuvé Key Vault, ce qui lui permet de contourner le pare-feu.The caller is a Key Vault Trusted Service, allowing it to bypass the firewall.
    • L’appelant est listé dans le pare-feu par adresse IP, réseau virtuel ou point de terminaison de service.The caller is listed in the firewall by IP address, virtual network, or service endpoint.
    • L’appelant peut accéder à Key Vault au moyen d’une connexion de liaison privée configurée.The caller can reach Key Vault over a configured private link connection.
  5. Si le pare-feu autorise l’appel, Key Vault appelle Azure AD pour valider le jeton d’accès du principal de service.If the firewall allows the call, Key Vault calls Azure AD to validate the service principal’s access token.

  6. Key Vault vérifie si le principal de service dispose de la stratégie d’accès nécessaire pour l’opération demandée.Key Vault checks if the service principal has the necessary access policy for the requested operation. Si ce n’est pas le cas, Key Vault retourne une réponse Interdit.If not, Key Vault returns a forbidden response.

  7. Key Vault effectue l’opération demandée et retourne le résultat.Key Vault carries out the requested operation and returns the result.

Le diagramme suivant illustre le processus pour une application qui appelle une API Key Vault « Obtenir le secret » :The following diagram illustrates the process for an application calling a Key Vault "Get Secret" API:

Flux d’authentification Azure Key Vault

Exemples de codeCode examples

Le tableau suivant contient des liens vers différents articles qui montrent comment utiliser Key Vault dans le code d’application à l’aide des bibliothèques Azure SDK du langage en question.The following table links to different articles that demonstrate how to work with Key Vault in application code using the Azure SDK libraries for the language in question. D’autres interfaces, comme Azure CLI et le Portail Azure, sont incluses pour des raisons pratiques.Other interfaces such as the Azure CLI and the Azure portal are included for convenience.

Secrets Key VaultKey Vault Secrets Clés Key VaultKey Vault Keys Certificats Key VaultKey Vault Certificates
PythonPython PythonPython PythonPython
.NET (SDK v4).NET (SDK v4) -- --
.NET (SDK v3).NET (SDK v3) -- --
JavaJava -- --
JavaScriptJavaScript -- --
Azure portalAzure portal Azure portalAzure portal Azure portalAzure portal
Azure CLIAzure CLI Azure CLIAzure CLI Azure CLIAzure CLI
Azure PowerShellAzure PowerShell Azure PowerShellAzure PowerShell Azure PowerShellAzure PowerShell
Modèle ARMARM template -- --

Étapes suivantesNext Steps