Come vengono aggiunte le applicazioni in Azure AD e perchéHow and why applications are added to Azure AD

In Azure AD ci sono due rappresentazioni delle applicazioni:There are two representations of applications in Azure AD:

  • Oggetti applicazione: anche se ci sono alcune eccezioni, questi oggetti possono essere considerati la definizione di un'applicazione.Application objects - Although there are exceptions, application objects can be considered the definition of an application.
  • Entità servizio: questi oggetti possono essere considerati un'istanza di un'applicazione.Service principals - Can be considered an instance of an application. Le entità servizio in genere fanno riferimento a un oggetto applicazione e a ogni oggetto applicazione possono fare riferimento più entità servizio in diverse directory.Service principals generally reference an application object, and one application object can be referenced by multiple service principals across directories.

Cosa sono gli oggetti applicazione e da dove provengono?What are application objects and where do they come from?

È possibile gestire gli oggetti applicazione nel portale di Azure tramite l'esperienza Registrazioni per l'app.You can manage application objects in the Azure portal through the App Registrations experience. Gli oggetti applicazione descrivono l'applicazione ad Azure AD e possono essere considerati la definizione dell'applicazione, che consente al servizio di sapere come rilasciare token per l'applicazione in base alle relative impostazioni.Application objects describe the application to Azure AD and can be considered the definition of the application, allowing the service to know how to issue tokens to the application based on its settings. L'oggetto applicazione è disponibile solo nella relativa home directory, anche se si tratta di un'applicazione multi-tenant che supporta entità servizio in altre directory.The application object will only exist in its home directory, even if it's a multi-tenant application supporting service principals in other directories. L'oggetto applicazione può includere gli elementi seguenti (oltre che informazioni aggiuntive non elencate):The application object may include any of the following (as well as additional information not mentioned here):

  • Nome, logo ed editoreName, logo, and publisher
  • URL di rispostaReply URLs
  • Segreti (chiavi simmetriche e/o asimmetriche usate per autenticare l'applicazione)Secrets (symmetric and/or asymmetric keys used to authenticate the application)
  • Dipendenze API (OAuth)API dependencies (OAuth)
  • API/risorse/ambiti pubblicati (OAuth)Published APIs/resources/scopes (OAuth)
  • Ruoli app (Controllo degli accessi in base al ruolo)App roles (RBAC)
  • Configurazione e metadati SSOSSO metadata and configuration
  • Metadati e configurazione del provisioning utentiUser provisioning metadata and configuration
  • Metadati e configurazione proxyProxy metadata and configuration

È possibile creare oggetti applicazione in più modi, tra cui:Application objects can be created through multiple pathways, including:

  • Registrazione delle applicazioni nel portale di AzureApplication registrations in the Azure portal
  • Creazione di una nuova applicazione con Visual Studio e configurazione dell'applicazione per l'uso dell'autenticazione di Azure ADCreating a new application using Visual Studio and configuring it to use Azure AD authentication
  • Quando un amministratore aggiunge un'applicazione dalla raccolta di app (in questo caso viene creata anche un'entità servizio)When an admin adds an application from the app gallery (which will also create a service principal)
  • Usando l'API Microsoft Graph, l'API Graph di Azure AD o PowerShell per creare una nuova applicazioneUsing the Microsoft Graph API, Azure AD Graph API, or PowerShell to create a new application
  • Molti altri modi, tra cui diverse esperienze di sviluppo in Azure ed esperienze di esplorazione API nei centri per sviluppatoriMany others including various developer experiences in Azure and in API explorer experiences across developer centers

Cosa sono le entità servizio e da dove provengono?What are service principals and where do they come from?

È possibile gestire le entità servizio nel portale di Azure tramite l'esperienza Applicazioni aziendali.You can manage service principals in the Azure portal through the Enterprise Applications experience. Le entità servizio sono oggetti che governano un'applicazione che si connette ad Azure AD e possono essere considerate come l'istanza dell'applicazione nella directory.Service principals are what govern an application connecting to Azure AD and can be considered the instance of the application in your directory. Per ogni applicazione specifica possono esserci più di un oggetto applicazione (registrato in una "home" directory) e uno o più oggetti entità servizio che rappresentano le istanze dell'applicazione in ogni directory in cui è in funzione.For any given application, it can have at most one application object (which is registered in a "home" directory) and one or more service principal objects representing instances of the application in every directory in which it acts.

