Condividi tramite


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

Questo articolo illustra come usare il controllo degli accessi granulare e scalabile con ambito risorsa: Role Based Controllo di accesso (RBAC) per le applicazioni in Exchange Online.

Panoramica

Il controllo degli accessi in base al ruolo per le applicazioni in Exchange Online consente agli amministratori di concedere le autorizzazioni a un'applicazione che accede in modo indipendente ai dati in Exchange Online. Questa concessione può essere associata a un ambito di accesso (ambito della risorsa) per specificare le cassette postali a cui un'app può accedere. 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 autorizzazioni 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 la finalità di un amministratore di consentire a un'entità di accedere ai dati. In questo caso, consentendo a un'app di svolgere un ruolo in un set di risorse di destinazione. Ad esempio, un amministratore potrebbe configurare un sistema di prenotazione della sala con accesso ai dati del calendario solo in aree specifiche usando un ambito di gestione. Il diagramma seguente illustra il modello di assegnazione di ruolo:

Diagramma del modello di assegnazione di ruolo con esempio.

Istruzioni di configurazione

La procedura seguente illustra come creare queste assegnazioni del controllo degli accessi in base al ruolo dell'applicazione:

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

Requisiti

Il gruppo di ruoli Gestione organizzazione ha l'assegnazione del ruolo di delega per i nuovi ruoli controllo degli accessi in base al ruolo dell'applicazione. Per assegnare queste autorizzazioni, è necessario essere membri del gruppo di ruoli Gestione organizzazione. In alternativa, è possibile usare Exchange Online controllo degli accessi in base al ruolo per concedere assegnazioni di delega a questi ruoli dell'applicazione nel modo più adatto. Per assegnare queste autorizzazioni, in Microsoft Entra ID è necessario il ruolo amministratore di Exchange.

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 questi oggetti. Per aggiungere, rimuovere, impostare, fare riferimento alla documentazione relativa all'ambito di gestione. Ecco un elenco delle proprietà filtrabili in un ambito di gestione.

Nota

Sebbene sia presente una proprietà denominata Unità amministrative, è consigliabile usare il parametro native Amministrazione Units 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. È consigliabile considerare l'entità servizio in Exchange come un puntatore a un'entità servizio esistente in Microsoft Entra ID. Le entità servizio non possono essere create direttamente usando Exchange Online strumenti. Microsoft Entra strumenti vengono usati per gestire le registrazioni dell'entità servizio all'interno delle organizzazioni. Exchange impedisce la creazione di un puntatore non valido e riflette automaticamente eventuali eliminazioni 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:

Acquisizione dello schermo della pagina Microsoft Entra applicazioni aziendali.

Nota

Non usare gli ID della pagina Registrazioni app, perché mostra valori diversi. Il rosso "ID applicazione" è l'AppID e l'"ID oggetto" è 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 applicazione

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

Assegnazioni di ruolo

Le assegnazioni di ruolo di gestione uniscono un'entità, un ruolo e un ambito di accesso personalizzato alle risorse. Questa assegnazione funge da assegnazione di 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 l'assegnazione di gestione.

Test dell'autorizzazione

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

Nota

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

Durante il test dell'autorizzazione, è possibile includere un parametro di risorsa facoltativo per valutare quali autorizzazioni con ambito si applicano a tale cassetta postale di destinazione. InScope will = true or false per rappresentare se, true che l'autorizzazione si applica a tale cassetta postale per l'entità servizio o false tale entità servizio dispone di tale autorizzazione, ma non su quella particolare cassetta postale. Se si omette questo flag, verrà visualizzato "Not Run".

I risultati dei test includono sempre l'ambito della risorsa consentito per una determinata 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 del calendario per gli utenti canadesi tramite 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 europa Amministrazione unit

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: Test 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 dell'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 a 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 di 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, allegati ed eventuali proprietà estese 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 l'invio di posta elettronica.
Application Mail.Send MS Graph Mail.Send Consente all'app di inviare messaggi di posta elettronica come qualsiasi utente senza un utente connesso.
Application MailboxSettings.Read MS Graph MailboxSettings.Read Consente all'app di leggere le impostazioni delle cassette postali 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 delle cassette postali 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 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 un utente connesso.
Application MailboxItem.ImportExport MS Graph MailboxItem.ImportExport.All Consente all'app di esportare e importare tutti gli elementi della cassetta postale degli utenti senza l'utente connesso.
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 inviare messaggi di posta elettronica 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 inviare messaggi di posta elettronica come qualsiasi utente. Consente all'app di creare, leggere, aggiornare ed eliminare le impostazioni delle cassette postali dell'utente in tutte le cassette postali. Consente all'app di creare, leggere, aggiornare ed eliminare 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 Servizi Web Exchange con accesso completo a tutte le cassette postali.
Application SMTP.SendAsApp MS Graph SMTP.SendAsApp Consente all'app di usare l'invio client SMTP per inviare messaggi di posta elettronica alla cartella di posta in uscita dell'utente.

