Basé sur les rôles Access Control pour les applications dans Exchange Online

Cet article vous guide dans l’utilisation d’un contrôle d’accès granulaire et évolutif, à l’échelle des ressources : le Access Control basé sur les rôles (RBAC) pour les applications dans Exchange Online.

Vue d’ensemble

RBAC pour les applications dans Exchange Online permet aux administrateurs d’accorder des autorisations à une application qui accède de manière indépendante aux données dans Exchange Online. Cet octroi peut être associé à une étendue d’accès (étendue de ressource) pour spécifier les boîtes aux lettres auxquelles une application peut accéder. Cette fonctionnalité étend le modèle RBAC actuel dans Exchange Online et remplace les stratégies d’accès aux applications. Ces autorisations sont indépendantes des autorisations non définies dans Microsoft Entra ID.

Le cœur de ce système est la configuration d’attribution des rôles de gestion, qui exprime l’intention d’un administrateur d’autoriser un principal à accéder aux données. Dans ce cas, il permet à une application de jouer un rôle sur un ensemble de ressources cibles. Par exemple, un administrateur peut configurer un système de réservation de salles permettant d’accéder aux données de calendrier uniquement dans des régions spécifiques à l’aide d’une étendue de gestion. Le diagramme suivant illustre le modèle d’attribution de rôle :

Diagramme du modèle d’attribution de rôle avec exemple.

Configuration Instructions

Les étapes suivantes vous guident pour créer ces affectations RBAC d’application :

  1. Créer une étendue de ressource (facultatif)
  2. Créer un pointeur vers un principal du service Microsoft Entra
  3. Sélectionnez le rôle d’application approprié
  4. Créer une attribution de rôle
  5. Tester le nouveau principal de service

Configuration requise

Le groupe de rôles Gestion de l’organisation a l’attribution de rôle de délégation pour les nouveaux rôles RBAC d’application. Vous devez être membre du groupe de rôles Gestion de l’organisation pour attribuer ces autorisations. Vous pouvez également utiliser le contrôle d’accès en fonction du rôle d’application d’Exchange Online pour déléguer des affectations à ces rôles d’application comme vous le souhaitez. Dans Microsoft Entra ID, vous avez besoin du rôle d’administrateur Exchange pour attribuer ces autorisations.

Définir l’étendue des ressources

Étendues de gestion

Les étendues de gestion permettent à un administrateur d’étendre un ensemble de boîtes aux lettres en fonction des propriétés de ces objets. Reportez-vous à la documentation du Cadre de gestion pour ajouter, supprimer, définir. Voici la liste des propriétés filtrables dans une étendue de gestion.

Remarque

Bien qu’il existe une propriété appelée Unités d’administration, nous vous recommandons d’utiliser le paramètre Unités d’Administration native sur une attribution de rôle pour éviter de créer une étendue en tant qu’objet pointeur intermédiaire.

Principaux de service

Les principaux de service représentent un instance d’une application au sein de votre organization. Vous devez considérer le principal de service Exchange comme un pointeur vers un principal de service existant dans Microsoft Entra ID. Il n’est pas possible de créer les principaux de service directement à l’aide des outils Exchange Online. Les outils Microsoft Entra sont utilisés pour gérer les inscriptions de principaux de service au sein des organisations. Exchange empêche la création d’un pointeur non valide et reflète automatiquement toute suppression de principaux de service dans Microsoft Entra ID.

Nouveau principal de service

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

La capture d’écran suivante vous aide à trouver ces ID dans Microsoft Entra ID :

Capture d’écran de la page des applications Microsoft Entra Entreprise.

Remarque

N’utilisez pas les ID de la page Inscriptions des applications, car elle affiche des valeurs différentes. L'« ID d’application » encadré en rouge est l’AppID et l'« ID d’objet » est le ServiceID.

Vous pouvez utiliser une autre approche pour trouver ces ID à l’aide de Get-MgServicePrincipal.

Supprimer un principal du service

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

Définir le principal de service

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

Rôles d’application