L'entità servizio può includere:The service principal can include:

  • Un riferimento a un oggetto applicazione tramite la proprietà ID applicazioneA reference back to an application object through the application ID property
  • Record delle assegnazioni di ruolo dell'applicazione a gruppi e utenti localiRecords of local user and group application-role assignments
  • Record delle autorizzazioni amministratore e utente locali concesse all'applicazioneRecords of local user and admin permissions granted to the application
    • Ad esempio, l'autorizzazione dell'applicazione ad accedere a un indirizzo di posta elettronica di un utente specificoFor example: permission for the application to access a particular user's email
  • Record dei criteri locali, inclusi i criteri di accesso condizionaleRecords of local policies including conditional access policy
  • Record delle impostazioni locali alternative per un'applicazioneRecords of alternate local settings for an application
    • Regole di trasformazione delle attestazioniClaims transformation rules
    • Mapping degli attributi (provisioning utenti)Attribute mappings (User provisioning)
    • Ruoli dell'app specifici della directory (se l'applicazione supporta i ruoli personalizzati)Directory-specific app roles (if the application supports custom roles)
    • Nome o logo specifico della directoryDirectory-specific name or logo

Come gli oggetti applicazione, anche gli oggetti entità servizio possono essere creati in più modi, tra cui:Like application objects, service principals can also be created through multiple pathways including:

  • Quando gli utenti accedono a un'applicazione di terze parti integrata con Azure ADWhen users sign in to a third-party application integrated with Azure AD
    • Durante la procedura di accesso, agli utenti viene chiesto di concedere all'applicazione l'autorizzazione ad accedere al proprio profilo e altri tipi di autorizzazioni.During sign-in, users are asked to give permission to the application to access their profile and other permissions. Quando viene dato il primo consenso da un utente, l'entità servizio che rappresenta l'applicazione viene aggiunta alla directory.The first person to give consent causes a service principal that represents the application to be added to the directory.
  • Quando un utente accede ai Microsoft Online Services, ad esempio Office 365When users sign in to Microsoft online services like Office 365
    • Quando si effettua l'abbonamento a Office 365 o si avvia una versione di valutazione, vengono create una o più entità servizio nella directory che rappresentano i vari servizi usati per fornire tutte le funzionalità associate a Office 365.When you subscribe to Office 365 or begin a trial, one or more service principals are created in the directory representing the various services that are used to deliver all of the functionality associated with Office 365.
    • Alcuni servizi di Office 365 come SharePoint creano entità servizio in modo continuativo, per consentire la comunicazione sicura tra i componenti, inclusi i flussi di lavoro.Some Office 365 services like SharePoint create service principals on an ongoing basis to allow secure communication between components including workflows.
  • Quando un amministratore aggiunge un'applicazione dalla raccolta di app (in questo caso viene creato anche un oggetto app sottostante)When an admin adds an application from the app gallery (this will also create an underlying app object)
  • Aggiungere un'applicazione per l'uso di Azure AD Application ProxyAdd an application to use the Azure AD Application Proxy
  • Connettere un'applicazione per l'accesso Single Sign-On tramite SAML o l'accesso SSO basato su passwordConnect an application for single sign on using SAML or password single sign-on (SSO)
  • A livello di codice tramite l'API Graph di Azure AD o PowerShellProgrammatically via the Azure AD Graph API or PowerShell

Un'applicazione ha un oggetto applicazione nella relativa home directory a cui fanno riferimento una o più entità di servizio in ognuna delle directory in cui è in funzione (inclusa la home directory dell'applicazione).An application has one application object in its home directory that is referenced by one or more service principals in each of the directories where it operates (including the application's home directory). Diagramma che illustra l'interazione tra oggetti applicazione ed entità servizio nelle istanze di Azure AD.A diagram illustrating how application objects and service principals interact with each other and Azure AD instances.

Nel diagramma precedente Microsoft mantiene internamente due directory (visualizzate a sinistra) usate per pubblicare le applicazioni:In the preceding diagram, Microsoft maintains two directories internally (shown on the left) that it uses to publish applications:

  • Una per le app Microsoft (directory di servizi Microsoft)One for Microsoft Apps (Microsoft services directory)
  • Una per le applicazioni di terze parti preintegrate (directory della raccolta di app)One for pre-integrated third-party applications (App gallery directory)

I fornitori/editori di applicazioni che procedono all'integrazione con Azure AD devono avere una directory di pubblicazione (illustrata a destra come directory SaaS).Application publishers/vendors who integrate with Azure AD are required to have a publishing directory (shown on the right as "Some SaaS Directory").

Le applicazioni aggiunte dall'utente (indicate come app dell'utente al centro del diagramma) includono:Applications that you add yourself (represented as App (yours) in the diagram) include:

  • App sviluppate dall'utente (integrate con Azure AD)Apps you developed (integrated with Azure AD)
  • App connesse per l'accesso Single Sign-OnApps you connected for single-sign-on
  • App pubblicate tramite Azure AD Application ProxyApps you published using the Azure AD application proxy

