Controllo di accesso basato sui ruoli per le applicazioni in Exchange Online

Questo articolo illustra l'uso del controllo di accesso granulare e scalabile con ambito delle risorse: Controllo di accesso basato sui ruoli per le applicazioni in Exchange Online.

Panoramica

Controllo degli accessi in base al ruolo per le applicazioni in Exchange Online consente agli amministratori di concedere autorizzazioni a un'applicazione che accede in modo indipendente ai dati in Exchange Online. Questa concessione può essere abbinata a un ambito di accesso (ambito della risorsa) per specificare a quali cassette postali può accedere un'app. Questa funzionalità estende il modello di controllo degli accessi in base al ruolo corrente in Exchange Online e sostituisce i criteri di accesso alle applicazioni. Queste concessioni di autorizzazione sono indipendenti dalle concessioni senza ambito in Microsoft Entra ID.

Il fulcro di questo sistema è la configurazione dell'assegnazione del ruolo di gestione, che esprime l'intento di un amministratore di consentire a un'entità di accedere ai dati. In questo caso, consentire a un'app di eseguire un ruolo su un set di risorse di destinazione. Ad esempio, un amministratore potrebbe configurare un sistema di prenotazione sala con accesso ai dati del calendario solo in aree geografiche specifiche usando un ambito di gestione. Il diagramma seguente illustra il modello di assegnazione dei ruoli:

Diagramma di un modello di assegnazione di ruolo con esempio.

Istruzioni di configurazione

La procedura seguente illustra come creare queste assegnazioni Controllo dell'accesso basato sui ruoli dell'applicazione:

  1. Creare un nuovo ambito risorsa (facoltativo)
  2. Creare un puntatore a un'entità servizio Microsoft Entra
  3. Selezionare il ruolo applicazione appropriato
  4. Creare una nuova assegnazione di ruolo
  5. Testare la nuova entità servizio

Requisiti

Il gruppo di ruoli Gestione organizzazione dispone dell'assegnazione di ruolo di delega per i nuovi ruoli Controllo dell'accesso basato sui ruoli dell'applicazione. Per assegnare queste autorizzazioni, è necessario essere un membro del gruppo di ruoli Gestione organizzazione. In alternativa, è possibile usare il controllo degli accessi in base al ruolo di Exchange Online per concedere assegnazioni di delega a questi ruoli applicazione in base alle esigenze. In Microsoft Entra ID, è necessario il ruolo di amministratore Exchange per assegnare queste autorizzazioni.

Definire l'ambito della risorsa

Ambiti di gestione

Gli ambiti di gestione consentono a un amministratore di definire l'ambito di un set di cassette postali in base alle proprietà di tali oggetti. Per aggiungere, rimuovere e impostare, fare riferimento alla documentazione relativa all'ambito di gestione. Ecco un elenco delle proprietà filtrabili in un ambito di gestione.

Nota

Anche se è presente una proprietà denominata Unità amministrative, è consigliabile usare il parametro nativo Unità di Amministrazione in un'assegnazione di ruolo per evitare di creare un ambito come oggetto puntatore intermedio.

Entità servizio

Le entità servizio rappresentano un'istanza di un'applicazione all'interno dell'organizzazione. È necessario considerare l'entità servizio in Exchange come un puntatore a un'entità servizio esistente in Microsoft Entra ID. Non è possibile creare entità servizio direttamente mediante gli strumenti di Exchange Online. Gli strumenti di Microsoft Entra vengono usati per gestire le registrazioni delle entità servizio all'interno delle organizzazioni. Exchange impedisce la creazione di un puntatore non valido e riflette automaticamente qualsiasi eliminazione di entità servizio in Microsoft Entra ID.

Nuova entità servizio

New-ServicePrincipal -AppId <Client Application ID in AAD> -ObjectId <Service principal object ID in AAD> -DisplayName <name>

Lo screenshot seguente consente di trovare questi ID in Microsoft Entra ID:

Schermata della pagina delle applicazioni Microsoft Entra Enterprise.

Nota

Non usare gli ID della pagina Registrazioni app, perché mostra valori diversi. Il contorno rosso "ID applicazione" è l'AppID e l'"ID oggetto" è il ServiceID.