Si potrebbe notare che questi ruoli rappresentano le autorizzazioni di Microsoft Graph a cui è possibile fornire il consenso altrove nella piattaforma Azure Identity. Queste autorizzazioni hanno lo stesso effetto delle autorizzazioni Graph, ad eccezione di queste assegnazioni di ruolo che consentono l'accesso granulare con ambito risorsa.

Domande frequenti

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

È necessario assicurarsi di aver rimosso le autorizzazioni senza ambito a livello di organizzazione assegnate in Microsoft Entra ID. Le autorizzazioni assegnate tramite il controllo degli accessi in base al ruolo dell'applicazione agiscono oltre alle concessioni effettuate in Microsoft Entra ID. Microsoft Entra autorizzazioni possono essere vincolate solo tramite criteri di accesso alle applicazioni. In altre parole, le autorizzazioni assegnate sono un'operazione di unione sulle autorizzazioni da Microsoft Entra ID e sulle autorizzazioni assegnate in Exchange Online controllo degli accessi in base al ruolo. Ogni autorità può agire in modo indipendente.

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

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

Per garantire che gli amministratori abbiano una visualizzazione consolidata delle autorizzazioni per le app, queste autorizzazioni vengono visualizzate in Exchange Online in un'esperienza di amministratore Microsoft Entra. Questa funzionalità è imminente e resta aggiornata.

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

Con i criteri di accesso alle applicazioni sono disponibili un'entità servizio, il consenso per le autorizzazioni in Azure e un criterio associato a un'entità servizio in Exchange Online. Anche se è possibile ristrutturare il meccanismo di ambito usando ambiti di gestione di Exchange o unità amministrative, ecco alcune linee guida 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 per l'app.

Procedura di migrazione:

  1. Creare un nuovo ambito di gestione, che punta 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 restrizione 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 usa un filtro destinatario con il parametro MemberOfGroupdi filtro . 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 del gruppo annidati vengono considerati fuori ambito. Solo l'appartenenza diretta ai gruppi determina che il membro venga considerato nell'ambito dell'autorizzazione.
  • Gruppi di Microsoft 365, sono supportati i gruppi di sicurezza Mail-Enabled e le liste di distribuzione.

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

Compatibilità con i criteri di accesso alle app:

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

L'interoperabilità dell'autorizzazione può essere descritta come segue:

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

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

  • Un'app può avere autorizzazioni Microsoft Entra con consenso e assegnazioni di controllo degli accessi in base al ruolo. Questo caso è previsto quando un'app ha (ad esempio) un Mail.Read ambito e Mail.Sendun'organizzazione.

  • I consensi delle autorizzazioni sono additivi.

Esempio 1: consenso da 2 sistemi:

  • Un'app è 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 per l'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 che Mail.Read per l'app Calendar.Read 1:

  • Destinazione cassetta postale A: ha esito negativo.
  • La destinazione della cassetta postale B: ha esito negativo.

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

Esempio due: assegnazione della stessa autorizzazione due volte:

  • Un'app è 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 Mail.Read acconsentito per l'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 ogni cassetta postale ad eccezione della cassetta postale A (in base a un filtro come Alias -ne mbxa).

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

  • Destinazione cassetta postale A: consenti.
  • Destinazione cassetta postale B: consenti.

Mentre l'oggetto Mail.Read da Microsoft Entra consente l'accesso solo alla cassetta postale A, l'assegnazione del controllo degli accessi in base al ruolo 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 questi casi perimetrali sono stati descritti per completezza, non è previsto che i criteri di accesso alle applicazioni vengano in genere usati con il controllo degli accessi in base al ruolo per le applicazioni. Le autorizzazioni a livello di organizzazione devono essere assegnate in Microsoft Entra ID mentre le autorizzazioni con ambito risorsa devono essere concesse usando il controllo degli accessi in base al ruolo per le applicazioni.

Quante applicazioni sono supportate dal controllo degli accessi in base al ruolo per le applicazioni?

È possibile avere fino a 10.000 applicazioni per organizzazione usando il controllo degli accessi in base al ruolo per le applicazioni. Fateci sapere se questo limite pone un problema per voi. Il controllo degli accessi in base al ruolo per le applicazioni è stato creato in modo altamente scalabile per soddisfare le esigenze dei clienti più grandi.

Perché l'individuazione automatica non funziona?

Attualmente non è possibile accedere al servizio di individuazione automatica quando si usano i ruoli dell'applicazione controllo degli accessi in base al ruolo.

Se si elimina un'entità servizio in Microsoft Entra cosa accade in Exchange?

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

Commenti e suggerimenti su questa funzionalità

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