Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Alcune autorizzazioni richiedono il consenso di un amministratore prima di poter essere concesse all'interno di un tenant. È anche possibile usare l'endpoint di consenso amministratore per concedere le autorizzazioni a un intero tenant.
Operazione consigliata: richiedere l'accesso dell'utente all'app
In genere, durante la compilazione di un'applicazione che usa l'endpoint di consenso dell'amministratore, l'app necessita di una pagina o vista che consenta all'amministratore di approvare le autorizzazioni dell'applicazione. Questa pagina può far parte del flusso di accesso all'app, delle impostazioni dell'app oppure può trattarsi di un flusso di connessione dedicato. In molti casi, è opportuno che l'app mostri questa visualizzazione di connessione solo dopo che un utente ha eseguito l'accesso con un account Microsoft aziendale o dell'istituto di istruzione.
Quando fa accedere l'utente all'app, è possibile identificare l'organizzazione a cui appartiene l'amministratore prima di chiedergli di approvare le autorizzazioni necessarie. Anche se non strettamente necessario, questo può essere utile per creare un'esperienza più intuitiva per gli utenti aziendali.
Richiedere le autorizzazioni da un amministratore della directory
Quando si è pronti per richiedere le autorizzazioni all'amministratore dell'azienda, è possibile reindirizzare l'utente all'endpoint di consenso amministratore di Microsoft Identity Platform.
https://login.microsoftonline.com/{tenant}/v2.0/adminconsent
?client_id=00001111-aaaa-2222-bbbb-3333cccc4444
&scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
&redirect_uri=http://localhost/myapp/permissions
&state=12345
Parametro | Condizione | Descrizione |
---|---|---|
tenant |
Obbligatorio | Il tenant della directory da cui si desidera ottenere autorizzazione. Può essere fornito in formato GUID o nome descrittivo OPPURE a cui si fa riferimento in modo generico con organizations come illustrato nell'esempio. Non usare "common", perché gli account personali non possono fornire il consenso amministratore tranne nel contesto di un tenant. Per garantire la massima compatibilità con gli account personali che gestiscono i tenant, usare l'ID tenant quando possibile. |
client_id |
Obbligatorio | L'ID applicazione (client) che la funzionalità Microsoft Entra admin center – Registrazioni app ha assegnato all'app. |
redirect_uri |
Obbligatorio | URI di reindirizzamento in cui si desidera che venga inviata la risposta per la gestione da parte dell'app. Deve corrispondere esattamente a uno degli URI di reindirizzamento registrati nel portale di registrazione delle applicazioni. |
state |
Consigliato | Valore incluso nella richiesta che verrà restituito anche nella risposta del token. Può trattarsi di una stringa di qualsiasi contenuto. Usare questo stato per codificare le informazioni sullo stato dell'utente nell'app prima dell'esecuzione della richiesta di autenticazione, ad esempio la pagina o la vista in cui si trovava. |
scope |
Obbligatorio | Definisce il set di autorizzazioni che vengono richieste dall'applicazione. Può essere statico (usando /.default ) o ambiti dinamici. Può includere gli ambiti OIDC (openid , profile , email ). |
A questo punto, Microsoft Entra ID richiede a un amministratore tenant di accedere per completare la richiesta. All'amministratore viene chiesto di approvare tutte le autorizzazioni richieste nel scope
parametro . Se è stato usato un valore statico (/.default
), funzionerà come l'endpoint di consenso amministratore v1.0 e richiederà il consenso per tutti gli ambiti presenti nelle autorizzazioni necessarie (sia utente che app). Per richiedere le autorizzazioni dell'app, è necessario usare il /.default
valore . Se non si vuole che gli amministratori visualizzino una determinata autorizzazione nella schermata di consenso amministratore per tutto il tempo in cui si usa /.default
, la procedura consigliata consiste nel non inserire l'autorizzazione nella sezione autorizzazioni necessarie. È invece possibile usare il consenso dinamico per aggiungere le autorizzazioni che si desidera includere nella schermata di consenso in fase di esecuzione, anziché usare /.default
.
Risposta riuscita
Se l'amministratore approva le autorizzazioni per l'app, la risposta con esito positivo sarà simile alla seguente:
http://localhost/myapp/permissions
?admin_consent=True
&tenant=aaaabbbb-0000-cccc-1111-dddd2222eeee
&scope=https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Mail.Send
&state=12345
Parametro | Descrizione |
---|---|
tenant |
Il tenant della directory, in formato GUID, che ha concesso le autorizzazioni richieste dall'applicazione. |
state |
Valore incluso nella richiesta che verrà restituito anche nella risposta del token. Può trattarsi di una stringa di qualsiasi contenuto. Lo stato viene usato per codificare informazioni sullo stato dell'utente nell'app prima che si sia verificata la richiesta di autenticazione, ad esempio la pagina o la visualizzazione in cui si trovavano. |
scope |
Set di autorizzazioni a cui è stato concesso l'accesso per l'applicazione. |
admin_consent |
Verrà impostato su True . |
Avvertimento
Non usare mai il valore ID tenant del tenant
parametro per autenticare o autorizzare gli utenti. Il valore dell'ID tenant può essere aggiornato e inviato da attori malintenzionati per rappresentare una risposta all'app. Ciò può causare l'esposizione dell'applicazione agli eventi imprevisti di sicurezza.
Risposta di errore
http://localhost/myapp/permissions
?admin_consent=True
&error=consent_required
&error_description=AADSTS65004%3a+The+resource+owner+or+authorization+server+denied+the+request.%0d%0aTrace+ID%3a+0000aaaa-11bb-cccc-dd22-eeeeee333333%0d%0aCorrelation+ID%3a+8478d534-5b2c-4325-8c2c-51395c342c89%0d%0aTimestamp%3a+2019-09-24+18%3a34%3a26Z
&state=12345
L'aggiunta ai parametri visualizzati in una risposta con esito positivo, i parametri di errore vengono visualizzati di seguito.
Parametro | Descrizione |
---|---|
error |
Stringa di codice di errore che può essere usata per classificare i tipi di errori che si verificano e può essere usata per reagire agli errori. |
error_description |
Messaggio di errore specifico che può aiutare uno sviluppatore a identificare la causa radice di un errore. |
state |
Valore incluso nella richiesta che verrà restituito anche nella risposta del token. Può trattarsi di una stringa di qualsiasi contenuto. Lo stato viene usato per codificare informazioni sullo stato dell'utente nell'app prima che si sia verificata la richiesta di autenticazione, ad esempio la pagina o la visualizzazione in cui si trovavano. |
admin_consent |
Verrà impostato su True per indicare che questa risposta si è verificata in un flusso di consenso amministratore. |
Passaggi successivi
- Vedere come convertire un'app in multi-tenant
- Informazioni sul supporto del consenso a livello di protocollo OAuth 2.0 durante il flusso di concessione del codice di autorizzazione.
- Informazioni su come un'applicazione multi-tenant può usare il framework di consenso per implementare il consenso "utente" e "amministratore", supportando modelli di applicazione multilivello più avanzati.
- Informazioni sulle esperienze di consenso dell'applicazione Microsoft Entra