Contrôle d’accès en fonction du rôle pour les applications dans Exchange Online

Cet article vous guide tout au long de l’utilisation d’un contrôle d’accès granulaire et évolutif, étendu aux ressources : contrôle d’accès en fonction du rôle (RBAC) pour les applications dans Exchange Online.

Vue d’ensemble

RBAC pour applications dans Exchange Online permet aux administrateurs d’accorder des autorisations à une application qui accède indépendamment aux données dans Exchange Online. Cette autorisation peut être associée à 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.

Remarque

Le service de découverte automatique n’est pas accessible lorsque vous utilisez des rôles d’application RBAC. Si vous devez effectuer des demandes de découverte automatique sur Exchange Online, utilisez les autorisations d’ID Microsoft Entra avec la stratégie d’accès aux applications pour limiter l’accès aux boîtes aux lettres.

Au cœur de ce système se trouve la configuration de l’attribution de rôle de gestion, qui exprime l’intention d’un administrateur d’autoriser un principal à accéder aux données. Dans ce cas, autoriser une application à jouer un rôle sur un ensemble de ressources cibles. Par exemple, un administrateur peut configurer un système de réservation de salles avec accès aux données de calendrier uniquement dans des régions spécifiques à l’aide d’une étendue de gestion. Consultez le diagramme ci-dessous illustrant le modèle d’attribution de rôle :

Diagramme du modèle d’attribution de rôle avec un 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 de service Microsoft Entra
  3. Sélectionner 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 RBAC Exchange Online pour accorder des attributions de délégation à ces rôles d’application comme vous le souhaitez. Dans l’ID Microsoft Entra, vous avez besoin du rôle 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 Étendue de gestion pour ajouter, supprimer, définir. Voici une liste des propriétés filtrables dans une étendue de gestion.

Remarque

Bien qu’il existe une propriété appelée Unités administratives, 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 une instance d’une application au sein de votre locataire. Vous devez considérer le principal de service dans Exchange comme un pointeur vers un principal de service existant dans l’ID Microsoft Entra. Les principaux de service ne peuvent pas être créés directement à l’aide des outils Exchange Online. Les outils Microsoft Entra sont utilisés pour gérer les inscriptions de principal de service au sein des locataires. Exchange empêche la création d’un pointeur non valide et reflète automatiquement les suppressions de principaux de service dans l’ID Microsoft Entra.

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 aidera à trouver ces ID dans l’ID Microsoft Entra :

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

Remarque

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

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

Supprimer le principal de 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 n’est assignable qu’à une application. Ces rôles peuvent être énumérés à l’aide de Get-ManagementRole.

Attributions de rôles

Les attributions de rôles de gestion lient un principal, un rôle et une étendue de ressource personnalisée d’accès. Cette affectation agit comme l’attribution d’autorisations pour un principal de service exécutant un rôle dans 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 l’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 l’ID Microsoft Entra.

Lors du test de 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 cette autorisation s’applique à cette boîte aux lettres pour ce principal de service, ou false que ce principal de service dispose de cette autorisation mais pas sur cette boîte aux lettres particulière. Si vous omettez cet indicateur, vous obtiendrez « Not Run ».

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

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 au calendrier pour les employés canadiens à l’aide d’une étendue 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 employees" -RecipientRestrictionFilter "CustomAttribute1 -eq '012332'"

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

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

Exemple 2 : Configuration de Mail.Read pour toutes les boîtes aux lettres d’unité d’administration d’Europe

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 : Tester les autorisations affecté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 exclusives ne limitent pas l’accès aux 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. Lors du test des configurations, la commande test contourne ce cache. Le cache d’une application sans appel entrant vers les API est réinitialisé en 30 minutes, tandis qu’une application activement utilisée maintient son cache actif pendant 2 heures.

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 Permet à l’application de lire les e-mails dans toutes les boîtes aux lettres sans utilisateur connecté.
Application Mail.ReadBasic MS Graph Mail.ReadBasic Permet à l’application de lire les e-mails à l’exception du corps, de previewBody, 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 des e-mails dans toutes les boîtes aux lettres sans utilisateur connecté. N’inclut pas l’autorisation d’envoyer des messages.
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 Permet à l’application de 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é.
Accès complet à la messagerie de l’application MS Graph Mail.ReadWrite, Mail.Send Permet à l’application de créer, lire, mettre à jour et supprimer des e-mails dans toutes les boîtes aux lettres et d’envoyer des messages en tant qu’utilisateur sans utilisateur connecté.
Accès complet à l’application Exchange 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 des e-mails dans toutes les boîtes aux lettres et d’envoyer des messages comme n’importe quel 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. Permet à l’application de créer, lire, mettre à jour et supprimer tous les contacts dans toutes les boîtes aux lettres.
Application EWS. AccessAsApp EWS EWS. AccessAsApp Permet à l’application d’utiliser les services web Exchange avec un accès complet à toutes les boîtes aux lettres.