Les rôles d’application sont un type spécial de rôle de gestion dans Exchange Online, qui peut uniquement être attribué à une application. Ces rôles peuvent être énumérés à l’aide de Get-ManagementRole.

Attributions de rôles

Les attributions de rôle de gestion lient un principal, un rôle et une étendue d’accès de ressource personnalisée. Cette affectation fait office d’affectation d’autorisations pour un principal de service qui exécute un rôle sur une étendue.

Nouvelle attribution de rôle

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

Définir l’attribution de rôle

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

Supprimer l’attribution de rôle

Pour supprimer une attribution de rôle, consultez Supprimer une attribution de gestion.

Test de l’autorisation

Une applet de commande de test peut être utilisée pour simuler le comportement activé par les affectations RBAC pour un principal de service particulier.

Remarque

Cette méthode exclut les autorisations qui peuvent être accordées séparément dans Microsoft Entra ID.

Lorsque vous testez l’autorisation, vous pouvez inclure un paramètre de ressource facultatif pour évaluer les autorisations étendues qui s’appliquent à cette boîte aux lettres cible. InScope will = true or false Pour représenter si, True que l’autorisation s’applique à cette boîte aux lettres pour ce principal de service ou False, que le principal de service dispose de cette autorisation, mais pas sur cette boîte aux lettres particulière. L’omission de cet indicateur entraîne le message « Ne pas exécuter ».

Les résultats des tests incluent toujours l’étendue de ressources autorisée pour une autorisation particulière attribuée.

Tester l’accès du principal du service

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

Exemples

Après avoir utilisé Connect-ExchangeOnline dans PowerShell, procédez comme suit :

Exemple 1 : Configuration de l’accès en lecture du calendrier pour les utilisateurs canadiens à l’aide d’un cadre de gestion

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

Exemple 2 : Configuration de Mail.Read pour toute l’Europe Boîtes aux lettres de l’unité d’Administration

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

Exemple 3 : Test des autorisations attribuées à un principal de service

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

Limitations

  • Les applications ne peuvent pas devenir membres d’un groupe de rôles.
  • Les rôles d’application ne peuvent être attribués qu’aux principaux de service.
  • Les rôles d’application ne peuvent pas être copiés ou dérivés.
  • Les étendues de gestion exclusive ne limitent pas l’accès des applications.
  • Les modifications apportées aux autorisations d’application sont soumises à une maintenance du cache qui varie entre 30 minutes et 2 heures en fonction de l’utilisation récente de l’application. Lorsque vous testez des configurations, la commande test contourne ce cache. Le cache d’une application sans appel entrant aux API est réinitialisé au bout de 30 minutes. Le cache d’une application active est maintenu actif pendant 2 heures maximum.

Protocoles pris en charge

  • MS Graph
  • EWS

Rôles d’application pris en charge

