Объекты приложения и субъекта-службы в Azure Active DirectoryApplication and service principal objects in Azure Active Directory

Иногда значение термина "приложение" может быть непонятно при использовании в контексте Azure Active Directory (Azure AD).Sometimes, the meaning of the term "application" can be misunderstood when used in the context of Azure Active Directory (Azure AD). В этой статье разъясняются концептуальные и практические аспекты интеграции приложения Azure AD, а также проиллюстрирована регистрация мультитенантного приложения и предоставление соответствующих разрешений.This article clarifies the conceptual and concrete aspects of Azure AD application integration, with an illustration of registration and consent for a multi-tenant application.

ОбзорOverview

Приложение, интегрированное с Azure AD, это более широкое понятие, чем просто компонент программного обеспечения.An application that has been integrated with Azure AD has implications that go beyond the software aspect. "Приложение" — это общий термин, который включает в себя не только программное обеспечение, но и процесс регистрации приложения в Azure AD и роль при обмене данными во время проверки подлинности и авторизации в среде выполнения."Application" is frequently used as a conceptual term, referring to not only the application software, but also its Azure AD registration and role in authentication/authorization "conversations" at runtime.

По определению приложение может функционировать в этих ролях:By definition, an application can function in these roles:

  • роль клиента (потребление ресурсов);Client role (consuming a resource)
  • роль сервера ресурсов (предоставление API для клиентов) ;Resource server role (exposing APIs to clients)
  • обе роли (клиента и сервера ресурсов).Both client role and resource server role

Процесс предоставления авторизации OAuth 2.0 определяет протокол общения, который позволяет клиенту или ресурсу получать доступ или защиту данных ресурса соответственно.An OAuth 2.0 Authorization Grant flow defines the conversation protocol, which allows the client/resource to access/protect a resource's data, respectively.

В следующих разделах вы увидите, как модель приложения Azure AD представляет приложение во время разработки и во время выполнения.In the following sections, you'll see how the Azure AD application model represents an application at design-time and run-time.

Регистрация приложенияApplication registration

При регистрации приложения Azure AD в портал Azureв клиенте Azure AD создаются два объекта:When you register an Azure AD application in the Azure portal, two objects are created in your Azure AD tenant:

  • объект приложения;An application object, and
  • объект субъекта-службы.A service principal object

Объект приложенияApplication object

Объект приложения представляет определение вашего приложения Azure AD. Единственный экземпляр объекта приложения размещается в главном клиенте Azure AD приложения (то есть в клиенте, в котором зарегистрировано приложение).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. Сущность приложения Microsoft Graph определяет схему для свойств объекта приложения.The Microsoft Graph Application entity defines the schema for an application object's properties.

Объект субъекта-службыService principal object

Чтобы получить доступ к ресурсам, которые защищены с помощью клиента Azure AD, сущность, которой требуется доступ, должна быть представлена субъектом безопасности.To access resources that are secured by an Azure AD tenant, the entity that requires access must be represented by a security principal. Это применимо и к пользователям (субъект-пользователь), и к приложениям (субъект-служба).This is true for both users (user principal) and applications (service principal).

Субъект безопасности определяет политику доступа и разрешения для пользователя или приложения в клиенте Azure AD.The security principal defines the access policy and permissions for the user/application in the Azure AD tenant. Это обеспечивает базовые функции, включая аутентификацию пользователя или приложения во время входа, а также авторизацию во время получения доступа к ресурсам.This enables core features such as authentication of the user/application during sign-in, and authorization during resource access.

Когда приложение получает разрешение на доступ к ресурсам в клиенте (при регистрации или предоставлении согласия), создается объект субъекта службы.When an application is given permission to access resources in a tenant (upon registration or consent), a service principal object is created. Сущность Microsoft Graph ServicePrincipal определяет схему для свойств объекта субъекта-службы.The Microsoft Graph ServicePrincipal entity defines the schema for a service principal object's properties.