È possibile usare un altro approccio per trovare questi ID usando Get-MgServicePrincipal.

Rimuovere l'entità servizio

Remove-ServicePrincipal -Identity <ObjectID, AppID, or DisplayName>

Impostare l'entità servizio

Set-ServicePrincipal -Identity <ObjectID, AppID, or DisplayName > -DisplayName <Updated name>

Ruoli dell'applicazione

I ruoli applicazione sono un tipo speciale di ruolo di gestione in Exchange Online, assegnabile solo a un'applicazione. Questi ruoli possono essere enumerati utilizzando Get-ManagementRole.

Assegnazioni di ruolo

Le assegnazioni dei ruoli di gestione collegano un ambito di accesso principale, un ruolo e una risorsa personalizzata. Questa assegnazione funge da assegnazione delle autorizzazioni per un'entità servizio che esegue un ruolo in un ambito.

Nuova assegnazione di ruolo

New-ManagementRoleAssignment [[-Name] <String>] -Role <RoleIdParameter> -App <ObjectID, AppID, or DisplayName> -CustomResourceScope <Management Scope> (or -RecipientAdministrativeUnitScope)

Impostare l'assegnazione di ruolo

Set-ManagementRoleAssignment [-Identity] <RoleAssignmentIdParameter> -CustomResourceScope <Management Scope> (or -RecipientAdministrativeUnitScope)

Rimuovere l'assegnazione di ruolo

Per rimuovere un'assegnazione di ruolo, vedere Rimuovere un'assegnazione di gestione.

Test dell'autorizzazione

È possibile usare un cmdlet di test per simulare il comportamento abilitato dalle assegnazioni di controllo degli accessi in base al ruolo per una specifica entità servizio.

Nota

Questo metodo esclude le autorizzazioni che potrebbero essere concesse separatamente in Microsoft Entra ID.

Quando si verifica l'autorizzazione, è possibile includere un parametro di risorsa facoltativo per valutare quali autorizzazioni con ambito vengono applicate alla cassetta postale di destinazione. InScope will = true or false Per indicare se, True tale autorizzazione si applica alla cassetta postale per tale entità servizio o false che l'entità servizio dispone di tale autorizzazione ma non per la specifica cassetta postale. Se si omette questo flag, il risultato sarà "Non eseguito".

I risultati del test includono sempre l'ambito delle risorse consentite per una specifica autorizzazione assegnata.

Testare l'accesso all'entità servizio

Test-ServicePrincipalAuthorization -Identity <ObjectID, AppID, or DisplayName> [-Resource] <target mailbox>

Esempi

Dopo aver usato Connect-ExchangeOnline in PowerShell, seguire questa procedura:

Esempio uno: configurazione dell'accesso in lettura al calendario per gli utenti canadesi con un ambito di gestione

New-ServicePrincipal -AppId 71487acd-ec93-476d-bd0e-6c8b31831053 -ObjectId 6233fba6-0198-4277-892f-9275bf728bcc -DisplayName "example"

DisplayName   ObjectId                              AppId
-----------   ---------                              -----
example       6233fba6-0198-4277-892f-9275bf728bcc   71487acd-ec93-476d-bd0e-6c8b3183105
New-ManagementScope -Name "Canadian users" -RecipientRestrictionFilter "CustomAttribute1 -eq '012332'"

Name                 ScopeRestrictionType      Exclusive      RecipientRoot          RecipientFilter
----                 --------------------      ---------      -------------          ---------------
Canadian users    RecipientScope            False                                CustomAttribute1 -eq '012332'
New-ManagementRoleAssignment -App 6233fba6-0198-4277-892f-9275bf728bcc -Role "Application Calendars.Read" -CustomResourceScope "Canadian users"

Name                      Role                 RoleAssigneeName       RoleAssigneeType        AssignmentMethod
----                      ----                 ----------------       ----------------        ----------------
Application Calendar...   Application Ca...    6233fba6-0198-...      ServicePrincipal        Direct

Esempio due: Configurazione di Mail.Read per tutte le cassette postali dell'unità di amministrazione Europa

