Objets application et principal du service dans Azure Active DirectoryApplication and service principal objects in Azure Active Directory

Cet article décrit l’inscription d’application, les objets application et les principaux du service dans Azure Active Directory : ce qu’ils sont, comment ils sont utilisés et comment ils sont liés entre eux.This article describes application registration, application objects, and service principals in Azure Active Directory: what they are, how they're used, and how they are related to each other. Un exemple de scénario mutualisé est également présenté pour illustrer la relation entre l’objet application d’une application et les objets principal de service correspondants.A multi-tenant example scenario is also presented to illustrate the relationship between an application's application object and corresponding service principal objects.

Inscription de l’applicationApplication registration

Afin de pouvoir déléguer les fonctions de gestion des identités et des accès, une application doit être inscrite auprès d’un client Azure AD.In order to delegate Identity and Access Management functions to Azure AD, an application must be registered with an Azure AD tenant. Lorsque vous inscrivez votre application auprès d’Azure AD, vous créez une configuration d’identité pour votre application, ce qui lui permet de s’intégrer avec Azure AD.When you register your application with Azure AD, you are creating an identity configuration for your application that allows it to integrate with Azure AD. Quand vous inscrivez une application dans le portail Azure, vous choisissez s’il s’agit d’une application monolocataire (accessible uniquement dans votre locataire) ou multilocataire (accessible dans d’autres locataires). De plus, vous pouvez éventuellement définir un URI de redirection (auquel le jeton d’accès est envoyé).When you register an app in the Azure portal, you choose whether it's a single tenant (only accessible in your tenant) or multi-tenant (accessible to in other tenants) and can optionally set a redirect URI (where the access token is sent to).

Capture d’écran du volet Enregistrer une application du Portail Azure

Une fois l’inscription de l’application terminée, vous disposez d’une instance globale unique de l’application (objet application) qui réside dans votre locataire ou annuaire de base.When you've completed the app registration, you have a globally unique instance of the app (the application object) which lives within your home tenant or directory. Vous disposez également d’un ID global unique pour votre application (l’ID de l’application ou du client).You also have a globally unique ID for your app (the app or client ID). Dans le portail, vous pouvez ensuite ajouter des secrets ou des certificats, ainsi que des étendues pour que votre application fonctionne, personnaliser votre application dans la boîte de dialogue de connexion, et bien plus.In the portal, you can then add secrets or certificates and scopes to make your app work, customize the branding of your app in the sign-in dialog, and more.

Si vous inscrivez une application dans le portail, un objet application et un objet principal de service sont automatiquement créés dans votre locataire de base.If you register an application in the portal, an application object as well as a service principal object are automatically created in your home tenant. Si vous inscrivez/créez une application à l’aide des API Microsoft Graph, la création de l’objet principal de service est une étape distincte.If you register/create an application using the Microsoft Graph APIs, creating the service principal object is a separate step.

Objet applicationApplication object

