Instanční objekty aplikací a služeb v Azure Active DirectoryApplication and service principal objects in Azure Active Directory

Tento článek popisuje registraci aplikace, aplikační objekty a instanční objekty v Azure Active Directory: co jsou, jak se používají a jak se vzájemně souvisí.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. Ukázkový scénář pro více tenantů je také znázorněn k ilustraci vztahu mezi objektem aplikace aplikace a odpovídajícími instančními objekty služby.A multi-tenant example scenario is also presented to illustrate the relationship between an application's application object and corresponding service principal objects.

Registrace aplikacíApplication registration

Aby bylo možné delegovat funkce pro správu identit a přístupu do služby Azure AD, musí být aplikace zaregistrovaná v TenantoviAzure AD.In order to delegate Identity and Access Management functions to Azure AD, an application must be registered with an Azure AD tenant. Při registraci aplikace ve službě Azure AD vytváříte konfiguraci identity pro vaši aplikaci, která umožňuje integraci se službou 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. Při registraci aplikace v Azure Portalzvolíte, zda se jedná o jediného tenanta (k dispozici pouze ve vašem tenantovi) nebo k víceklientskému přístupu (přístup v jiných klientech), a volitelně můžete nastavit identifikátor URI přesměrování (kam se přístupový token posílá).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 in other tenants) and can optionally set a redirect URI (where the access token is sent to).

Snímek obrazovky s podoknem registru aplikace Azure Portal

Po dokončení registrace aplikace budete mít globálně jedinečnou instanci aplikace (objekt aplikace), která je umístěná v rámci vašeho domovského tenanta nebo adresáře.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. Máte také globálně jedinečné ID vaší aplikace (ID aplikace nebo klienta).You also have a globally unique ID for your app (the app or client ID). Na portálu můžete přidat tajné klíče, certifikáty a obory, aby vaše aplikace fungovala, přizpůsobení značky vaší aplikace v dialogovém okně přihlášení a další.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.

Pokud zaregistrujete aplikaci na portálu, objekt aplikace a objekt instančního objektu se automaticky vytvoří v domovském tenantovi.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. Pokud zaregistrujete nebo vytvoříte aplikaci pomocí rozhraní Microsoft Graph API, vytvoří se objekt instančního objektu jako samostatný krok.If you register/create an application using the Microsoft Graph APIs, creating the service principal object is a separate step.

Objekt aplikaceApplication object

Aplikace služby Azure AD je definována jejím jedním a jediným objektem aplikace, který se nachází v tenantovi Azure AD, kde byla aplikace zaregistrovaná (označovaná jako "domovský" tenant aplikace).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). Objekt aplikace se používá jako šablona nebo podrobný plán k vytvoření jednoho nebo více objektů instančního objektu.An application object is used as a template or blueprint to create one or more service principal objects. Instanční objekt se vytvoří v každém tenantovi, kde se aplikace používá.A service principal is created in every tenant where the application is used. Podobně jako u třídy v objektově orientovaném programování má objekt aplikace některé statické vlastnosti, které jsou aplikovány na všechny vytvořené instanční objekty (nebo instance aplikace).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).

Aplikační objekt popisuje tři aspekty aplikace: Jak může služba vystavovat tokeny pro přístup k aplikaci, prostředků, ke kterým může aplikace potřebovat přístup, a akcí, které může aplikace provádět.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.

Okno Registrace aplikací v Azure Portal slouží k vypsání a správě objektů aplikace v domovském tenantovi.The App registrations blade in the Azure portal is used to list and manage the application objects in your home tenant.

Okno Registrace aplikací

Entita Microsoft Graph aplikace definuje schéma pro vlastnosti objektu aplikace.The Microsoft Graph Application entity defines the schema for an application object's properties.

Instanční objekt službyService principal object

Aby bylo možné získat přístup k prostředkům, které jsou zabezpečeny klientem služby Azure AD, musí být entita, která vyžaduje přístup, reprezentovaná objektem zabezpečení.To access resources that are secured by an Azure AD tenant, the entity that requires access must be represented by a security principal. Tento požadavek platí pro uživatele (objekt zabezpečení uživatele) i aplikace (instanční objekt).This requirement is true for both users (user principal) and applications (service principal). Objekt zabezpečení definuje zásady přístupu a oprávnění pro uživatele nebo aplikaci v tenantovi Azure AD.The security principal defines the access policy and permissions for the user/application in the Azure AD tenant. To umožňuje základní funkce, jako je ověřování uživatelů nebo aplikací během přihlašování, a autorizaci během přístupu k prostředkům.This enables core features such as authentication of the user/application during sign-in, and authorization during resource access.

Instanční objekt je místní reprezentace nebo instance aplikace globálního objektu aplikace v jednom tenantovi nebo adresáři.A service principal is the local representation, or application instance, of a global application object in a single tenant or directory. Instanční objekt je konkrétní instance vytvořená z objektu aplikace a dědí určité vlastnosti z tohoto objektu aplikace.A service principal is a concrete instance created from the application object and inherits certain properties from that application object. Instanční objekt se vytvoří v každém tenantovi, kde se aplikace používá, a odkazuje na globálně jedinečný objekt aplikace.A service principal is created in each tenant where the application is used and references the globally unique app object. Objekt instančního objektu definuje, co může aplikace ve skutečnosti dělat v konkrétním tenantovi, kdo má přístup k aplikaci a k jakým prostředkům může aplikace přistupovat.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.