New-ServicePrincipal -AppId eb19847b-5563-42ea-b719-ea47cb0cf4b3 -ObjectId 59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36 -DisplayName "example"

DisplayName    ObjectId                                  AppId
-----------    ---------                                  -----
example        59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36       eb19847b-5563-42ea-b719-ea47cb0cf4b3
New-ManagementRoleAssignment -App 59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36 -Role "Application Mail.Read" -RecipientAdministrativeUnitScope 4d819ce9-9257-44d7-af20-68a49e6697f4

Name                         Role                RoleAssigneeName         RoleAssigneeType             AssignmentMethod
----                         ----                ----------------          ----------------            ----------------
Application Mail.Rea...      Application Ma...   59b7c6cb-58d3-...         ServicePrincipal            Direct

Esempio tre: verifica delle autorizzazioni assegnate a un'entità servizio

Test-ServicePrincipalAuthorization -Resource b -Identity "DemoB" |Format-Table

RoleName                      GrantedPermissions          AllowedResourceScope        ScopeType                 InScope
--------                      ------------------          --------------------        ---------                 ------
Application Mail.Read         Mail.Read                   Scope-MESGaDN                CustomRecipientScope     False
Application Calendars.Read    Calendars.Read              Scope-DL1                    CustomRecipientScope     False
Application Contacts.Read     Contacts.Read               Scope-MESGa                  CustomRecipientScope     False

Limitazioni

  • Le applicazioni non possono diventare membri di un gruppo di ruoli.
  • I ruoli applicazione possono essere assegnati solo alle entità servizio.
  • I ruoli dell'applicazione non possono essere copiati o derivati.
  • Gli ambiti di gestione esclusivi non limitano l'accesso alle app.
  • Le modifiche alle autorizzazioni dell'app sono soggette alla manutenzione della cache che varia tra 30 minuti e 2 ore a seconda dell'utilizzo recente dell'app. Quando si testano le configurazioni, il comando test ignora questa cache. La cache di un'app senza chiamate in ingresso alle API viene reimpostata dopo 30 minuti. La cache di un'app attiva viene mantenuta attiva per un massimo di 2 ore.

Protocolli supportati

  • MS Graph
  • EWS

Ruoli dell'applicazione supportati