Note ed eccezioniNotes and exceptions

  • Non tutte le entità servizio fanno riferimento a un oggetto applicazione.Not all service principals point back to an application object. Al momento dello sviluppo inziale di Azure AD, i servizi forniti alle applicazioni erano più limitati e l'entità servizio era sufficiente per stabilire l'identità di un'applicazione.When Azure AD was originally built the services provided to applications were more limited and the service principal was sufficient for establishing an application identity. L'entità servizio originale assomigliava più all'account del servizio di Windows Server Active Directory.The original service principal was closer in shape to the Windows Server Active Directory service account. Per questo motivo, è ancora possibile creare entità servizio in modi diversi, ad esempio usando Azure AD PowerShell, senza dover prima creare un oggetto applicazione.For this reason, it's still possible to create service principals through different pathways, such as using Azure AD PowerShell, without first creating an application object. L'API Graph di Azure AD richiede che sia disponibile un oggetto applicazione prima di creare un'entità servizio.The Azure AD Graph API requires an application object before creating a service principal.
  • Non tutte le informazioni riportate sopra sono al momento esposte a livello di codice.Not all of the information described above is currently exposed programmatically. Le funzionalità seguenti sono disponibili solo nell'interfaccia utente:The following are only available in the UI:
    • Regole di trasformazione delle attestazioniClaims transformation rules
    • Mapping degli attributi (provisioning utenti)Attribute mappings (User provisioning)
  • Per informazioni dettagliate su oggetti applicazione ed entità servizio, vedere la documentazione di riferimento dell'API REST di Azure AD Graph:For more detailed information on the service principal and application objects, see the Azure AD Graph REST API reference documentation:

Perché le applicazioni vengono integrate con Azure AD?Why do applications integrate with Azure AD?

