Configurer l’étendue de votre révision d’accès à l’aide de Microsoft API Graph

L’API de révisions d’accès Azure AD vous permet de vérifier par programmation l’accès des utilisateurs, des principaux de service ou des groupes à vos ressources Azure AD. L’API peut vous aider à automatiser la révision proactive et à contrôler l’accès aux ressources de votre organisation.

Les ressources à examiner sont configurées dans la propriété d’étendue de la ressource accessReviewScheduleDefinition . Cette propriété est du type accessReviewScope, un type abstrait dont héritent les ressources API suivantes qui peuvent être utilisées pour configurer l’étendue de révision d’accès.

Ressource Description Exemples de scénarios
accessReviewQueryScope Hérite d’accessReviewScope. Le mieux s’applique lorsque vous examinez l’ensemble complet ou le sous-ensemble des principaux qui ont accès à une ressource ou à un groupe de ressources associées.
  • Appartenance des utilisateurs affectés à un groupe, membres directs ou membres directs et transitifs.
  • Accès utilisateur invité à un groupe.
  • L’utilisateur invité accède à tous les groupes Microsoft 365 dans un locataire.
  • Principaux de service affectés à des rôles privilégiés.
  • Accès utilisateur et principal de service aux packages d’accès Gestion des droits d’utilisation.