Nome Protocollo Elenco autorizzazioni Descrizione
Application Mail.Read MS Graph Mail.Read Consente all'app di leggere la posta elettronica in tutte le cassette postali senza un utente connesso.
Application Mail.ReadBasic MS Graph Mail.ReadBasic Consente all'app di leggere i messaggi di posta elettronica tranne il corpo, previewBody, gli allegati e qualsiasi proprietà estesa in tutte le cassette postali senza un utente connesso
Application Mail.ReadWrite MS Graph Mail.ReadWrite Consente all'app di creare, leggere, aggiornare ed eliminare messaggi di posta elettronica in tutte le cassette postali senza un utente connesso. Non include l'autorizzazione per inviare messaggi di posta elettronica.
Application Mail.Send MS Graph Mail.Send Consente all'app di inviare messaggi come qualsiasi utente senza un utente connesso.
Application MailboxSettings.Read MS Graph MailboxSettings.Read Consente all'app di leggere le impostazioni della cassetta postale dell'utente in tutte le cassette postali senza un utente connesso.
Application MailboxSettings.ReadWrite MS Graph MailboxSettings.ReadWrite Consente all'app di creare, leggere, aggiornare ed eliminare le impostazioni della cassetta postale dell'utente in tutte le cassette postali senza un utente connesso.
Application Calendars.Read MS Graph Calendars.Read Consente all'app di leggere gli eventi di tutti i calendari senza un utente connesso.
Application Calendars.ReadWrite MS Graph Calendars.ReadWrite Consente all'app di creare, leggere, aggiornare ed eliminare gli eventi di tutti i calendari senza un utente connesso.
Application Contacts.Read MS Graph Contacts.Read Consente all'app di leggere tutti i contatti in tutte le cassette postali senza un utente connesso.
Application Contacts.ReadWrite MS Graph Contacts.ReadWrite Consente all'app di creare, leggere, aggiornare ed eliminare tutti i contatti in tutte le cassette postali senza un utente connesso.
Application MailboxFolder.Read MS Graph MailboxFolder.Read.All Consente all'app di leggere tutte le cartelle delle cassette postali degli utenti senza un utente connesso.
Application MailboxFolder.ReadWrite MS Graph MailboxFolder.ReadWrite.All Consente all'app di leggere e scrivere tutte le cartelle delle cassette postali degli utenti senza un utente connesso.
Application MailboxItem.Read MS Graph MailboxItem.Read.All Consente all'app di leggere tutti gli elementi della cassetta postale degli utenti senza che un utente abbia eseguito l'accesso.
Application MailboxItem.ReadWrite MS Graph MailboxItem.ReadWrite.All Consente all'app di leggere, scrivere ed eliminare tutti gli elementi della cassetta postale degli utenti senza che un utente abbia eseguito l'accesso.
Application MailboxItem.Export MS Graph MailboxItem.Export.All Consente all'app di esportare tutti gli elementi della cassetta postale degli utenti senza che l'utente abbia eseguito l'accesso.
Application MailboxItem.ImportExport MS Graph MailboxItem.ImportExport.All Consente all'app di esportare e importare tutti gli elementi della cassetta postale degli utenti senza che l'utente abbia eseguito l'accesso.
Application Mail Full Access MS Graph Mail.ReadWrite, Mail.Send Consente all'app di creare, leggere, aggiornare ed eliminare messaggi di posta elettronica in tutte le cassette postali e di inviare messaggi come qualsiasi utente senza un utente connesso.
Application Exchange Full Access MS Graph Mail.ReadWrite, Mail.Send, MailboxSettings.ReadWrite, Calendars.ReadWrite, Contacts.ReadWrite Senza un utente connesso: consente all'app di creare, leggere, aggiornare ed eliminare messaggi di posta elettronica in tutte le cassette postali e di inviare messaggi come qualsiasi utente. Consente all'app di creare, leggere, aggiornare ed eliminare le impostazioni della cassetta postale dell'utente in tutte le cassette postali. Consente all'app di creare, leggere, aggiornare ed eliminare gli eventi di tutti i calendari. Consente all'app di creare, leggere, aggiornare ed eliminare tutti i contatti in tutte le cassette postali.
Application EWS.AccessAsApp EWS EWS.AccessAsApp Consente all'app di usare i servizi Web Exchange con accesso completo a tutte le cassette postali.
Application SMTP.SendAsApp MS Graph SMTP.SendAsApp Consente all'app di utilizzare l'invio del client SMTP per inviare messaggi alla cartella Posta in uscita dell'utente.
Application MailboxConfigItem.Read MS Graph MailboxConfigItem.Read Consente all'app di leggere gli oggetti UserConfiguration senza un utente connesso.
Application MailboxConfigItem.ReadWrite MS Graph MailboxConfigItem.ReadWrite Consente all'app di leggere, scrivere, aggiornare ed eliminare oggetti UserConfiguration senza un utente connesso.
Application MailTips.ReadBasic.All MS Graph MailTips.ReadBasic.All Consente all'app di accedere solo ai metadati dei suggerimenti messaggio senza esporre il contenuto della posta elettronica, senza un utente connesso
Application Mail-Advanced.ReadWrite.All MS Graph Mail-Advanced.ReadWrite.All Consente all'app di creare, leggere, aggiornare ed eliminare tutti i messaggi di posta elettronica, incluso il contenuto dei messaggi di posta elettronica non bozza nelle cassette postali degli utenti, senza un utente connesso. Non include l'autorizzazione per l'invio di e-mail.

Si può notare che questi ruoli rappresentano autorizzazioni di Microsoft Graph alle quali è possibile fornire il consenso altrove nella piattaforma di gestione delle identità di Azure. Queste autorizzazioni hanno lo stesso effetto delle autorizzazioni di Graph, ad eccezione di queste assegnazioni di ruolo che consentono l'accesso granulare all'ambito delle risorse.

Domande frequenti

Perché l'applicazione ha ancora accesso alle cassette postali non concesse dall'ambito usato nel controllo degli accessi in base al ruolo dell'applicazione di Exchange Online?

