Oggetti applicazione e oggetti entità servizio in Azure Active DirectoryApplication and service principal objects in Azure Active Directory

Questo articolo descrive la registrazione dell'applicazione, gli oggetti applicazione e le entità servizio in Azure Active Directory: quali sono, come vengono usati e come sono correlati tra loro.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. Viene inoltre presentato uno scenario di esempio multi-tenant per illustrare la relazione tra l'oggetto applicazione di un'applicazione e gli oggetti entità servizio corrispondenti.A multi-tenant example scenario is also presented to illustrate the relationship between an application's application object and corresponding service principal objects.

Registrazione dell'applicazioneApplication registration

Per delegare le funzioni di gestione delle identità e degli accessi ai Azure AD, un'applicazione deve essere registrata con un tenantdi Azure ad.In order to delegate Identity and Access Management functions to Azure AD, an application must be registered with an Azure AD tenant. Quando si registra l'applicazione con Azure AD, si crea una configurazione di identità per l'applicazione che consente l'integrazione con 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. Quando si registra un'app nella portale di Azure, è possibile scegliere se si tratta di un singolo tenant (accessibile solo nel tenant) o multi-tenant (accessibile ad altri tenant) ed è possibile impostare facoltativamente un URI di reindirizzamento (a cui viene inviato il token di accesso).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).

Registrazione delle app

Al termine della registrazione dell'app, si ha un'istanza univoca globale dell'app (oggetto applicazione) che risiede all'interno del tenant o della directory principale.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. È anche presente un ID univoco globale per l'app (l'ID app o client).You also have a globally unique ID for your app (the app or client ID). Nel portale è quindi possibile aggiungere segreti o certificati e ambiti per eseguire il lavoro dell'app, personalizzare la personalizzazione dell'app nella finestra di dialogo di accesso e altro ancora.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.

Se si registra un'applicazione nel portale, vengono creati automaticamente un oggetto applicazione e un oggetto entità servizio nel tenant principale.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. Se si registra o si crea un'applicazione usando le API di Microsoft Graph, la creazione dell'oggetto entità servizio è un passaggio separato.If you register/create an application using the Microsoft Graph APIs, creating the service principal object is a separate step.

Oggetto applicazioneApplication object

Un'applicazione Azure AD è definita da un solo oggetto applicazione che risiede nel tenant di Azure AD in cui l'applicazione è stata registrata, noto come tenant "Home" dell'applicazione.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 oggetto applicazione viene usato come modello o progetto per creare uno o più oggetti entità servizio.An application object is used as a template or blueprint to create one or more service principal objects. Viene creata un'entità servizio in ogni tenant in cui viene usata l'applicazione.A service principal is created in every tenant where the application is used. Analogamente a una classe nella programmazione orientata a oggetti, l'oggetto applicazione dispone di alcune proprietà statiche applicate a tutte le entità servizio create (o istanze dell'applicazione).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'oggetto applicazione descrive tre aspetti di un'applicazione: il modo in cui il servizio può emettere token per accedere all'applicazione, le risorse a cui l'applicazione potrebbe dover accedere e le azioni che l'applicazione può eseguire.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.

Il pannello registrazioni app nel portale di Azure viene usato per elencare e gestire gli oggetti applicazione nel tenant principale.The App registrations blade in the Azure portal is used to list and manage the application objects in your home tenant.

Pannello Registrazioni app

L' entità dell'applicazione Microsoft Graph definisce lo schema per le proprietà di un oggetto applicazione.The Microsoft Graph Application entity defines the schema for an application object's properties.

Oggetto entità servizioService principal object

Per accedere alle risorse protette da un tenant di Azure AD, l'entità che richiede l'accesso deve essere rappresentata da un'entità di sicurezza.To access resources that are secured by an Azure AD tenant, the entity that requires access must be represented by a security principal. Questo requisito è valido sia per gli utenti (entità utente) che per le applicazioni (entità servizio).This requirement is true for both users (user principal) and applications (service principal). L'entità di sicurezza definisce i criteri di accesso e le autorizzazioni per l'utente/applicazione nel tenant di Azure AD.The security principal defines the access policy and permissions for the user/application in the Azure AD tenant. Ciò abilita le funzionalità di base, ad esempio l'autenticazione dell'utente/applicazione durante l'accesso e l'autorizzazione durante l'accesso alle risorse.This enables core features such as authentication of the user/application during sign-in, and authorization during resource access.

Un'entità servizio è la rappresentazione locale o l'istanza dell'applicazione di un oggetto applicazione globale in un singolo tenant o directory.A service principal is the local representation, or application instance, of a global application object in a single tenant or directory. Un'entità servizio è un'istanza concreta creata dall'oggetto applicazione ed eredita determinate proprietà dall'oggetto applicazione.A service principal is a concrete instance created from the application object and inherits certain properties from that application object. Viene creata un'entità servizio in ogni tenant in cui viene usata l'applicazione e fa riferimento all'oggetto app univoco globale.A service principal is created in each tenant where the application is used and references the globally unique app object. L'oggetto entità servizio definisce le operazioni che l'app può effettivamente eseguire nel tenant specifico, chi può accedere all'app e le risorse a cui l'app può accedere.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.

Quando a un'applicazione viene concesso di accedere alle risorse in un tenant (al momento della registrazione o del consenso), viene creato un oggetto entità servizio.When an application is given permission to access resources in a tenant (upon registration or consent), a service principal object is created. È anche possibile creare un oggetto entità servizio in un tenant usando Azure PowerShell, l'interfaccia della riga di comando di Azure, Microsoft Graph, il portale di Azuree altri strumenti.You can also create service principal object in a tenant using Azure PowerShell, Azure CLI, Microsoft Graph, the Azure portal, and other tools. Quando si usa il portale, un'entità servizio viene creata automaticamente quando si registra un'applicazione.When using the portal, a service principal is created automatically when you register an application.

Il pannello applicazioni aziendali nel portale viene usato per elencare e gestire le entità servizio in un tenant.The Enterprise applications blade in the portal is used to list and manage the service principals in a tenant. È possibile visualizzare le autorizzazioni dell'entità servizio, le autorizzazioni concesse dall'utente, gli utenti che hanno eseguito tale consenso, le informazioni di accesso e altro ancora.You can see the service principal's permissions, user consented permissions, which users have done that consent, sign in information, and more.

Pannello app aziendali

L' entità Microsoft Graph ServicePrincipal definisce lo schema per le proprietà di un oggetto entità servizio.The Microsoft Graph ServicePrincipal entity defines the schema for a service principal object's properties.

Relazione tra gli oggetti applicazione e le entità servizioRelationship between application objects and service principals

L'oggetto applicazione è la rappresentazione globale dell'applicazione da usare in tutti i tenant e l'entità servizio è la rappresentazione locale da usare in un tenant specifico.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'oggetto applicazione funge da modello da cui derivano le proprietà comuni e predefinite per l'uso nella creazione di oggetti entità servizio corrispondenti.The application object serves as the template from which common and default properties are derived for use in creating corresponding service principal objects. Un oggetto applicazione ha quindi una relazione 1:1 con l'applicazione software e una relazione 1:molti con gli oggetti entità servizio corrispondenti.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).