accessReviewInactiveUsersQueryScope Hérite d’accessReviewQueryScope. Utilisé lorsque seuls les utilisateurs inactifs sont examinés. Leur état inactif est spécifié par la propriété inactiveDuration .
  • Appartenance à un groupe d’utilisateurs inactifs uniquement.
    principalResourceMembershipsScope Hérite d’accessReviewScope. Le mieux est de vérifier l’accès des principaux aux ressources dans lesquelles vous configurez des pools uniques de principaux et de ressources.
    • Examen de l’accès à trois principaux spécifiques dans un groupe Microsoft 365 et un rôle Azure AD privilégié.

      Dans cet article, vous allez apprendre à étendre votre révision d’accès à l’aide de ces trois types de ressources dérivés.

      Utiliser accessReviewQueryScope et accessReviewInactiveUsersQueryScope pour configurer l’étendue

      Pour configurer l’étendue à l’aide du type accessReviewQueryScope , définissez les valeurs de ses propriétés query, queryRoot et queryType . Pour obtenir une description de ces propriétés, consultez le type de ressource accessReviewQueryScope .

      accessReviewInactiveUsersQueryScope nécessite toutes les propriétés d’accessReviewQueryScope et inclut une propriété inactiveDuration .

      Exemple 1 : Passer en revue tous les utilisateurs affectés à un groupe

      L’exemple suivant étendue la révision aux membres directs et transitifs du groupe qui sont des utilisateurs. Les membres transitifs sont membres des groupes imbriqués.

      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "/groups/{group id}/transitiveMembers/microsoft.graph.user",
          "queryType": "MicrosoftGraph"
      }
      

      Exemple de scénario : Supposons que le groupe A a trois membres directs : les utilisateurs AU1 et AU2 et le groupe G1. Le groupe G1 a en revanche deux membres : les utilisateurs GU1 et GU2. Les utilisateurs GU1 et GU2 sont donc des membres transitifs du groupe imbriqué G1. Quatre objets seront inclus dans la révision : utilisateurs AU1, AU2, GU1 et GU2.

      Pour passer en revue uniquement les utilisateurs inactifs affectés au groupe :

      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewInactiveUsersQueryScope",
          "inactiveDuration": "P30D",
          "query": "/groups/{group id}/transitiveMembers/microsoft.graph.user",
          "queryType": "MicrosoftGraph"
      }
      

      Cet exemple montre également comment étendre la révision aux membres directs et transitifs du groupe qui sont des utilisateurs inactifs.

      Exemple 2 : Examiner tous les utilisateurs invités affectés à un groupe

      L’exemple suivant étendue la révision aux membres directs et transitifs du groupe qui sont des utilisateurs invités. Les membres transitifs sont membres des groupes imbriqués.

      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "/groups/{group id}/transitiveMembers/microsoft.graph.user/?$filter=(userType eq 'Guest')",    
          "queryType": "MicrosoftGraph"
      }
      

      Exemple 3 : Examiner tous les utilisateurs et groupes affectés à un groupe

      L’exemple suivant limite la révision aux membres directs du groupe qui sont soit des utilisateurs, soit d’autres groupes. Dans cette étendue :

      • Les utilisateurs directs sont inclus dans la révision.
      • Les groupes directs sont inclus dans la révision.
      • Les membres transitifs des groupes, c’est-à-dire les membres de groupes imbriqués, ne sont pas inclus dans la révision.
      "scope": {
              "query": "/groups/{group id}/members",
              "queryType": "MicrosoftGraph"
      }
      

      Exemple de scénario : Supposons que le groupe A a trois membres directs : les utilisateurs AU1 et AU2 et le groupe G1. Le groupe G1 a en revanche deux membres : les utilisateurs GU1 et GU2. Les utilisateurs GU1 et GU2 sont donc des membres transitifs du groupe imbriqué G1. Seuls trois objets sont ciblés dans la révision ci-dessus, les utilisateurs AU1 et AU2 et le groupe G1.

      Exemple 4 : Examiner tous les utilisateurs affectés à tous les groupes Microsoft 365

      L’exemple suivant crée une révision de chaque groupe Microsoft 365 qui contient des utilisateurs invités. Pour l’instance de révision sur chaque groupe, la révision est limitée aux seuls membres directs du groupe qui sont des utilisateurs invités.

      "instanceEnumerationScope": {
          "query": "/groups?$filter=(groupTypes/any(c:c eq 'Unified'))",
          "queryType": "MicrosoftGraph"
      },
      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "./members/microsoft.graph.user",
          "queryType": "MicrosoftGraph"
      }
      

      En outre, étant donné que cette révision est appliquée à tous les groupes Microsoft 365, configurez instanceEnumerationScope pour spécifier les groupes Microsoft 365 à examiner. Les groupes dynamiques et les groupes assignables aux rôles ne sont pas inclus dans cette révision.

      Exemple 5 : Examiner tous les utilisateurs invités affectés à tous les groupes Microsoft 365

      L’exemple suivant définit l’étendue de la révision pour diriger les membres de tous les groupes Microsoft 365 qui sont des utilisateurs invités.

      "instanceEnumerationScope": {
          "query": "/groups?$filter=(groupTypes/any(c:c eq 'Unified'))",
          "queryType": "MicrosoftGraph"
      },
      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "./members/microsoft.graph.user/?$filter=(userType eq 'Guest')",
          "queryType": "MicrosoftGraph"
      }
      

      En outre, étant donné que cette révision est appliquée à tous les groupes Microsoft 365, configurez instanceEnumerationScope pour spécifier les groupes Microsoft 365 à examiner. Les groupes dynamiques et les groupes assignables aux rôles ne sont pas inclus dans cette révision.

      Passer en revue tous les utilisateurs invités inactifs affectés à tous les groupes Microsoft 365

      L’exemple suivant définit l’étendue de la révision sur les membres directs de tous les Microsoft 365 qui sont des utilisateurs invités inactifs.

      "instanceEnumerationScope": {
          "query": "/groups?$filter=(groupTypes/any(c:c eq 'Unified'))",
          "queryType": "MicrosoftGraph"
      },
      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewInactiveUsersQueryScope",
          "query": "./members/microsoft.graph.user/?$filter=(userType eq 'Guest')",
          "queryType": "MicrosoftGraph",
          "inactiveDuration": "P30D"
      }
      

      En outre, étant donné que cette révision est appliquée aux utilisateurs inactifs, utilisez la ressource accessReviewInactiveUsersQueryScope et spécifiez la propriété @odata.type avec la valeur #microsoft.graph.accessReviewInactiveUsersQueryScope. Les groupes dynamiques et les groupes assignables aux rôles ne sont pas inclus dans cette révision.

      Exemple 6 : Examiner tous les utilisateurs invités affectés à toutes les équipes

      L’exemple suivant définit l’étendue de la révision pour diriger les membres de toutes les équipes qui sont des utilisateurs invités.

      "instanceEnumerationScope": {
          "query": "/groups?$filter=(groupTypes/any(c:c eq 'Unified') and resourceProvisioningOptions/Any(x:x eq 'Team')')",
          "queryType": "MicrosoftGraph"
      },
      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "./members/microsoft.graph.user/?$filter=(userType eq 'Guest')",
          "queryType": "MicrosoftGraph"
      }
      

      En outre, étant donné que cette révision est appliquée à tous les groupes de Microsoft 365 Teams activés, configurez instanceEnumerationScope pour spécifier les groupes Microsoft 365 activés pour la Teams à examiner. Les groupes dynamiques et les groupes assignables aux rôles ne sont pas inclus dans cette révision.

      Cette révision n’inclut pas les utilisateurs de connexion directe B2B dans les équipes avec des canaux partagés. Pour inclure les utilisateurs B2B Direct Connect dans les équipes avec des canaux partagés, consultez l’exemple 11 : Passez en revue tous les utilisateurs affectés à une équipe, y compris les utilisateurs de connexion directe B2B dans une équipe avec des canaux partagés.

      Passez en revue tous les utilisateurs invités inactifs affectés à tous les Teams

      L’exemple suivant limite la révision aux membres directs de toutes les équipes qui sont des utilisateurs invités inactifs.

      "instanceEnumerationScope": {
          "query": "/groups?$filter=(groupTypes/any(c:c eq 'Unified') and resourceProvisioningOptions/Any(x:x eq 'Team')')",
          "queryType": "MicrosoftGraph"
      },
      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewInactiveUsersQueryScope",
          "query": "./members/microsoft.graph.user/?$filter=(userType eq 'Guest')",
          "queryType": "MicrosoftGraph",
          "inactiveDuration": "P30D"
      }
      

      En outre, étant donné que cette révision est appliquée à toutes les équipes, configurez la propriété instanceEnumerationScope pour spécifier toutes les équipes. Les groupes dynamiques et les groupes assignables aux rôles ne sont pas inclus dans cette révision.

      Cette révision n’inclut pas les utilisateurs de connexion directe B2B dans les équipes avec des canaux partagés. Pour inclure les utilisateurs B2B Direct Connect dans les équipes avec des canaux partagés, consultez l’exemple 11 : Passez en revue tous les utilisateurs affectés à une équipe, y compris les utilisateurs de connexion directe B2B dans une équipe avec des canaux partagés.


      Exemple 7 : Passer en revue toutes les affectations aux packages d’accès gestion des droits d’utilisation

      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "/identityGovernance/entitlementManagement/accessPackageAssignments?$filter=(accessPackageId eq '{package id}' and assignmentPolicyId eq '{id}')",
          "queryType": "MicrosoftGraph"
      }
      

      Exemple 8 : Examiner tous les principaux de service affectés à un rôle privilégié

      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "/roleManagement/directory/roleAssignmentScheduleInstances?$expand=principal&$filter=(isof(principal,'microsoft.graph.servicePrincipal') and roleDefinitionId eq '{role ID}')",
          "queryType": "MicrosoftGraph"
      }
      

      Exemple 9 : Examiner tous les utilisateurs affectés à un rôle privilégié

      Passer en revue tous les utilisateurs affectés à un rôle privilégié (toutes les attributions actives et éligibles incluses)

      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "/roleManagement/directory/roleDefinitions/{role ID}",
          "queryType": "MicrosoftGraph"
      }
      

      Passer en revue tous les utilisateurs disposant d’une attribution éligible à un rôle privilégié

      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "/roleManagement/directory/roleEligibilityScheduleInstances?$expand=principal&$filter=(isof(principal,'microsoft.graph.user') and roleDefinitionId eq '{role ID}')",
          "queryType": "MicrosoftGraph"
      }
      

      Passer en revue tous les utilisateurs disposant d’une attribution active à un rôle privilégié

      "scope": {
          "@odata.type": "#microsoft.graph.accessReviewQueryScope",
          "query": "/roleManagement/directory/roleAssignmentScheduleInstances?$expand=principal&$filter=(assignmentType eq 'Assigned' and isof(principal,'microsoft.graph.user') and roleDefinitionId eq '{role ID}')",
          "queryType": "MicrosoftGraph"
      }
      

      Utiliser principalResourceMembershipsScope pour configurer l’étendue

      PrincipalResourceMembershipsScope expose les propriétés principalScopes et resourceScopes pour prendre en charge des options de configuration plus personnalisées pour l’étendue de l’objet accessReviewScheduleDefinition. Les fonctionnalités incluent la révision de l’accès de plusieurs principaux ou groupes de principaux à plusieurs ressources.

      Exemple 10 : Examiner tous les utilisateurs invités inactifs affectés à tous les groupes

      L’exemple suivant limite la révision aux membres directs de tous les groupes qui sont des utilisateurs invités inactifs. Les utilisateurs invités sont considérés comme des utilisateurs inactifs lorsque la période d’inactivité est de 30 jours à compter de la date de début de l’instance de révision d’accès.

      "scope": {
          "@odata.type": "#microsoft.graph.principalResourceMembershipsScope",
          "principalScopes": [
              {
                  "@odata.type": "#microsoft.graph.accessReviewInactiveUsersQueryScope",
                  "query": "/users?$filter=(userType eq 'Guest')",
                  "queryType": "MicrosoftGraph",
                  "inactiveDuration": "P30D"
              }
          ],
          "resourceScopes": [
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/groups",
                  "queryType": "MicrosoftGraph"
              }
          ]
      }
      

      Exemple 11 : Passer en revue tous les utilisateurs affectés à une équipe, y compris les utilisateurs de connexion directe B2B dans une équipe avec des canaux partagés

      Dans cet exemple, l’étendue de révision d’accès est celle de tous les utilisateurs membres d’une équipe ou affectés à un canal partagé au sein de l’équipe. Ces membres incluent les utilisateurs internes, les utilisateurs directs et transitifs, les utilisateurs B2B Collaboration et les utilisateurs de connexion directe B2B.

      "scope": {
          "@odata.type": "#microsoft.graph.principalResourceMembershipsScope",
          "principalScopes": [
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/users",
                  "queryType": "MicrosoftGraph",
                  "queryRoot": null
              }
          ],
          "resourceScopes": [
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/groups/{groupId}/transitiveMembers/microsoft.graph.user",
                  "queryType": "MicrosoftGraph",
                  "queryRoot": null
              },
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/teams/{groupId}/channels?$filter=(membershipType eq 'shared')",
                  "queryType": "MicrosoftGraph",
                  "queryRoot": null
              }
          ]
      }
      

      Pour passer en revue les utilisateurs et les équipes de connexion directe B2B au sein de canaux partagés, vous devez spécifier le /teams/{groupId}/channels?$filter=(membershipType eq 'shared') modèle de requête dans l’objet resourceScopes . Une révision de toutes les équipes , telle que l’exemple 7, n’inclut pas les utilisateurs de connexion directe B2B et les équipes dans les canaux partagés.

      Notes

      La révision d’accès des utilisateurs et des équipes de connexion directe B2B est prise en charge uniquement dans les révisions d’accès à une seule étape et non dans les révisions d’accès en plusieurs étapes.

      Exemple 12 : Examiner tous les utilisateurs invités affectés à un rôle d’annuaire

      "scope": {
          "@odata.type": "#microsoft.graph.principalResourceMembershipsScope",
          "principalScopes": [
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/users?$filter=(userType eq 'Guest')",
                  "queryType": "MicrosoftGraph"
              }
          ],
          "resourceScopes": [
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/roleManagement/directory/roleDefinitions/{role id}",
                  "queryType": "MicrosoftGraph"
              }
          ]
      }
      

      Étapes suivantes