Une application Azure AD est définie par son seul et unique objet application, qui réside dans le locataire Azure AD dans lequel l’application a été inscrite (locataire « de base » de l’application).An Azure AD application is defined by its one and only application object, which resides in the Azure AD tenant where the application was registered (known as the application's "home" tenant). Un objet application est utilisé en tant que modèle ou blueprint pour créer un ou plusieurs objets principal de service.An application object is used as a template or blueprint to create one or more service principal objects. Un principal de service est créé dans chaque locataire dans lequel l’application est utilisée.A service principal is created in every tenant where the application is used. À l’image d’une classe en programmation orientée objet, l’objet d’application a des propriétés statiques qui sont appliquées à tous les principaux de service créés (ou instances d’application).Similar to a class in object-oriented programming, the application object has some static properties that are applied to all the created service principals (or application instances).

L’objet application décrit trois aspects d’une application : la manière dont le service peut émettre des jetons pour accéder à l’application, les ressources auxquelles l’application peut avoir besoin d’accéder, et les actions que l’application peut effectuer.The application object describes three aspects of an application: how the service can issue tokens in order to access the application, resources that the application might need to access, and the actions that the application can take.

Le panneau Inscriptions d’applications dans le portail Azure permet de répertorier et gérer les objets application dans votre locataire de base.The App registrations blade in the Azure portal is used to list and manage the application objects in your home tenant.

Panneau Inscriptions d’applications

L’entité Application de Microsoft Graph définit le schéma pour les propriétés d’un objet d’application.The Microsoft Graph Application entity defines the schema for an application object's properties.

Objet principal du serviceService principal object

Pour accéder aux ressources qui sont sécurisées par un locataire Azure AD, l’entité qui nécessite l’accès doit être représentée par un principal de sécurité.To access resources that are secured by an Azure AD tenant, the entity that requires access must be represented by a security principal. Cette exigence est valable aussi bien pour les utilisateurs (principal d’utilisateur) que pour les applications (principal de service).This requirement is true for both users (user principal) and applications (service principal). Le principal de sécurité définit la stratégie d’accès et les autorisations pour l’utilisateur ou l’application du locataire Azure AD.The security principal defines the access policy and permissions for the user/application in the Azure AD tenant. Cela rend possibles les fonctionnalités de base, telles que l’authentification de l’application ou de l’utilisateur lors de la connexion, et l’autorisation lors de l’accès aux ressources.This enables core features such as authentication of the user/application during sign-in, and authorization during resource access.

Un principal de service est la représentation locale, ou instance d’application, d’un objet application global dans un locataire ou répertoire unique.A service principal is the local representation, or application instance, of a global application object in a single tenant or directory. Un principal de service est une instance concrète créée à partir de l’objet application, qui hérite de certaines propriétés de celui-ci.A service principal is a concrete instance created from the application object and inherits certain properties from that application object. Un principal de service est créé dans chaque locataire dans lequel l’application est utilisée, et fait référence à l’objet application global unique.A service principal is created in each tenant where the application is used and references the globally unique app object. L’objet principal de service définit ce que l’application peut réellement faire dans le locataire spécifique, qui peut accéder à l’application, ainsi que les ressources auxquelles l’application peut accéder.The service principal object defines what the app can actually do in the specific tenant, who can access the app, and what resources the app can access.

Lorsqu’une application reçoit l’autorisation d’accéder aux ressources d’un locataire (après inscription ou consentement), un objet de principal de service est créé.When an application is given permission to access resources in a tenant (upon registration or consent), a service principal object is created. Vous pouvez également créer un objet principal de service dans un locataire à l’aide d’Azure PowerShell, de l’interface Azure CLI, de Microsoft Graph, du portail Azure et d’autres outils.You can also create service principal object in a tenant using Azure PowerShell, Azure CLI, Microsoft Graph, the Azure portal, and other tools. Lorsque vous utilisez le portail, un principal de service est créé automatiquement lorsque vous inscrivez une application.When using the portal, a service principal is created automatically when you register an application.

Le panneau Applications d’entreprise dans le portail permet de répertorier et gérer les principaux de service dans un locataire.The Enterprise applications blade in the portal is used to list and manage the service principals in a tenant. Vous pouvez voir les autorisations du principal de service, les autorisations accordées par l’utilisateur, les utilisateurs ayant accordé ces autorisations, les informations de connexion, et bien plus.You can see the service principal's permissions, user consented permissions, which users have done that consent, sign in information, and more.

Panneau Applications d’entreprise

L’entité ServicePrincipal de Microsoft Graph définit le schéma pour les propriétés d’un objet principal de service.The Microsoft Graph ServicePrincipal entity defines the schema for a service principal object's properties.

Relation entre les objets application et les principaux de serviceRelationship between application objects and service principals

L’objet application est la représentation globale de votre application à l’usage de tous les locataires, et le principal de service est la représentation locale de l’application à l’usage d’un locataire spécifique.The application object is the global representation of your application for use across all tenants, and the service principal is the local representation for use in a specific tenant.

L’objet application fait office de modèle à partir duquel les propriétés communes et par défaut sont dérivées pour une utilisation visant à créer des objets de principal de service correspondants.The application object serves as the template from which common and default properties are derived for use in creating corresponding service principal objects. Un objet application présente donc une relation 1 à 1 avec l’application logicielle et une relation 1 à plusieurs avec le ou les objets de principal de service correspondants.An application object therefore has a 1:1 relationship with the software application, and a 1:many relationship with its corresponding service principal object(s).

Un principal de service doit être créé dans chaque locataire sur lequel l’application est utilisée, ce qui lui permet d’établir une identité pour la connexion et/ou l’accès aux ressources sécurisées par le locataire.A service principal must be created in each tenant where the application is used, enabling it to establish an identity for sign-in and/or access to resources being secured by the tenant. Une application à locataire unique n’a qu’un seul principal de service (dans son locataire de base), créé et pouvant être utilisé pendant l’inscription de l’application.A single-tenant application has only one service principal (in its home tenant), created and consented for use during application registration. Une application web/API multi-locataire a également un principal de service créé dans chaque locataire où un utilisateur de ce locataire a consenti à son utilisation.A multi-tenant Web application/API also has a service principal created in each tenant where a user from that tenant has consented to its use.

Notes

Toute modification apportée à l’objet application de votre application est également répercutée dans son objet principal du service, uniquement dans le client de base de l’application (le client où elle a été inscrite).Any changes you make to your application object, are also reflected in its service principal object in the application's home tenant only (the tenant where it was registered). Pour l’accès mutualisé, les modifications apportées à l’objet application ne sont pas répercutées dans les objets principal de service des clients consommateurs jusqu’à ce que l’accès soit supprimé via le volet d’accès à l’application et à nouveau octroyé.For multi-tenant applications, changes to the application object are not reflected in any consumer tenants' service principal objects, until the access is removed through the Application Access Panel and granted again.

Notez également que les applications natives sont enregistrées en tant que mutualisées par défaut.Also note that native applications are registered as multi-tenant by default.

ExempleExample

Le schéma suivant illustre la relation entre un objet application d’une application et les objets principal du service correspondants dans le contexte d’un exemple d’application mutualisée appelée RH.The following diagram illustrates the relationship between an application's application object and corresponding service principal objects, in the context of a sample multi-tenant application called HR app. Il existe trois clients Azure AD dans cet exemple de scénario :There are three Azure AD tenants in this example scenario:

  • Adatum : le client utilisé par la société qui a développé l’application RH ;Adatum - The tenant used by the company that developed the HR app
  • Contoso : le client utilisé par l’entreprise Contoso, qui est un consommateur de l’application RH ;Contoso - The tenant used by the Contoso organization, which is a consumer of the HR app
  • Fabrikam : le client utilisé par l’entreprise Fabrikam, qui est également un consommateur de l’application RH.Fabrikam - The tenant used by the Fabrikam organization, which also consumes the HR app

Relation entre un objet d’application et un objet de principal de service

Dans cet exemple de scénario :In this example scenario:

ÉtapeStep DescriptionDescription
11 Correspond au processus de création des objets application et principal du service dans le client de base de l’application.Is the process of creating the application and service principal objects in the application's home tenant.
22 Lorsque les administrateurs de Contoso et Fabrikam accordent leur consentement, un objet principal du service est créé dans le client Azure AD de leur entreprise et se voit attribuer les autorisations accordées par l’administrateur.When Contoso and Fabrikam administrators complete consent, a service principal object is created in their company's Azure AD tenant and assigned the permissions that the administrator granted. Notez également que l’application RH peut être configurée/conçue de manière à autoriser le consentement par les utilisateurs à des fins d’utilisation individuelle.Also note that the HR app could be configured/designed to allow consent by users for individual use.
33 Les clients consommateurs de l’application RH (Contoso et Fabrikam) ont chacun leur propre objet principal de service.The consumer tenants of the HR application (Contoso and Fabrikam) each have their own service principal object. Chacun représente leur utilisation d’une instance de l’application lors de l’exécution, régie par les autorisations consenties par l’administrateur respectif.Each represents their use of an instance of the application at runtime, governed by the permissions consented by the respective administrator.

Étapes suivantesNext steps