Отношение приложения и субъекта-службыApplication and service principal relationship

В некотором роде объект приложения является глобальным представлением вашего приложения (для использования во всех клиентах), а субъект-служба — локальным (для использования в определенных клиентах).Consider the application object as the global representation of your application for use across all tenants, and the service principal as the local representation for use in a specific tenant.

Объект приложения служит шаблоном, который определяет общие свойства и свойства по умолчанию, используемые для создания соответствующих объектов субъекта-службы.The application object serves as the template from which common and default properties are derived for use in creating corresponding service principal objects. Между объектом приложения и самим приложением устанавливается отношение "один к одному", а между объектом приложения и соответствующими субъектами-службами — отношение "один ко многим".An application object therefore has a 1:1 relationship with the software application, and a 1:many relationships with its corresponding service principal object(s).

Субъект-службу необходимо создать в каждом клиенте, где будет использоваться приложение, чтобы установить поставщика удостоверений для входа в систему и доступа к ресурсам, защищенным с помощью клиента.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. Приложение с одним клиентом будет иметь только один субъект-службу (в своем домашнем клиенте). Создание субъекта-службы и предоставление разрешения на его использование выполняется во время регистрации приложения.A single-tenant application has only one service principal (in its home tenant), created and consented for use during application registration. Для мультитенантного веб-приложения или API также будет создан субъект-служба в каждом клиенте, пользователь которого даст согласие на его использование.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.

Примечание

Любые изменения объекта приложения также отражаются в объекте субъекта-службы, размещенном в главном клиенте приложения (то есть в клиенте, в котором зарегистрировано приложение).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). При использовании мультитенантных приложений изменения объекта приложения не отражаются в объектах субъекта-службы клиента-потребителя до тех пор, пока через панель доступа приложения доступ не будет удален и предоставлен снова.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.

Обратите также внимание, что собственные приложения по умолчанию регистрируются как мультитенантные.Also note that native applications are registered as multi-tenant by default.

ПримерExample

На следующей схеме показана связь между объектом приложения и соответствующими объектами субъекта-службы в контексте образца мультитенантного приложения под названием Приложение по управлению персоналом.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. В этом примере сценария используются три клиента Azure AD:There are three Azure AD tenants in this example scenario:

  • Adatum — клиент, который использует компания, разработавшая приложение по управлению персоналом;Adatum - The tenant used by the company that developed the HR app
  • Contoso — клиент, который использует компания Contoso, являющаяся объектом-получателем приложения по управлению персоналом;Contoso - The tenant used by the Contoso organization, which is a consumer of the HR app
  • Fabrikam — клиент, который использует компания Fabrikam, также потребляющая приложение по управлению персоналом.Fabrikam - The tenant used by the Fabrikam organization, which also consumes the HR app

Отношение между объектом приложения и объектом субъекта-службы

Условия в этом примере сценария.In this example scenario:

ШагStep ОписаниеDescription
11 Это процесс создания объектов приложения и субъекта-службы в главном клиенте приложения.Is the process of creating the application and service principal objects in the application's home tenant.
22 При согласии администраторов компании Contoso и Fabrikam в клиенте Azure AD компании создается объект субъекта-службы, и ему назначаются разрешения, предоставленные администратором.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. Обратите внимание, что приложение по управлению персоналом можно создать или настроить для отдельных пользователей.Also note that the HR app could be configured/designed to allow consent by users for individual use.
33 Каждый из клиентов-потребителей приложения по управлению персоналом (Contoso и Fabrikam) имеет собственный объект субъекта-службы.The consumer tenants of the HR application (Contoso and Fabrikam) each have their own service principal object. И каждый из них представляет использование экземпляра приложения во время выполнения. Это использование зависит от разрешений, предоставленных соответствующим администратором.Each represents their use of an instance of the application at runtime, governed by the permissions consented by the respective administrator.

Следующие шагиNext steps