È necessario assicurarsi di aver rimosso le autorizzazioni non ambite a livello di organizzazione assegnate in Microsoft Entra ID. Le autorizzazioni assegnate tramite Controllo degli accessi in base al ruolo dell'applicazione si aggiungono alle concessioni concesse in Microsoft Entra ID. Le autorizzazioni di Microsoft Entra possono essere limitate solo tramite i criteri di accesso alle applicazioni. In altre parole, le autorizzazioni assegnate sono un'operazione di unione delle autorizzazioni di Microsoft Entra ID e delle autorizzazioni assegnate nel controllo degli accessi in base al ruolo di Exchange Online. Ogni autorità può agire in modo indipendente.

Ad esempio, se l'entità servizio ha Mail.Read concesso Microsoft Entra ID e si configura un'autorizzazione con ambito delle Mail.Read risorse in RBAC applicazione, è importante rimuovere l'assegnazione di Mail.Read da Microsoft Entra ID. In caso contrario, l'unione di una concessione senza ambito Mail.Read di Microsoft Entra e di una concessione con ambito Mail.Read di risorse in Controllo degli accessi in base al ruolo dell'applicazione non comporta alcuna definizione efficace dell'ambito delle risorse.

Come è possibile visualizzare e modificare tutte le autorizzazioni dell'applicazione in un'unica interfaccia?

Per garantire che gli amministratori dispongano di una visualizzazione consolidata delle autorizzazioni delle app, queste autorizzazioni concesse in Exchange Online vengono visualizzate in un'esperienza di amministrazione di Microsoft Entra. Questa funzionalità è in arrivo, resta sintonizzato.

Come eseguire la migrazione dai criteri di accesso delle applicazioni al controllo degli accessi in base al ruolo per le applicazioni?

Con i criteri di accesso alle applicazioni, si dispone di un'entità servizio, del consenso delle autorizzazioni in Azure e di un criterio associato a un'entità servizio in Exchange Online. Sebbene sia possibile ristrutturare il meccanismo di ambito utilizzando gli ambiti di gestione di Exchange o le unità amministrative, ecco alcune indicazioni sul riutilizzo dei gruppi in un criterio di accesso alle app come ambito per la concessione del controllo degli accessi in base al ruolo per le applicazioni. Questo processo non comporta alcuna interruzione dell'uso dell'app.

Passaggi della migrazione:

  1. Creare un nuovo ambito di gestione che faccia riferimento al gruppo di ambito dai criteri di accesso alle applicazioni.

  2. Creare l'oggetto puntatore dell'entità servizio.

  3. Assegnare le autorizzazioni necessarie all'entità servizio in Exchange Online con la limitazione dell'ambito di gestione.

  4. Rimuovere il consenso all'autorizzazione in Azure.

  5. Rimuovere i criteri di accesso alle applicazioni.

    Quando si crea l'ambito di gestione nel passaggio 1, si utilizza un filtro destinatario con il parametro MemberOfGroupfilter . Ecco un esempio:

    "MemberOfGroup -eq 'CN=mesga20220818210551,OU=Fabrikam346.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR00A001,DC=prod,DC=outlook,DC=com'"

Nota

Questo parametro di filtro usa il nome distinto del gruppo, che è possibile trovare usando Get-Group cmdlet.

Limitazioni:

  • I membri dei gruppi annidati sono considerati fuori ambito. Solo l'appartenenza diretta al gruppo fa sì che il membro venga considerato nell'ambito dell'autorizzazione.
  • Gruppi di Microsoft 365, Mail-Enabled sono supportati i gruppi di sicurezza e le liste di distribuzione.

In che modo il controllo degli accessi in base al ruolo per le applicazioni funziona insieme ai criteri di accesso alle applicazioni?

Compatibilità con i criteri di accesso alle app:

Controllo degli accessi in base al ruolo per le applicazioni sostituisce i criteri di accesso alle applicazioni.