Vous remarquerez peut-être que ces rôles représentent des autorisations Microsoft Graph que vous pouvez donner ailleurs dans la plateforme Azure Identity. Ces autorisations auront le même effet que ces autorisations Graph, à l’exception de ces attributions de rôles qui permettent un accès précis à l’étendue des ressources.

FAQ

Pourquoi mon application a-t-elle toujours accès aux boîtes aux lettres qui ne sont pas accordées à l’aide de RBAC ?

Vous devez vous assurer que vous avez supprimé les autorisations non étendues à l’échelle du locataire que vous avez attribuées dans l’ID Microsoft Entra. Les autorisations affectées à l’aide de RBAC agissent en plus des octrois que vous effectuez dans l’ID Microsoft Entra. Les autorisations Microsoft Entra ne peuvent être limitées qu’à l’aide de stratégies d’accès aux applications.

Comment puis-je afficher et modifier toutes les autorisations d’application dans une seule interface ?

Pour vous assurer que les administrateurs disposent d’une vue consolidée des autorisations d’application, nous allons présenter ces autorisations accordées dans Exchange Online dans une expérience d’administration 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’un consentement d’autorisation 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 d’une manière qui fonctionne bien pour vous en utilisant des étendues de gestion Exchange ou des 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 octroi RBAC pour applications. Ce processus n’entraînera aucune interruption de l’utilisation de votre application.

Étapes de migration :

  1. Créer une nouvelle étendue de gestion, qui pointe vers le groupe d’étendue à partir de la stratégie d’accès aux applications
  2. Créer l’objet pointeur de principal de service
  3. Attribuer 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. Supprimer la stratégie d’accès aux applications

Lors de la création de l’étendue de gestion à l’étape 1, vous allez utiliser un filtre de destinataire 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.

Limitations:

  • Les membres du groupe imbriqué sont considérés comme hors de portée. Seule l’appartenance directe au groupe entraîne la prise en compte du membre dans l’étendue de l’autorisation.
  • Les groupes Microsoft 365, les groupes de sécurité Mail-Enabled et les listes de distribution sont pris en charge.

Comment le RBAC pour les applications fonctionne-t-il avec les 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é d’autorisation peut être décrite comme suit :

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

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

  • Une application peut avoir à la fois des autorisations autorisées microsoft Entra et des affectations RBAC. Nous nous attendons à ce cas lorsqu’une application a mail.read à l’échelle du locataire et l’étendue Mail.Send, par exemple.

  • Les consentements d’autorisation sont additifs.

Exemple 1 : consentements de 2 systèmes

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

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

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

Ce point de terminaison nécessite Mail.Read et Calendar.Read. Bien que l’application dispose de ces autorisations individuellement sur deux boîtes aux lettres distinctes, elle n’a pas les deux autorisations sur une boîte aux lettres.

Exemple 2 : attribution de la même autorisation à deux reprises

  • Une application a Mail.Read dans l’ID Microsoft Entra
  • Cette application est limitée au groupe de sécurité à extension messagerie 1 à l’aide d’une stratégie d’accès aux applications
  • La même application a le consentement Mail.Read pour l’étendue de gestion 1 à l’aide du contrôle d’accès en fonction du rôle pour les applications
  • La boîte aux lettres A se trouve dans le groupe de sécurité à extension messagerie 1
  • L’étendue de gestion 1 autorise l’accès à toutes les boîtes aux lettres à l’exception de 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 Le fichier Mail.Read de Microsoft Entra autorise uniquement l’accès à la boîte aux lettres A, l’attribution RBAC autorise l’accès à tout, sauf À. En effet, cela permet d’accéder à tout, car « A et Non A » signifie tout.

Bien que nous ayons décrit ces cas de périphérie pour l’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 du locataire doivent être attribuées dans l’ID Microsoft Entra, tandis que les autorisations étendues aux ressources doivent être accordées à l’aide du contrôle d’accès en fonction du rôle pour les applications.

Combien d’applications sont prises en charge par RBAC pour applications ?

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

Commentaires sur cette fonctionnalité

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