Oggetti applicazione e oggetti entità servizio in Azure Active Directory (Azure AD)

Spesso il significato del termine "applicazione" può essere frainteso quando usato nel contesto di Azure AD. Questo articolo intende chiarire gli aspetti concettuali e concreti dell'integrazione dell'applicazione di Azure AD, con un esempio di registrazione e consenso per un'applicazione multi-tenant.

Panoramica

Un'applicazione che è stata integrata con Azure AD ha delle implicazioni che vanno oltre l'aspetto del software. "Applicazione" viene spesso usato come termine concettuale, che fa riferimento non solo al software applicativo, ma anche alla sua registrazione in Azure AD e al suo ruolo nelle "conversazioni" di autenticazione/autorizzazione in fase di runtime. Per definizione, un'applicazione può funzionare in un ruolo client (che utilizza una risorsa), in un ruolo server di risorse (che espone le API ai client) o in entrambi i ruoli. Il protocollo di conversazione è definito da un flusso di concessione di autorizzazione OAuth 2.0, consentendo al client e alla risorsa di accedere e proteggere, rispettivamente, i dati di una risorsa. Verrà ora approfondito come il modello applicativo di Azure AD rappresenta un'applicazione in fase di progettazione e in fase di esecuzione.

Registrazione dell'applicazione

Quando si registra un'applicazione di Azure AD nel portale di Azure, vengono creati due oggetti nel tenant di Azure AD: un oggetto applicazione e un oggetto entità servizio.

Oggetto applicazione

Un'applicazione di 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. L'entità applicativa di Azure AD Graph definisce lo schema per le proprietà di un oggetto applicazione.

Oggetto entità servizio

L'oggetto entità servizio definisce i criteri e le autorizzazioni per l'uso di un'applicazione in un tenant specifico e costituisce la base per un'entità di sicurezza in cui verrà rappresentata l'applicazione in fase di esecuzione. L'entità ServicePrincipal di Azure AD Graph definisce lo schema delle proprietà di un oggetto entità servizio.

Relazione tra applicazione e entità servizio

Si può considerare l'oggetto applicazione come la rappresentazione globale dell'applicazione usata in tutti i tenant, e l'entità servizio come la rappresentazione locale usata in uno specifico 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. Un oggetto applicazione ha quindi una relazione 1:1 con l'applicazione software e relazioni 1:molti con gli oggetti entità servizio corrispondenti.

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. Un'applicazione single-tenant ha una sola entità servizio (nel relativo tenant principale), creata e autorizzata per essere usata durante la registrazione dell'applicazione. 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.

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. 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.

Si noti anche che le applicazioni native sono registrate come multi-tenant per impostazione predefinita.

Esempio

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. In questo scenario sono presenti tre tenant di Azure AD:

  • Adatum, il tenant usato dalla società che ha sviluppato l'app HR
  • Contoso, il tenant usato dall'organizzazione Contoso, che utilizza l'app HR
  • Fabrikam, il tenant usato dall'organizzazione Fabrikam, che utilizza anch'essa l'app HR

Relazione tra un oggetto applicazione e un oggetto entità servizio

Nel diagramma qui sopra, il passaggio 1 è il processo di creazione degli oggetti applicazione ed entità servizio nel tenant home dell'applicazione.

Nel passaggio 2, 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. Si noti anche che l'app HR potrebbe essere configurata/progettata per permettere il consenso da parte di utenti per l'uso individuale.

Nel Passaggio 3, ogni tenant consumer dell'applicazione HR (Contoso e Fabrikam) dispone del proprio oggetto di entità servizio. Ognuno rappresenta l'uso di un'istanza dell'applicazione in fase di runtime, gestito tramite le autorizzazioni concesse dall'amministratore.

Passaggi successivi

L'oggetto applicazione di un'applicazione è accessibile tramite l'API Graph di Azure AD, l'editor del manifesto dell'applicazione del portale di Azure o i cmdlet PowerShell di Azure AD, come rappresentato dall'Entità applicativa di OData.

L'oggetto entità servizio di un'applicazione è accessibile tramite l'API Graph di Azure AD o i cmdlet PowerShell di Azure AD, come rappresentato dall'Entità ServicePrincipal di OData.

L'Explorer Graph di Azure AD è utile per eseguire query sugli oggetti applicazione ed entità servizio.