L'interoperabilità Autorizzazione può essere descritta come segue:

  • I criteri di accesso alle applicazioni limitano SOLO le autorizzazioni assegnate in Microsoft Entra ID.

  • Controllo degli accessi in base al ruolo per le applicazioni offre un'espressione alternativa di autorizzazione con un ambito di risorsa associato.

  • Un'app può avere sia autorizzazioni autorizzate da Microsoft Entra che assegnazioni RBAC. In questo caso, quando un'app ha (ad esempio) a livello Mail.Read di organizzazione e con ambito Mail.Send.

  • I consensi di autorizzazione sono additivi.

Esempio uno: consensi da 2 sistemi:

  • Un'app ha Mail.Read in Microsoft Entra ID.
  • Questa app ha come ambito il gruppo di sicurezza abilitato alla posta elettronica 1 usando un criterio di accesso alle applicazioni.
  • La stessa app ha Calendar.Read acconsentito all'ambito di gestione 1 nel controllo degli accessi in base al ruolo per le applicazioni.
  • La cassetta postale A si trova nel gruppo di sicurezza abilitato alla posta elettronica 1.
  • La cassetta postale B è nell'ambito dell'ambito di gestione 1.

Accesso di MS Graph a un endpoint che richiede sia e per l'app Mail.ReadCalendar.Read 1:

  • Targeting cassetta postale A: non riuscito.
  • Targeting cassetta postale B: non riuscito.

Questo endpoint richiede sia che Mail.ReadCalendar.Read. Sebbene l'app disponga di queste autorizzazioni singolarmente per due cassette postali separate, non dispone di entrambe le autorizzazioni per una sola cassetta postale.

Esempio due: assegnazione della stessa autorizzazione due volte:

  • Un'app ha Mail.Read in Microsoft Entra ID.
  • L'ambito di questa app è il gruppo di sicurezza abilitato alla posta elettronica 1 tramite un criterio di accesso alle applicazioni.
  • La stessa app ha Mail.Read acconsentito all'ambito di gestione 1 usando il controllo degli accessi in base al ruolo per le applicazioni.
  • La cassetta postale A si trova nel gruppo di sicurezza abilitato alla posta elettronica 1.
  • L'ambito di gestione 1 consente l'accesso a tutte le cassette postali tranne la cassetta postale A (in base a alcuni filtri come Alias -ne mbxa).

Accesso MS Graph a un endpoint che richiede Mail.Read per l'App 1:

  • Cassetta postale di destinazione A: consenti.
  • Cassetta postale di destinazione B: consenti.

Mentre la da Microsoft Entra consente l'accesso Mail.Read alla cassetta postale A, l'assegnazione RBAC consente l'accesso a tutti gli elementi tranne A. In effetti, questa assegnazione consente l'accesso a tutto perché "A e non A" significa tutto.

Anche se abbiamo delineato questi casi limite per completezza, non prevediamo che i criteri di accesso alle applicazioni vengano in genere usati con il controllo dell'accesso basato sui ruoli (RBAC) per le applicazioni. Le autorizzazioni a livello di organizzazione devono essere assegnate in Microsoft Entra ID, mentre le autorizzazioni con ambito delle risorse devono essere concesse tramite RBAC per le applicazioni.

Quante applicazioni supportano il controllo degli accessi in base al ruolo per le applicazioni?

È possibile avere fino a 10.000 applicazioni per organizzazione che utilizzano il controllo degli accessi in base al ruolo per le applicazioni. Facci sapere se questo limite rappresenta un problema per te. Abbiamo creato Controllo degli accessi in base al ruolo per le applicazioni in modo altamente scalabile per soddisfare le esigenze dei nostri clienti più grandi.

Perché l'individuazione automatica non funziona?

Al momento, non è possibile accedere al servizio di individuazione automatica quando si usano i ruoli applicazione Controllo dell'accesso basato sui ruoli applicabili.

Cosa succede in Exchange se si elimina un'entità servizio in Microsoft Entra?

Anche le entità servizio eliminate in Microsoft Entra vengono rimosse automaticamente in Exchange. Questa rimozione elimina tutte le assegnazioni effettuate a queste entità servizio, lasciando però inalterati gli ambiti di gestione.

Feedback su questa funzionalità

Il feedback su questa funzionalità può essere condiviso con exoapprbacpreview@microsoft.com.