Objetos de entidade de serviço e aplicativo no Azure Active DirectoryApplication and service principal objects in Azure Active Directory

Às vezes, o significado do termo "aplicativo" pode ser interpretado de forma errada quando usado no contexto do Azure AD (Azure Active Directory).Sometimes, the meaning of the term "application" can be misunderstood when used in the context of Azure Active Directory (Azure AD). Este artigo esclarece os aspectos conceituais e concretos da integração de aplicativos do Azure AD, com uma ilustração de registro e consentimento para um aplicativo multilocatário.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.

Visão geralOverview

Um aplicativo que foi integrado ao Azure AD tem implicações que ultrapassam o aspecto de software.An application that has been integrated with Azure AD has implications that go beyond the software aspect. "Aplicativo" é frequentemente usado como um termo conceitual, referindo-se não apenas ao software de aplicativo, mas também ao seu registro e função no Azure AD nas "conversas" de autenticação/autorização em tempo de execução."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.

Por definição, um aplicativo pode funcionar nestas funções:By definition, an application can function in these roles:

  • Função de cliente (consumindo um recurso)Client role (consuming a resource)
  • Função de servidor de recurso (expondo APIs aos clientes)Resource server role (exposing APIs to clients)
  • Nas duas funções, de cliente e de servidor de recursoBoth client role and resource server role

Um fluxo de Concessão de Autorização OAuth 2.0 define o protocolo de conversa, permitindo que o cliente/recurso acesse/proteja dados de um recurso, respectivamente.An OAuth 2.0 Authorization Grant flow defines the conversation protocol, which allows the client/resource to access/protect a resource's data, respectively.

Nas seções a seguir, você verá como o modelo de aplicativo do Azure AD representa um aplicativo no tempo de design e no tempo de execução.In the following sections, you'll see how the Azure AD application model represents an application at design-time and run-time.

Registro de aplicativoApplication registration

Quando você registra um aplicativo do Azure AD na portal do Azure, dois objetos são criados em seu locatário do Azure AD:When you register an Azure AD application in the Azure portal, two objects are created in your Azure AD tenant:

  • Um objeto de aplicativo, eAn application object, and
  • Um objeto de entidade de serviçoA service principal object

Objeto de aplicativoApplication object

Um aplicativo do Azure AD é definido por seu único objeto de aplicativo, que reside no locatário do Azure AD em que o aplicativo foi registrado, sendo conhecido como o locatário "inicial" do aplicativo.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. A entidade de aplicativo Microsoft Graph define o esquema para as propriedades de um objeto de aplicativo.The Microsoft Graph Application entity defines the schema for an application object's properties.

Objeto de entidade de serviçoService principal object

Para acessar os recursos que são protegidos por um locatário do Azure AD, a entidade que requer acesso deve ser representada por uma entidade de segurança.To access resources that are secured by an Azure AD tenant, the entity that requires access must be represented by a security principal. Isso é verdadeiro para usuários (entidade de usuário) e aplicativos (entidade de serviço).This is true for both users (user principal) and applications (service principal).

A entidade de segurança define a política de acesso e as permissões para o usuário/aplicativo no locatário do Azure AD.The security principal defines the access policy and permissions for the user/application in the Azure AD tenant. Isso habilita recursos principais como a autenticação do usuário/aplicativo durante a entrada, bem como a autorização durante o acesso aos recursos.This enables core features such as authentication of the user/application during sign-in, and authorization during resource access.

Quando um aplicativo recebe permissão para acessar os recursos em um locatário (após o registro ou o consentimento), um objeto de entidade de serviço é criado.When an application is given permission to access resources in a tenant (upon registration or consent), a service principal object is created. A entidade Microsoft Graph servicePrincipalName define o esquema para as propriedades de um objeto de entidade de serviço.The Microsoft Graph ServicePrincipal entity defines the schema for a service principal object's properties.

Relação do aplicativo e a entidade de serviçoApplication and service principal relationship

Você pode considerar o aplicativo como a representação global de seu aplicativo para uso em todos os locatários, e a entidade de serviço como a representação local para uso em um locatário específico.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.

O objeto de aplicativo serve como o modelo do qual as propriedades comuns e padrão são derivadas para uso na criação de objetos de entidade de serviço correspondentes.The application object serves as the template from which common and default properties are derived for use in creating corresponding service principal objects. Portanto, um objeto de aplicativo tem uma relação de um para um com o aplicativo de software e uma relação de um para muitos com seus objetos de entidade de serviço correspondentes.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).

Uma entidade de serviço deve ser criada em cada locatário no qual o aplicativo é usado, permitindo o estabelecimento de uma identidade para entrada e/ou acesso aos recursos que estão sendo protegidos pelo locatário.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. Um aplicativo de locatário único tem apenas uma entidade de serviço (em seu locatário inicial), criado e com consentimento para uso durante o registro do aplicativo.A single-tenant application has only one service principal (in its home tenant), created and consented for use during application registration. Uma API/aplicativo Web multilocatário também tem uma entidade de serviço criada em cada locatário no qual um usuário consentiu com o seu uso.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.

Observação

As alterações feitas no objeto de aplicativo também são refletidas apenas no objeto de entidade de serviço do locatário inicial do aplicativo (o locatário em que ele foi registrado).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). Para aplicativos multilocatário, as alterações no objeto do aplicativo não serão refletidas em objetos de entidade de serviço dos locatários de qualquer consumidor até que o acesso seja removido por meio do Painel de Acesso do Aplicativo e concedido novamente.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.

Observe também que os aplicativos nativos são registrados como multilocatários, por padrão.Also note that native applications are registered as multi-tenant by default.

ExemploExample

O diagrama a seguir ilustra o relacionamento entre o objeto de aplicativo de um aplicativo e os objetos de entidade de serviço correspondentes, no contexto de um aplicativo multilocatário de exemplo chamado aplicativo de 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. Há três locatários do Azure AD nesse exemplo de cenário:There are three Azure AD tenants in this example scenario:

  • Adatum: o locatário usado pela empresa que desenvolveu o aplicativo de RHAdatum - The tenant used by the company that developed the HR app
  • Contoso: o locatário utilizado pela empresa Contoso, que é consumidora do aplicativo de HRContoso - The tenant used by the Contoso organization, which is a consumer of the HR app
  • Fabrikam: o locatário usado pela organização Fabrikam, que também consome o aplicativo de HRFabrikam - The tenant used by the Fabrikam organization, which also consumes the HR app

Relação entre objeto de aplicativo e objeto de entidade de serviço

Nesse cenário de exemplo:In this example scenario:

EtapaStep DescriçãoDescription
11 É o processo de criação do aplicativo e dos objetos de entidade de serviço no locatário inicial do aplicativo.Is the process of creating the application and service principal objects in the application's home tenant.
22 Quando os administradores da Contoso e da Fabrikam concluem o consentimento, um objeto de entidade de serviço é criado no locatário do Azure AD da empresa e recebe as permissões concedidas pelo administrador.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. Observe também que o aplicativo de RH pode ser configurado/projetado para permitir o consentimento pelos usuários para uso individual.Also note that the HR app could be configured/designed to allow consent by users for individual use.
33 Os locatários do consumidor do aplicativo de RH (Contoso e Fabrikam) tem seu próprio objeto de entidade de serviço.The consumer tenants of the HR application (Contoso and Fabrikam) each have their own service principal object. Cada um deles representa o uso de uma instância do aplicativo em tempo de execução, controlado pelas permissões concedidas pelo respectivo administrador.Each represents their use of an instance of the application at runtime, governed by the permissions consented by the respective administrator.

Próximas etapasNext steps