In ogni tenant in cui viene usata l'applicazione è necessario creare un'entità servizio per poter stabilire un'identità per l'iscrizione e/o l'accesso alle risorse che venga protetta da un tenant.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. Un'applicazione single-tenant ha una sola entità servizio (nel relativo tenant principale), creata e autorizzata per essere usata durante la registrazione dell'applicazione.A single-tenant application has only one service principal (in its home tenant), created and consented for use during application registration. Un'applicazione Web/API multi-tenant ha anche un'entità servizio creata in ogni tenant in cui l'utente ha dato il consenso all'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.

Nota

Qualsiasi modifica apportata all'oggetto applicazione verrà riflessa solo nell'oggetto entità servizio nel tenant home dell'applicazione, ovvero nel tenant in cui è stata registrata.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). Per le applicazioni multi-tenant, le modifiche apportate all'oggetto applicazione non vengono riflesse negli oggetti entità servizio dei tenant consumer fino a quando non viene rimosso l'accesso tramite il Pannello di accesso all'applicazione e poi concesso nuovamente.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.

Si noti anche che le applicazioni native sono registrate come multi-tenant per impostazione predefinita.Also note that native applications are registered as multi-tenant by default.

EsempioExample

Il diagramma seguente illustra la relazione tra l'oggetto applicazione e i corrispondenti oggetti entità servizio di un'applicazione, nel contesto di un'applicazione multi-tenant di esempio denominata app 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. In questo scenario di esempio sono presenti tre tenant di Azure AD:There are three Azure AD tenants in this example scenario:

  • Adatum, il tenant usato dalla società che ha sviluppato l'app HRAdatum - The tenant used by the company that developed the HR app
  • Contoso, il tenant usato dall'organizzazione Contoso, che utilizza l'app HRContoso - The tenant used by the Contoso organization, which is a consumer of the HR app
  • Fabrikam, il tenant usato dall'organizzazione Fabrikam, che utilizza anche in questo caso l'app HRFabrikam - The tenant used by the Fabrikam organization, which also consumes the HR app

Relazione tra l'oggetto app e l'oggetto entità servizio

In questo scenario di esempio:In this example scenario:

PassaggioStep DescrizioneDescription
11 È il processo di creazione degli oggetti applicazione ed entità servizio nel tenant principale dell'applicazione.Is the process of creating the application and service principal objects in the application's home tenant.
22 Quando gli amministratori di Contoso e Fabrikam completano il consenso, nel tenant di Azure AD della rispettiva società viene creato un oggetto entità servizio a cui vengono assegnate le autorizzazioni concesse dall'amministratore.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. Si noti anche che l'app HR potrebbe essere configurata/progettata per permettere il consenso da parte di utenti per l'uso individuale.Also note that the HR app could be configured/designed to allow consent by users for individual use.
33 I tenant consumer dell'applicazione HR (Contoso e Fabrikam) dispongono ognuno del proprio oggetto entità servizio.The consumer tenants of the HR application (Contoso and Fabrikam) each have their own service principal object. Ognuno rappresenta l'uso di un'istanza dell'applicazione in fase di runtime, gestito tramite le autorizzazioni concesse dall'amministratore.Each represents their use of an instance of the application at runtime, governed by the permissions consented by the respective administrator.

Passaggi successiviNext steps