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 :
Configuration Instructions
Les étapes suivantes vous guident pour créer ces affectations RBAC d’application :
- Créer une étendue de ressource (facultatif)
- Créer un pointeur vers un principal de service Microsoft Entra
- Sélectionner le rôle d’application approprié
- Créer une attribution de rôle
- 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 : Entité Exchange qui représente un ensemble de boîtes aux lettres à l’aide d’une expression de filtre sur les propriétés de ces boîtes aux lettres.
- Unités d’administration : Ressource Microsoft Entra qui peut être un conteneur pour d’autres ressources Microsoft Entra qui contient uniquement des groupes d’utilisateurs ou des appareils. Pour en savoir plus, consultez Unités administratives dans l’ID Microsoft Entra et Créer ou supprimer des unités administratives.
É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 :
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 :
- Créer une nouvelle étendue de gestion, qui pointe vers le groupe d’étendue à partir de la stratégie d’accès aux applications
- Créer l’objet pointeur de principal de service
- Attribuer les autorisations nécessaires au principal de service dans Exchange Online avec la restriction d’étendue de gestion
- Supprimer le consentement à l’autorisation dans Azure
- 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 MemberOfGroup
de 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.