Nom Protocole Liste des autorisations Description
Application Mail.Read MS Graph Mail.Read Autorise l’application à lire le courrier électronique dans toutes les boîtes aux lettres sans utilisateur connecté.
Application Mail.ReadBasic MS Graph Mail.ReadBasic Autorise l’application à lire le courrier électronique, à l’exception du corps, de la prévisualisation, des pièces jointes et de toutes les propriétés étendues dans toutes les boîtes aux lettres sans utilisateur connecté
Application Mail.ReadWrite MS Graph Mail.ReadWrite Permet à l’application de créer, lire, mettre à jour et supprimer du courrier dans toutes les boîtes aux lettres sans utilisateur connecté. Ne comprend pas l’autorisation d’envoyer du courrier.
Application Mail.Send MS Graph Mail.Send Permet à l’application d’envoyer des messages électroniques en tant qu’utilisateur sans utilisateur connecté.
Application MailboxSettings.Read MS Graph MailboxSettings.Read Autorise l’application à lire les paramètres de boîte aux lettres de l’utilisateur dans toutes les boîtes aux lettres sans utilisateur connecté.
Application MailboxSettings.ReadWrite MS Graph MailboxSettings.ReadWrite Permet à l’application de créer, lire, mettre à jour et supprimer les paramètres de boîte aux lettres de l’utilisateur dans toutes les boîtes aux lettres sans utilisateur connecté.
Application Calendars.Read MS Graph Calendars.Read Permet à l’application de lire les événements de tous les calendriers sans utilisateur connecté.
Application Calendars.ReadWrite MS Graph Calendars.ReadWrite Permet à l’application de créer, lire, mettre à jour et supprimer des événements de tous les calendriers sans utilisateur connecté.
Application Contacts.Read MS Graph Contacts.Read Permet à l’application de lire tous les contacts dans toutes les boîtes aux lettres sans utilisateur connecté.
Application Contacts.ReadWrite MS Graph Contacts.ReadWrite Permet à l’application de créer, lire, mettre à jour et supprimer tous les contacts dans toutes les boîtes aux lettres sans utilisateur connecté.
Application MailboxFolder.Read MS Graph MailboxFolder.Read.All Permet à l’application de lire tous les dossiers de boîte aux lettres des utilisateurs sans qu’un utilisateur ne soit connecté.
Application MailboxFolder.ReadWrite MS Graph MailboxFolder.ReadWrite.All Autorise l’application à lire et à écrire tous les dossiers de boîte aux lettres des utilisateurs sans utilisateur connecté.
Application MailboxItem.Read MS Graph MailboxItem.Read.All Permet à l’application de lire tous les éléments de la boîte aux lettres des utilisateurs sans qu’un utilisateur ne soit connecté.
Application MailboxItem.Export MS Graph MailboxItem.Export.All Permet à l’application d’exporter tous les éléments de boîte aux lettres des utilisateurs sans utilisateur connecté.
Application MailboxItem.ImportExport MS Graph MailboxItem.ImportExport.All Permet à l’application d’exporter et d’importer tous les éléments de boîte aux lettres des utilisateurs sans utilisateur connecté.
Application Mail Full Access MS Graph Mail.ReadWrite, Mail.Send Permet à l’application de créer, lire, mettre à jour et supprimer du courrier dans toutes les boîtes aux lettres et d’envoyer du courrier à n’importe quel utilisateur sans utilisateur connecté.
Application Exchange Full Access MS Graph Mail.ReadWrite, Mail.Send, MailboxSettings.ReadWrite, Calendars.ReadWrite, Contacts.ReadWrite Sans utilisateur connecté : permet à l’application de créer, lire, mettre à jour et supprimer du courrier dans toutes les boîtes aux lettres et d’envoyer du courrier en tant qu’utilisateur. Permet à l’application de créer, lire, mettre à jour et supprimer les paramètres de boîte aux lettres de l’utilisateur dans toutes les boîtes aux lettres. Permet à l’application de créer, lire, mettre à jour et supprimer des événements de tous les calendriers. Autorise l’application à créer, lire, mettre à jour et supprimer tous les contacts dans toutes les boîtes aux lettres.
Application EWS.AccessAsApp EWS EWS.AccessAsApp Autorise l’application à utiliser les services web Exchange avec un accès total à toutes les boîtes aux lettres.
Application SMTP.SendAsApp MS Graph SMTP.SendAsApp Permet à l’application d’utiliser l’envoi client SMTP pour envoyer des e-mails au dossier boîte d’envoi de l’utilisateur.
Application MailboxConfigItem.Read MS Graph MailboxConfigItem.Read Permet à l’application de lire les objets UserConfiguration sans utilisateur connecté.
Application MailboxConfigItem.ReadWrite MS Graph MailboxConfigItem.ReadWrite Permet à l’application de lire, écrire, mettre à jour et supprimer des objets UserConfiguration sans utilisateur connecté.
Application MailTips.ReadBasic.All MS Graph MailTips.ReadBasic.All Autorise l’application à accéder uniquement aux métadonnées des Infos-courrier sans exposer le contenu des e-mails, sans utilisateur connecté

