Concedere il consenso amministratore a livello di tenant alle applicazioni

Completato

Per le applicazioni sviluppate dall'organizzazione o per quelle registrate direttamente nel tenant di Microsoft Entra, è possibile concedere il consenso amministratore a livello di tenant da Registrazioni app nel portale di Azure.

Avviso

La concessione del consenso amministratore a livello di tenant a un'applicazione concede all'app e al suo editore di accedere ai dati dell'organizzazione. Esaminare con cura le autorizzazioni richieste dall'applicazione prima di concedere il consenso.

Per la concessione del consenso amministratore a livello di tenant è necessario accedere come utente autorizzato a concedere il consenso per conto dell'organizzazione. Sono inclusi l'amministratore globale e l'amministratore ruolo con privilegi. Un utente può anche essere autorizzato a concedere il consenso a livello di tenant se gli è stato assegnato un ruolo personalizzato della directory che include l'autorizzazione per concedere le autorizzazioni alle applicazioni.

  1. In un esercizio precedente è stata creata un'app denominata Demo app. Se necessario, in Microsoft Azure passare a Microsoft Entra ID e quindi Registrazioni app, quindi app Demo.**

  2. Nella schermata App demo individuare, copiare e salvare ogni valore ID applicazione (client) e ID della directory (tenant) per usarli in un secondo momento.

    Screenshot of the Demo app screen with the directory ID highlighted for usage in your registration.

  3. Nel riquadro di spostamento a sinistra, in Gestisci selezionare Autorizzazioni API.

  4. In Autorizzazioni configurate selezionare Fornisci il consenso amministratore.

    Screenshot of the API permission page with Grant admin consent for Contoso highlighted.

  5. Esaminare la finestra di dialogo e quindi selezionare .

    Avviso

    La concessione del consenso amministratore a livello di tenant tramite le registrazioni app revoca eventuali autorizzazioni concesse a livello di tenant in precedenza. Ciò non influirà sulle autorizzazioni concesse in precedenza dagli utenti per loro conto.

È possibile concedere il consenso amministratore a livello di tenant tramite le applicazioni aziendali se è già stato effettuato il provisioning dell'applicazione nel tenant.

  1. In Microsoft Azure passare a Microsoft Entra ID, quindi Applicazioni aziendali e poi App demo.

  2. Nella schermata App demo, nel riquadro di spostamento a sinistra, selezionare Autorizzazioni in Sicurezza.

  3. In Autorizzazioni selezionare Fornisci il consenso amministratore.

    Screenshot of the Demo app permissions page with Grant admin consent for Contoso highlighted.

  4. Quando viene richiesto, accedere con l'account amministratore globale.

  5. Nella finestra di dialogo Autorizzazioni richieste esaminare le informazioni e quindi selezionare Accetta.

Quando si concede il consenso amministratore a livello di tenant usando uno dei metodi descritti in precedenza, viene visualizzata una finestra nel portale di Azure per richiedere il consenso amministratore a livello di tenant. Se si conosce l'ID client dell'applicazione (noto anche come ID applicazione), è possibile creare lo stesso URL per concedere il consenso amministratore a livello di tenant.

  1. L'URL relativo al consenso amministratore a livello di tenant ha il formato seguente: https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id={client-id} dove:

    • {client-id} è l'ID client dell'applicazione (detto anche ID app).
    • {tenant-id} è l'ID tenant dell'organizzazione o qualsiasi nome di dominio verificato.
  2. Come sempre, esaminare con cura le autorizzazioni richieste da un'applicazione prima di concedere il consenso.

Autorizzazioni riservate all'amministratore

Alcune autorizzazioni con privilegi elevati nell'ecosistema Microsoft possono essere impostati come riservati all'amministratore. Ecco alcuni esempi di questi tipi di autorizzazioni:

  • Lettura dei profili completi di tutti gli utenti tramite User.Read.All
  • Scrittura dei dati in una directory aziendale tramite Directory.ReadWrite.All
  • Lettura di tutti i gruppi in una directory aziendale tramite Groups.Read.All

Sebbene un utente consumer possa concedere a un'applicazione l'accesso a questi tipi di dati, gli utenti aziendali non possono concedere accesso allo stesso set di dati riservati dell'azienda. Se l'applicazione richiede l'accesso a una di queste autorizzazioni da un utente dell'organizzazione, l'utente riceve un messaggio di errore che indica che non è autorizzato a fornire il consenso alle autorizzazioni dell'applicazione.

Se l'applicazione richiede accesso ad ambiti riservati all'amministratore delle organizzazioni, è necessario richiederle direttamente all'amministratore dell'azienda anche tramite l'endpoint di consenso dell'amministratore, come descritto di seguito.

Se l'applicazione richiede autorizzazioni delegate con privilegi elevati e un amministratore concede queste autorizzazioni tramite l'endpoint di consenso amministratore, il consenso viene concesso a tutti gli utenti del tenant.