Le applicazioni vengono aggiunte ad Azure AD per sfruttare uno o più dei servizi offerti, tra cui:Applications are added to Azure AD to leverage one or more of the services it provides including:

  • Autenticazione e autorizzazione delle applicazioni.Application authentication and authorization
  • Autenticazione e autorizzazione degli utenti.User authentication and authorization
  • Accesso SSO tramite federazione o password.SSO using federation or password
  • Provisioning e sincronizzazione degli utenti.User provisioning and synchronization
  • Controllo degli accessi in base al ruolo. È possibile usare la directory per definire i ruoli dell'applicazione per eseguire i controlli di autorizzazione in base al ruolo in un'applicazione.Role-based access control - Use the directory to define application roles to perform role-based authorization checks in an application
  • Servizi di autorizzazione OAuth (usati da Office 365 e altre applicazioni Microsoft per autorizzare l'accesso ad API e risorse).OAuth authorization services - Used by Office 365 and other Microsoft applications to authorize access to APIs/resources
  • Proxy e pubblicazione dell'applicazione. È possibile pubblicare un'applicazione in Internet da una rete privata.Application publishing and proxy - Publish an application from a private network to the internet

Chi è autorizzato ad aggiungere applicazioni alla mia istanza di Azure AD?Who has permission to add applications to my Azure AD instance?

Mentre ci sono alcune attività che solo gli amministratori globali possono svolgere (ad esempio l'aggiunta di applicazioni dalla raccolta di app e la configurazione di un'applicazione per usare il proxy di applicazione), per impostazione predefinita tutti gli utenti nella directory hanno i diritti per registrare gli oggetti applicazione che stanno sviluppando, oltre che la possibilità di scegliere quali applicazioni condividere e a quali consentire l'accesso ai dati aziendali tramite consenso.While there are some tasks that only global administrators can do (such as adding applications from the app gallery and configuring an application to use the Application Proxy) by default all users in your directory have rights to register application objects that they are developing and discretion over which applications they share/give access to their organizational data through consent. Se l'utente della directory che accede per la prima volta a un'applicazione concede il consenso, verrà creata un'entità servizio nel tenant. In caso contrario, le informazioni di concessione del consenso verranno archiviate nell'entità servizio esistente.If a person is the first user in your directory to sign in to an application and grant consent, that will create a service principal in your tenant; otherwise, the consent grant information will be stored on the existing service principal.

Anche se il fatto di concedere agli utenti di registrarsi e dare il consenso alle applicazioni può inizialmente destare qualche preoccupazione, tenere presente quanto segue:Allowing users to register and consent to applications might initially sound concerning, but keep the following in mind:

  • Le applicazioni hanno usato Windows Server Active Directory per autenticare gli utenti per anni senza richiedere la registrazione dell'applicazione nella directory.Applications have been able to leverage Windows Server Active Directory for user authentication for many years without requiring the application to be registered or recorded in the directory. Ora le organizzazioni hanno maggiore visibilità sul numero esatto di applicazioni che usano la directory e sul relativo scopo.Now the organization will have improved visibility to exactly how many applications are using the directory and for what purpose.
  • Delegando queste responsabilità agli utenti si evita la necessità di un processo di pubblicazione e di registrazione dell'applicazione basato su amministratore.Delegating these responsibilities to users negates the need for an admin-driven application registration and publishing process. Con Active Directory Federation Services (ADFS) un amministratore doveva in genere aggiungere un'applicazione come relying party per conto degli sviluppatori.With Active Directory Federation Services (ADFS) it was likely that an admin had to add an application as a relying party on behalf of their developers. Ora gli sviluppatori possono eseguire queste operazioni in modo indipendente.Now developers can self-service.
  • L'accesso alle applicazioni da parte degli utenti per scopi lavorativi tramite un account aziendale è un fatto positivo.Users signing in to applications using their organization accounts for business purposes is a good thing. Se successivamente gli utenti lasciano l'azienda, perdono automaticamente l'accesso al proprio account nelle applicazioni in uso.If they subsequently leave the organization they will automatically lose access to their account in the application they were using.
  • È positivo anche il fatto di poter tenere sotto controllo quali dati sono stati condivisi e con quali applicazioni.Having a record of what data was shared with which application is a good thing. I dati sono più trasportabili che mai ed è quindi utile sapere chi ha condiviso determinati dati e con quali applicazioni.Data is more transportable than ever and it's useful to have a clear record of who shared what data with which applications.
  • I proprietari di API che usano Azure AD per OAuth stabiliscono esattamente quali sono le autorizzazioni che gli utenti possono concedere alle applicazioni e quali autorizzazioni richiedono il consenso da parte dell'amministratore.API owners who use Azure AD for OAuth decide exactly what permissions users are able to grant to applications and which permissions require an admin to agree to. Solo gli amministratori possono dare il consenso per ambiti più ampi e autorizzazioni più significative, mentre il consenso degli utenti è limitato alle funzionalità e ai dati degli utenti stessi.Only admins can consent to larger scopes and more significant permissions, while user consent is scoped to the users' own data and capabilities.
  • Quando un utente aggiunge un'applicazione o consente all'applicazione di accedere ai propri dati, l'evento può essere controllato, quindi è possibile visualizzare i report di controllo nel portale di Azure per determinare il modo in cui un'applicazione è stata aggiunta alla directory.When a user adds or allows an application to access their data, the event can be audited so you can view the Audit Reports within the Azure portal to determine how an application was added to the directory.

Se si vuole comunque impedire agli utenti nella directory di registrare le applicazioni e di accedere alle applicazioni senza l'approvazione dell'amministratore, ci sono due impostazioni che è possibile modificare per disattivare queste funzionalità:If you still want to prevent users in your directory from registering applications and from signing in to applications without administrator approval, there are two settings that you can change to turn off those capabilities:

  • Per impedire agli utenti di dare il consenso alle applicazioni per proprio conto:To prevent users from consenting to applications on their own behalf:
    1. Nel portale di Azure passare alla sezione Impostazioni utente in Applicazioni aziendali.In the Azure portal, go to the User settings section under Enterprise applications.
    2. Impostare l'opzione Gli utenti possono fornire il consenso alle app che accedono ai dati aziendali per loro conto su No.Change Users can consent to apps accessing company data on their behalf to No. > [!NOTE] > Se si decide di disattivare il consenso dell'utente, un amministratore dovrà fornire il consenso per qualsiasi nuova applicazione che un utente deve usare.If you decide to turn off user consent, an admin will be required to consent to any new application a user needs to use.
  • Per impedire agli utenti di registrare le proprie applicazioni:To prevent users from registering their own applications:
    1. Nel portale di Azure passare alla sezione Impostazioni utente in Azure Active DirectoryIn the Azure portal, go to the User settings section under Azure Active Directory
    2. Impostare l'opzione Gli utenti possono registrare applicazioni su No.Change Users can register applications to No.

Nota

Microsoft usa la configurazione predefinita che consente agli utenti di registrare le applicazioni e fornire il consenso alle applicazioni per proprio conto.Microsoft itself uses the default configuration with users able to register applications and consent to applications on their own behalf.