Vous remarquerez peut-être que ces rôles représentent des autorisations Microsoft Graph auxquelles vous pouvez donner votre consentement ailleurs dans la plateforme d’identités Azure. Ces autorisations ont le même effet que les autorisations Graph, à l’exception de ces attributions de rôles, ce qui permet un accès granulaire aux ressources.

FAQ

Pourquoi mon application a-t-elle toujours accès aux boîtes aux lettres qui ne sont pas accordées par l’étendue que j’ai utilisée dans le RBAC d’application d’Exchange Online ?

Vous devez vous assurer que vous avez supprimé les autorisations non définies à l’échelle de l’organisation attribuées dans Microsoft Entra ID. Les autorisations attribuées à l’aide de l’application RBAC agissent en plus des subventions que vous accordez dans Microsoft Entra ID. Les autorisations de Microsoft Entra ne peuvent être limitées qu’à l’aide des stratégies d’accès aux applications. En d’autres termes, les autorisations attribuées sont une opération d’union sur les autorisations de Microsoft Entra ID et les autorisations attribuées dans le RBAC d’Exchange Online. Chaque autorité peut agir indépendamment.

Par exemple, si votre principal de service a Mail.Read accordé dans Microsoft Entra ID et que vous configurez une autorisation étendue Mail.Read aux ressources dans l’application RBAC, il est important de supprimer l’attribution de Mail.Read de Microsoft Entra ID. Dans le cas contraire, l’union d’une subvention non étendue Mail.Read de Microsoft Entra et d’une subvention étendue Mail.Read de ressources dans Application RBAC n’entraîne aucune étendue de ressource efficace.

Comment afficher et modifier toutes les autorisations d’application dans une interface ?

Pour vous assurer que les administrateurs disposent d’une vue consolidée des autorisations d’application, nous exposons ces autorisations accordées dans Exchange Online dans une expérience d’administrateur Microsoft Entra. Cette fonctionnalité est à venir, restez à l’écoute.

Comment migrer des stratégies d’accès aux applications vers RBAC pour les applications ?

Avec les stratégies d’accès aux applications, vous disposez d’un principal de service, d’autorisations de consentement dans Azure et d’une stratégie associée à un principal de service dans Exchange Online. Bien que vous puissiez restructurer votre mécanisme d’étendue à l’aide d’étendues de gestion Exchange ou d’unités administratives, voici quelques conseils sur la réutilisation des groupes dans une stratégie d’accès aux applications comme étendue pour votre subvention RBAC pour les applications. Ce processus n’entraîne aucune interruption d’utilisation de votre application.

Étapes de migration :

  1. Créez une étendue de gestion qui pointe vers le groupe d’étendue de la stratégie d’accès aux applications.

  2. Créez l’objet pointeur principal du service.

  3. Attribuez les autorisations nécessaires au principal de service dans Exchange Online avec la restriction d’étendue de gestion.

  4. Supprimer le consentement à l’autorisation dans Azure.

  5. Supprimez la stratégie d’accès aux applications.

    Lors de la création de l’étendue de gestion à l’étape 1, vous utilisez un filtre de destinataires avec le paramètre MemberOfGroupde filtre . Voici un exemple :

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

Remarque

Ce paramètre de filtre utilise le nom unique du groupe, que vous pouvez trouver à l’aide des applets de commande Get-Group.

Limites :

  • Les membres des groupes imbriqués sont considérés comme hors du champ d’application. Seule l’appartenance directe à un groupe fait en sorte que le membre est considéré comme étant dans le champ d’application de l’autorisation.
  • Groupes Microsoft 365, les groupes de sécurité Mail-Enabled et les listes de distribution sont pris en charge.

Comment le contrôle d’accès en fonction du rôle pour les applications fonctionne-t-il parallèlement aux stratégies d’accès aux applications ?

Compatibilité avec la stratégie d’accès aux applications :

RBAC pour Applications remplace les stratégies d’accès aux applications.