Když aplikace udělí oprávnění k přístupu k prostředkům v tenantovi (při registraci nebo souhlasu), vytvoří se objekt instančního objektu.When an application is given permission to access resources in a tenant (upon registration or consent), a service principal object is created. Objekt instančního objektu můžete také vytvořit v tenantovi pomocí Azure PowerShell, Azure CLI, Microsoft Graph, Azure Portala dalších nástrojů.You can also create service principal object in a tenant using Azure PowerShell, Azure CLI, Microsoft Graph, the Azure portal, and other tools. Při použití portálu se instanční objekt vytvoří automaticky při registraci aplikace.When using the portal, a service principal is created automatically when you register an application.

Okno podnikové aplikace na portálu slouží k vypsání a správě objektů služby v tenantovi.The Enterprise applications blade in the portal is used to list and manage the service principals in a tenant. Můžete se podívat na oprávnění instančního objektu, uživatelská oprávnění, která uživatelé provedli, kteří si ho udělali, informace o přihlášení a další.You can see the service principal's permissions, user consented permissions, which users have done that consent, sign in information, and more.

Okno podnikových aplikací

Entita Microsoft Graph ServicePrincipal definuje schéma pro vlastnosti objektu instančního objektu.The Microsoft Graph ServicePrincipal entity defines the schema for a service principal object's properties.

Vztah mezi objekty aplikace a instančními objektyRelationship between application objects and service principals

Objekt aplikace je globální reprezentace vaší aplikace pro použití ve všech klientech a instanční objekt je místní reprezentace pro použití v konkrétním tenantovi.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.

Aplikační objekt slouží jako šablona, ze které se odvozují běžné nebo výchozí vlastnosti, které se používají při vytváření odpovídajících instančních objektů.The application object serves as the template from which common and default properties are derived for use in creating corresponding service principal objects. Objekt aplikace má proto vztah 1:1 se softwarovou aplikací a 1: n relace s odpovídajícími objekty instančních služeb.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).

V každém tenantovi, kde se aplikace používá, se musí vytvořit instanční objekt, který mu umožní vytvořit identitu pro přihlášení a/nebo přístup k prostředkům, které klient zabezpečuje.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. Aplikace s jedním tenantem má jenom jeden instanční objekt (ve svém domovském tenantovi), který je vytvořený a odsouhlasený k použití při registraci aplikace.A single-tenant application has only one service principal (in its home tenant), created and consented for use during application registration. Víceklientská webová aplikace/rozhraní API obsahuje taky instanční objekt vytvořený v každém tenantovi, kde uživatel z tohoto tenanta souhlasí s jeho použitím.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.

Poznámka

Všechny změny, které provedete v objektu aplikace, se projeví také v hlavním objektu služby v domovském tenantovi aplikace (tenant, ve kterém byl zaregistrován).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). U aplikací s více klienty se změny v objektu aplikace neprojeví v žádných objektech instančních objektů služby klienta, dokud se přístup neodebere přes přístupový panel aplikace a znovu udělen.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.

Všimněte si také, že nativní aplikace jsou ve výchozím nastavení registrovány jako víceklientské klienty.Also note that native applications are registered as multi-tenant by default.

PříkladExample

Následující diagram znázorňuje vztah mezi objektem aplikace aplikace a odpovídajícími instančními objekty služby v kontextu ukázkové aplikace s více klienty s názvem aplikace HR.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. V tomto ukázkovém scénáři jsou tři klienti Azure AD:There are three Azure AD tenants in this example scenario:

  • Adatum – tenant používaný společností, která vyvinula aplikaci pro HRAdatum - The tenant used by the company that developed the HR app
  • Contoso – tenant používaný organizací contoso, který je příjemcem aplikace pro personální odděleníContoso - The tenant used by the Contoso organization, which is a consumer of the HR app
  • Fabrikam – tenant používaný organizací Fabrikam, který také využívá aplikaci pro personální odděleníFabrikam - The tenant used by the Fabrikam organization, which also consumes the HR app

Vztah mezi objektem aplikace a instančním objektem služby

V tomto ukázkovém scénáři:In this example scenario:

KrokStep PopisDescription
11 Je proces vytváření aplikací a objektů zabezpečení služby v domovském tenantovi aplikace.Is the process of creating the application and service principal objects in the application's home tenant.
22 Když správci společnosti Contoso a Fabrikam dokončí souhlas, vytvoří se v tenantovi služby Azure AD ve své společnosti objekt instančního objektu a přiřadí se mu oprávnění udělená správcem.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. Všimněte si také, že aplikace pro personální oddělení může být nakonfigurovaná/navržená tak, aby umožňovala souhlas uživatelům při individuálním použití.Also note that the HR app could be configured/designed to allow consent by users for individual use.
33 Klienti spotřebitelů aplikace pro personální oddělení (Contoso a Fabrikam) mají vlastní objekt instančního objektu.The consumer tenants of the HR application (Contoso and Fabrikam) each have their own service principal object. Každý představuje použití instance aplikace za běhu, řídí se oprávněním, která souhlasují příslušný správce.Each represents their use of an instance of the application at runtime, governed by the permissions consented by the respective administrator.

Další krokyNext steps