Ambiti di autorizzazione | Concetti relativi all'API Graph
Si applica a: API Graph | Azure Active Directory (AD)
L'API Graph espone gli ambiti di autorizzazione OAuth 2.0 che sono usati per controllare l'accesso di un'app ai dati di directory del cliente. Gli sviluppatori possono configurare l'app con gli ambiti di autorizzazione appropriati all'accesso necessario. In genere a tale scopo si usa il portale di Azure. Durante l'accesso, gli utenti o gli amministratori hanno la possibilità di consentire all'app di accedere ai dati di directory con gli ambiti di autorizzazione configurati. Per questo motivo, è necessario selezionare gli ambiti di autorizzazione che offrono il minor livello di privilegio necessario all'applicazione. Per altre informazioni su come configurare le autorizzazioni per l'app e sul processo di consenso, vedere Integrazione di applicazioni con Azure Active Directory.
Importante
Per accedere alle risorse di Azure Active Directory è fortemente consigliabile usare Microsoft Graph anziché l'API di Azure AD Graph. Le attività di sviluppo Microsoft sono ora concentrate su Microsoft Graph e non sono previsti altri miglioramenti per l'API di Azure AD Graph. Può essere ancora opportuno usare questa API in un numero molto limitato di scenari. Per altre informazioni, vedere il post di blog Microsoft Graph or the Azure AD Graph (Microsoft Graph o Azure AD Graph) in Office Developer Center.
Concetti relativi all'ambito di autorizzazione
Confronto tra ambiti di autorizzazione solo app e delegata
Gli ambiti di autorizzazione possono essere solo app o delegata. Gli ambiti solo app (noti anche come ruoli app) concedono all'app il set completo di privilegi offerto dall'ambito. In genere vengono usati da app eseguite come servizio in assenza di utenti connessi. Gli ambiti di autorizzazione delegata sono relativi alle app a cui accede un utente e delegano i privilegi dell'utente connesso all'app, consentendo a quest'ultima di agire in vece dell'utente connesso. Gli effettivi privilegi concessi all'app saranno rappresentati dalla combinazione privilegiata minima (l'intersezione) dei privilegi concessi dall'ambito con quelli in possesso dell'utente connesso. Ad esempio, se l'ambito di autorizzazione concede privilegi delegati per scrivere tutti gli oggetti directory, ma l'utente connesso ha solo privilegi per aggiornare il proprio profilo utente, l'app potrà solo scrivere il profilo dell'utente connesso, ma nessun altro oggetto.
Profili di base e completi per utenti e gruppi
Il profilo completo (o profilo) di un utente o un gruppo include tutte le proprietà dichiarate dell'entità. Poiché il profilo può contenere informazioni riservate sulla directory o informazioni personali, diversi ambiti vincolano l'accesso all'app a un set limitato di proprietà, noto come profilo di base. Per gli utenti, il profilo di base include solo le proprietà seguenti: nome visualizzato, nome e cognome, foto e indirizzo di posta elettronica. Per i gruppi, il profilo di base contiene solo il nome visualizzato.
Dettagli relativi all'ambito di autorizzazione
La tabella seguente elenca gli ambiti di autorizzazione dell'API Graph e illustra l'accesso concesso da ciascuno di essi.
- La colonna Ambito elenca i nomi di ambito. I nomi di ambito assumono la forma risorsa.operazione.vincolo; ad esempio, Group.ReadWrite.All. Se il vincolo è "All", l'ambito garantisce all'app la possibilità di eseguire l'operazione (ReadWrite) in tutte le risorse specificate (Gruppo) nella directory. In caso contrario, l'ambito consente solo l'operazione nel profilo dell'utente connesso. Gli ambiti possono concedere privilegi limitati per l'operazione specificata; per i dettagli, vedere la colonna Descrizione.
- La colonna Autorizzazione mostra in che modo l'ambito verrà visualizzato nel portale di Azure.
- La colonna Descrizione descrive il set completo di privilegi concessi dall'ambito. Per gli ambiti di autorizzazione delegata, l'effettivo accesso concesso all'app sarà rappresentato dalla combinazione privilegiata minima (intersezione) dell'accesso concesso dall'ambito con i privilegi dell'utente connesso.
Ambito | Autorizzazione | Descrizione | Tipo di ambito | Richiede il consenso dell'amministratore |
---|---|---|---|---|
User.Read | Accesso e lettura del profilo utente | Consente agli utenti di accedere all'app e a quest'ultima di leggere il profilo completo dell'utente connesso. Il profilo completo include tutte le proprietà dichiarate dell'entità Utente. User.Read permette all’app di leggere le seguenti informazioni aziendali di base dell’utente connesso (mediante l’oggetto TenantDetail): ID del tenant, nome visualizzato del tenant e domini verificati. L'app non può leggere le proprietà di navigazione, ad esempio il responsabile o i dipendenti diretti. L’app non può leggere la password dell’utente. | delegato | No |
User.ReadBasic.All | Lettura dei profili di base di tutti gli utenti | Consente all'app di leggere il profilo di base di tutti gli utenti nell'organizzazione per conto dell'utente connesso. Il profilo di base di un utente include le proprietà seguenti: nome visualizzato, nome e cognome, foto e indirizzo di posta elettronica. Per leggere i gruppi di cui un utente è membro, l'app richiederà anche gli ambiti Group.Read.All o Group.ReadWrite.All. | delegato | No |
User.Read.All | Lettura dei profili completi di tutti gli utenti | Uguale a User.ReadBasic.All, tranne per il fatto che consente all'app di leggere il profilo completo di tutti gli utenti nell'organizzazione e durante la lettura delle proprietà di navigazione come responsabile e dipendenti diretti. Il profilo completo include tutte le proprietà dichiarate dell'entità Utente. Per leggere i gruppi di cui un utente è membro, l'app richiederà anche l'ambito Group.Read.All o Group.ReadWrite.All. L’app non può leggere le password degli utenti. | delegato | sì |
Group.Read.All | Lettura di tutti i gruppi (anteprima) | Consente all'app di leggere il profilo di base di tutti i gruppi nell'organizzazione per conto dell'utente connesso. L'app può anche leggere il profilo di base dei gruppi di cui un gruppo è membro. Il profilo di base per un gruppo include solo il nome visualizzato del gruppo. Per leggere le informazioni sul profilo dei membri di un gruppo, l'app richiederà anche gli ambiti User.ReadBasic o User.Read.All. | delegato | sì |
Group.ReadWrite.All | Lettura e scrittura di tutti i gruppi (anteprima) | Consente all'app di leggere il profilo completo di tutti i gruppi nell'organizzazione, nonché creare e aggiornare i gruppi per conto dell'utente connesso. L'app può anche leggere il profilo completo dei gruppi di cui un gruppo è membro. Il profilo completo include tutte le proprietà dichiarate dell'entità Gruppo. Per leggere i profili o aggiornare i membri di un gruppo, l'app richiederà anche gli ambiti User.ReadBasic o User.Read.All. | delegato | sì |
Device.ReadWrite.All | Lettura e scrittura di tutti i dispositivi | Consente all'app di leggere e scrivere tutte le proprietà del dispositivo senza un utente connesso. Non consente la creazione di un dispositivo, l'eliminazione di un dispositivo o l'aggiornamento di identificatori di protezione alternativi del dispositivo. | solo app | sì |
Directory.Read.All | Lettura dati directory | Consente all'app di leggere tutti i dati nella directory dell'organizzazione, ad esempio utenti, gruppi e app, oltre alle proprietà di navigazione associate. Nota: gli utenti possono fornire il consenso alle app che richiedono tale autorizzazione, se l'app è registrata nel tenant dell'organizzazione. | solo app, delegato | sì |
Directory.ReadWrite.All | Lettura e scrittura di dati directory | Consente all'app di leggere tutti i dati nella directory dell'organizzazione. Consente all'app di creare e aggiornare utenti e gruppi e aggiornare le relative proprietà di navigazione, ma impedisce l'eliminazione di utenti o gruppi. Consente all'app anche di definire le estensioni dello schema nelle applicazioni. Per un elenco dettagliato dei privilegi, vedere la sezione Dettagli sui privilegi Directory.ReadWrite.All più avanti. | solo app, delegato | sì |
Directory.AccessAsUser.All | Accesso alla directory come utente connesso | Concede all'app lo stesso livello di accesso ai dati nella directory dell'organizzazione dell'utente connesso. Nota: un'app client nativa può richiedere all'utente di esprimere il consenso a questa autorizzazione; tuttavia, un'app Web richiede il consenso dell'amministratore. | delegato | sì |
Nota: per impostazione predefinita, quando si crea un'app usando il portale di Azure, Azure AD le assegna l'ambito di autorizzazione delegata User.Read.
Dettagli sui privilegi Directory.ReadWrite.All
L'ambito di autorizzazione Directory.ReadWrite.All concede i privilegi seguenti:
- Lettura completa di tutti gli oggetti directory (sia proprietà dichiarate che proprietà di navigazione)
- Creazione e aggiornamento degli utenti
- Disabilitazione e abilitazione degli utenti (ma non dell'amministratore della società)
- Impostazione dell'ID di sicurezza alternativo dell'utente (ma non degli amministratori)
- Creazione e aggiornamento dei gruppi
- Gestione dell'appartenenza a gruppi
- Aggiornamento del proprietario di un gruppo
- Gestione delle assegnazioni delle licenze
- Definizione delle estensioni dello schema nelle app
- Consente di impostare una password quando si crea un utente.
- Nota: nessun diritto a reimpostare le password utente
- Nota: nessun diritto di lettura delle password utente
- Nota: nessun diritto a eliminare le entità (inclusi gli utenti o i gruppi)
- Nota: esclude specificamente la creazione o l'aggiornamento di entità non elencate in precedenza. Sono incluse: Application, Oauth2PermissionGrant, AppRoleAssignment, Device, ServicePrincipal, TenantDetail, domini, ecc.
Scenari relativi all'ambito di autorizzazione
La tabella seguente mostra gli ambiti di autorizzazione necessari perché un'app possa eseguire operazioni specifiche. Si noti che in alcuni casi la possibilità dell'app di eseguire alcune operazioni dipenderà dalla natura dell'ambito di autorizzazione, cioè solo app o delegata e, nel caso di ambiti di autorizzazione delegate, dai privilegi dell'utente connesso.
Scenario | Accesso obbligatorio | Ambito di autorizzazione necessario |
---|---|---|
Accesso e visualizzazione di un riquadro con il nome dell'utente e una foto di anteprima. | Lettura del profilo completo dell'utente connesso. Lettura delle informazioni di base sulla società. |
User.Read |
Selezione utenti di base. | Lettura del profilo di base di tutti gli utenti per conto dell'utente connesso. | User.ReadBasic.All |
Selezione utenti con profilo completo. | Come sopra, ma con accesso al profilo completo degli utenti per conto dell'utente connesso. | User.Read.All |
Struttura organigramma. | Lettura del profilo completo di tutti gli utenti, i relativi responsabili e i dipendenti diretti per conto dell'utente connesso. | User.Read.All |
Selezione utenti che include gruppi per il controllo di accesso all'app. Visualizzatore gruppo e appartenenza. |
Lettura del profilo di base di tutti i gruppi e gli utenti per conto dell'utente connesso. Lettura dei profili dell'utente di base per i responsabili e i dipendenti diretti degli utenti. Lettura del profilo di base dell'appartenenza a gruppi degli utenti. Lettura del profilo di base dell'appartenenza a gruppi dei gruppi. Lettura del profilo di base dei membri dei gruppi |
User.ReadBasic.All e Group.Read.All |
Visualizzazione del profilo dell'utente connesso e del responsabile, dei dipendenti diretti e dell'appartenenza a gruppi dell'utente. | Uso delle operazioni me per la lettura di: Profilo completo dell'utente connesso. Profilo completo del responsabile e dei dipendenti diretti dell'utente connesso. Profilo di base dei gruppi di cui l'utente connesso è membro. Nota: la combinazione dei due ambiti concede l'accesso più esteso rispetto a quello indicato di seguito per le operazioni me . |
User.Read.All e Group.Read.All |
Servizio di gestione dei gruppi che consente agli utenti di creare e gestire gruppi. | Lettura del profilo completo di tutti i gruppi e gli utenti per conto dell'utente connesso. Lettura dei profili completi dei responsabili e dipendenti diretti dell'utente. Lettura del profilo completo dell'appartenenza a gruppi degli utenti. Lettura del profilo completo dell'appartenenza a gruppi dei gruppi. Lettura del profilo completo dei membri dei gruppi. Creazione e aggiornamento dei gruppi e delle relative proprietà di navigazione (membri). |
User.Read.All e Group.ReadWrite.All |
Lettura di tutti gli oggetti directory (incluse le proprietà di navigazione). | Directory.Read.All | |
Lettura di tutti gli oggetti directory (incluse le proprietà di navigazione). Creazione e aggiornamento degli oggetti utente e gruppo. Nessuna eliminazione di utenti o gruppi. Nota: non tutti i privilegi concessi sono qui elencati. |
Directory.ReadWrite.All | |
Agire come utente connesso. | Lettura e scrittura di tutti gli oggetti directory (incluse le proprietà di navigazione) per conto dell'utente connesso. | Directory.AccessAsUser.All |
Accesso predefinito per amministratori, utenti e utenti Guest
La tabella seguente elenca l'accesso predefinito di amministratori (globali), utenti e utenti Guest nella directory. L'accesso predefinito può essere ulteriormente aumentato o limitato in base alle impostazioni di configurazione per la directory e/o l'appartenenza dell'utente a uno o più ruoli di directory. Per informazioni più dettagliate sulla configurazione dell'accesso di utenti e utenti Guest ai dati della directory, vedere Creare o modificare utenti in Azure AD. Per altre informazioni sull'accesso associato a diversi ruoli di directory, vedere Assegnazione dei ruoli di amministratore in Azure AD.
Tipo di utente | Accesso |
---|---|
Amministratore globale | Lettura di tutti gli oggetti directory. Creazione, aggiornamento ed eliminazione di tutti gli oggetti directory |
User | Lettura di tutti gli oggetti directory. Creazione di applicazioni e di entità servizio associate. Aggiornamento del relativo profilo. Aggiornamento dei gruppi di cui sono proprietari (e della proprietà members). Aggiornamento delle applicazioni e delle entità servizio di cui sono proprietari. Eliminazione delle applicazioni e delle entità servizio di cui sono proprietari. |
Utente Guest | Lettura del profilo completo. Lettura dei profili di base di tutti gli altri utenti Lettura del profilo di base di tutti i gruppi. Lettura delle applicazioni. Aggiornamento di alcune proprietà del profilo. Nessuna ricerca di utenti o gruppi (vedere Limitazioni della ricerca di utenti e gruppi per gli utenti Guest di seguito). |
Limitazioni della ricerca di utenti e gruppi per gli utenti Guest
Le funzionalità di ricerca utenti e gruppi consentono all'app di cercare eventuali utenti o gruppi nella directory del cliente eseguendo query sul set di risorse utenti e gruppi (ad esempio, https://graph.windows.net/myorganization/users?api-version=1.6
). Sia gli amministratori che gli utenti possono usare questa funzionalità, ma non gli utenti Guest. Se l'utente connesso è un utente Guest, a seconda dell'ambito di autorizzazione, un'app può leggere il profilo di un utente o gruppo specifico usando l'ID oggetto oppure il nome dell'entità utente (UPN) per un utente o l'ID oggetto per un gruppo (ad esempio, https://graph.windows.net/myorganization/users/241f22af-f634-44c0-9a15-c8cd2cea5531?api-version=1.6
); tuttavia, non è possibile eseguire query sul set di risorse utenti o gruppi che potrebbe richiedere più di un'entità. Ad esempio, a seconda dell'ambito di autorizzazione, l'app può leggere i profili degli utenti o dei gruppi che ottiene seguendo i collegamenti nelle proprietà di navigazione, ma non può eseguire una query per restituire tutti gli utenti o i gruppi nella directory.
Risorse aggiuntive
- Azure AD Graph API reference (Informazioni di riferimento sull'API di Azure AD Graph)