L’interopérabilité des autorisations peut être décrite comme suit :

  • Les stratégies d’accès aux applications limitent UNIQUEMENT les autorisations attribuées dans Microsoft Entra ID.

  • RBAC pour Applications offre une autre expression d’autorisation avec une étendue de ressource associée.

  • Une application peut avoir à la fois des autorisations de consentement de Microsoft Entra et des affectations RBAC. Nous nous attendons à ce cas lorsqu’une application a (par exemple) à l’échelle de Mail.Read l’organisation et une Mail.Sendétendue .

  • Les consentements d’autorisation sont additifs.

Premier exemple : consentements de 2 systèmes :

  • Une application a Mail.Read dans Microsoft Entra ID.
  • Cette application est limitée au groupe de sécurité 1 avec extension messagerie à l’aide d’une stratégie d’accès aux applications.
  • La même application a Calendar.Read obtenu son consentement pour le champ d’application de gestion 1 dans RBAC pour les applications.
  • La boîte aux lettres A appartient au groupe de sécurité 1 pour la messagerie.
  • La boîte aux lettres B est dans l’étendue de gestion 1.

Accès MS Graph à un point de terminaison nécessitant à la fois et Calendar.Read pour l’application Mail.Read 1 :

  • Ciblage de la boîte aux lettres A : échoue.
  • Ciblage de la boîte aux lettres B : échoue.

Ce point de terminaison a besoin à la fois Mail.Read de et Calendar.Read. Bien que l’application dispose de ces autorisations individuellement sur deux boîtes aux lettres distinctes, elle ne dispose pas des deux autorisations sur une boîte aux lettres.

Deuxième exemple : attribuer deux fois la même autorisation :

  • Une application a Mail.Read dans Microsoft Entra ID.
  • Cette application est limitée au groupe de sécurité 1 avec fonction messagerie à l’aide d’une stratégie d’accès aux applications.
  • La même application a Mail.Read obtenu son consentement pour le champ d’application de gestion 1 à l’aide de RBAC pour les applications.
  • La boîte aux lettres A appartient au groupe de sécurité 1 pour la messagerie.
  • L’étendue de gestion 1 autorise l’accès à toutes les boîtes aux lettres sauf la boîte aux lettres A (selon un filtre comme Alias -ne mbxa).

Accès MS Graph à un point de terminaison nécessitant Mail.Read pour l’application 1 :

  • Ciblage de la boîte aux lettres A : autoriser.
  • Ciblage de la boîte aux lettres B : autoriser.

Alors que de Mail.Read Microsoft Entra-only autorise l’accès à la boîte aux lettres A, l’attribution RBAC autorise l’accès à tout sauf A. En effet, cette affectation permet d’accéder à tout car « A » et Not A signifie tout.

Bien que nous ayons décrit ces cas limites par souci d’exhaustivité, nous ne nous attendons pas à ce que les stratégies d’accès aux applications soient généralement utilisées avec RBAC pour les applications. Les autorisations à l’échelle de l’organisation doivent être attribuées dans Microsoft Entra ID, tandis que les autorisations à l’échelle des ressources doivent être accordées à l’aide de RBAC pour les applications.

Combien d’applications sont prises en charge par le contrôle d’accès en fonction du rôle pour les applications ?

Vous pouvez avoir jusqu’à 10 000 applications par organisation à l’aide du contrôle d’accès en fonction du rôle pour les applications. Faites-nous savoir si cette limite vous pose problème. Nous avons conçu RBAC for Applications de manière hautement évolutive pour répondre aux besoins de nos plus grands clients.

Pourquoi la découverte automatique ne fonctionne-t-elle pas ?

Actuellement, le service de découverte automatique n’est pas accessible lors de l’utilisation de rôles d’application RBAC.

Si je supprime un principal de service dans Microsoft Entra, que se passe-t-il dans Exchange ?

Les principaux de service supprimés dans Microsoft Entra sont également supprimés automatiquement dans Exchange. Cette suppression supprime toutes les affectations faites à ces principaux de service mais ne modifie pas les étendues de gestion.

Commentaires sur cette fonctionnalité

Les commentaires sur cette fonctionnalité peuvent être partagés avec exoapprbacpreview@microsoft.com.