Se l'applicazione richiede autorizzazioni dell'applicazione e un amministratore concede queste autorizzazioni tramite l'endpoint di consenso amministratore, il consenso non viene concesso per conto di un utente specifico. Al contrario, all'applicazione client le autorizzazioni verranno concesse direttamente. Questi tipi di autorizzazioni vengono usati solo dai servizi daemon e da altre applicazioni non interattive eseguite in background.

Nota

Dopo aver concesso il consenso amministratore tramite l'endpoint di consenso amministratore, il processo di concessione del consenso amministratore è completato e non è necessario che gli utenti eseguano altre azioni. Dopo la concessione del consenso amministratore, gli utenti possono ottenere un token di accesso tramite un flusso di autorizzazione tipico e il token di accesso risultante avrà le autorizzazioni consentite.

Quando un amministratore aziendale usa l'applicazione e viene indirizzato all'endpoint di autorizzazione, Microsoft Identity Platform rileverà il ruolo dell'utente e chiederà se vuole fornire il consenso per conto dell'intero tenant per le autorizzazioni richieste. Tuttavia, è disponibile anche un endpoint di consenso amministratore dedicato utilizzabile per richiedere in modo proattivo che un amministratore conceda l'autorizzazione per conto dell'intero tenant. L'uso di questo endpoint è necessario anche per richiedere le autorizzazioni dell'applicazione (che non possono essere richieste tramite l'endpoint di autorizzazione).

Seguendo questa procedura, l'app può richiedere le autorizzazioni per tutti gli utenti di un tenant, inclusi gli ambiti riservati all'amministratore. Si tratta di un'operazione con privilegi elevati e deve essere eseguita solo se necessaria per lo scenario.

Richiedere le autorizzazioni nel portale di registrazione dell'app

Le applicazioni sono in grado di rilevare le autorizzazioni necessarie (sia delegate che dell'applicazione) nel portale di registrazione delle app. In questo modo è possibile usare l'ambito /.default e l'opzione "Fornisci il consenso amministratore" del portale di Azure. In generale, è consigliabile assicurarsi che le autorizzazioni definite in modo statico per una determinata applicazione siano un superset delle autorizzazioni che verranno richieste in modo dinamico e incrementale.

Per configurare l'elenco delle autorizzazioni richieste in modo statico per un'applicazione

  1. Passare all'applicazione nell'esperienza Registrazioni app del portale di Azure oppure creare un'app, se non è già stato fatto.
  2. Individuare la sezione Autorizzazioni API, quindi selezionare Aggiungi un'autorizzazione.
  3. Selezionare Microsoft Graph nell'elenco di API disponibili e quindi aggiungere le autorizzazioni richieste dall'app.
  4. Salvare la registrazione dell'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ò essere parte del flusso di iscrizione all'app, delle impostazioni dell'applicazione o di un flusso di "connessione" dedicato. In molti casi, è utile per l'applicazione visualizzare la pagina di "connessione" solo dopo che un utente ha eseguito l'accesso con un account di lavoro o dell'istituto di istruzione Microsoft.

L'accesso dell'utente nell'app consente di identificarne l'organizzazione di appartenenza dell'amministratore prima di richiedere l'approvazione delle autorizzazioni necessarie. Sebbene non sia strettamente necessario, questo consente di creare un'esperienza più intuitiva per gli utenti dell'organizzazione. Per l'accesso all'utente, seguire le esercitazioni sul protocollo di Microsoft Identity Platform.

Uso delle autorizzazioni

Dopo che l'utente fornisce il consenso alle autorizzazioni relative all'app, quest'ultima può acquisire token di accesso che rappresentano l'autorizzazione dell'app ad accedere a una risorsa. Un token di accesso può essere usato per una sola risorsa, ma al suo interno saranno codificate tutte le autorizzazioni della risorsa specifica per cui l'app ha ottenuto il consenso. Quando si è pronti per richiedere le autorizzazioni all'amministratore dell'azienda, è possibile reindirizzare l'utente all'endpoint di consenso amministratore di Microsoft Identity Platform. Le interruzioni di riga servono solo per agevolare la lettura.

GET https://login.microsoftonline.com/\{tenant\}/v2.0/adminconsent?

client_id=6731de76-14a6-49ae-97bc-6eba6914391e

state=12345

redirect_uri=http://localhost/myapp/permissions

scope=

    https://graph.microsoft.com/calendars.read

    https://graph.microsoft.com/mail.send





Parametro Condizione Descrizione
tenant Richiesto Il tenant della directory da cui si desidera richiedere autorizzazioni. Può essere fornito sotto forma di GUID o di nome descrittivo OPPURE facendo genericamente riferimento alle organizzazioni come nell'esempio. Non usare "common" in quanto gli account personali non possono fornire il consenso amministratore se non 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 Richiesto L’ID dell’applicazione (client) assegnato all'app dal portale di Azure – Registrazioni app.
redirect_uri Richiesto 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.
ambito Richiesto Definisce il set di autorizzazioni che vengono richieste dall'applicazione. Può trattarsi di un ambito statico (con /.default) o dinamico. Possono essere inclusi 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 parametro relativo all'ambito.