Поделиться через


Настройка область проверок доступа с помощью API проверок доступа

API Microsoft Entra проверок доступа позволяют программно проверять доступ, который пользователи, субъекты-службы или группы должны Microsoft Entra ресурсов в клиенте.

Вы настраиваете ресурсы Microsoft Entra для просмотра в свойстве область ресурса accessReviewScheduleDefinition. Следующие ресурсы предоставляют параметры для настройки область проверки доступа:

Ресурс Описание Примеры сценариев проверки доступа
accessReviewQueryScope Лучше всего применяться при проверке полного набора или подмножества субъектов, имеющих доступ к ресурсу или группе связанных ресурсов.
  • Членство пользователей, назначенных группе, либо прямых, либо прямых и транзитивных участников.
  • Доступ гостевых пользователей к одной группе.
  • Доступ гостевых пользователей ко всем группам Microsoft 365.
  • Субъекты-службы, назначенные привилегированным ролям.
  • Доступ пользователей и субъектов-служб к пакетам доступа управления правами.
accessReviewInactiveUsersQueryScope Наследует от accessReviewQueryScope. Используется при проверке только неактивных пользователей. Их неактивное состояние определяется свойством inactiveDuration .
  • Членство в группе только для неактивных пользователей
    principalResourceMembershipsScope Наследует от accessReviewScope. Лучше всего подходит для проверки доступа субъектов к ресурсам, где вы настраиваете уникальные пулы субъектов и ресурсов.
    • Доступ для трех определенных субъектов к одной группе Microsoft 365 и одной привилегированной Microsoft Entra роли.

      Из этой статьи вы узнаете, как область проверки доступа, настроив три производных типа ресурсов.

      Настройка область с помощью accessReviewQueryScope и accessReviewInactiveUsersQueryScope

      Чтобы настроить область с помощью типа ресурса accessReviewQueryScope, задайте значения свойств query, queryRoot и queryType.

      accessReviewInactiveUsersQueryScope требует всех свойств accessReviewQueryScope и включает свойство inactiveDuration .

      Примеры

      Примечание.

      В примерах в этом разделе показаны только допустимые сочетания principalScopes и resourceScopes, поддерживаемые Microsoft API Graph.

      Пример 1. Проверка всех пользователей с прямым и транзитивным назначением группе

      Пример сценария: Предположим, что группа А имеет три прямых члена : пользователи AU1 и AU2 и группа G1. Группа G1, с другой стороны, состоит из двух участников — пользователей GU1 и GU2. Таким образом, пользователи GU1 и GU2 являются транзитивными членами вложенной группы G1. В обзор включены четыре объекта: users AU1, AU2, GU1 и GU2.

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

      Пример 2. Проверка всех неактивных пользователей с прямым и транзитивным назначением группе

      Так как эта проверка применяется к неактивным пользователям, используйте ресурс accessReviewInactiveUsersQueryScope и укажите свойство type @odata.type со значением #microsoft.graph.accessReviewInactiveUsersQueryScope.

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

      Пример 3. Проверка всех гостевых пользователей с прямым и транзитивным назначением группе

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

      Пример 4. Проверка всех пользователей и групп с прямым назначением группе

      В следующем примере проверка ограничивается только непосредственными участниками группы, которые являются пользователями или другими группами. В этом область:

      • Прямые пользователи включаются в проверку.
      • Прямые группы включаются в проверку.
      • Транзитивные члены групп, т. е. члены вложенных групп, не включаются в проверку.

      Пример сценария: Предположим, что группа А имеет три прямых члена : пользователи AU1 и AU2 и группа G1. Группа G1, с другой стороны, состоит из двух участников — пользователей GU1 и GU2. Таким образом, пользователи GU1 и GU2 являются транзитивными членами вложенной группы G1. В этой проверке используются только три объекта: пользователи AU1 и AU2, а также группа G1.

      "scope": {
          "query": "/groups/{groupId}/members",
          "queryType": "MicrosoftGraph"
      }
      

      Пример 5. Проверка всех пользователей с прямым назначением любой группе Microsoft 365

      Так как эта проверка применяется ко всем группам Microsoft 365, настройте instanceEnumerationScope , чтобы указать группы Microsoft 365 для проверки. Группы, имеющие динамическое членство или назначаемые роли, не включены в эту проверку.

      "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"
      }
      

      Пример 6. Проверка всех гостевых пользователей с прямым назначением любой группе Microsoft 365

      Так как эта проверка применяется ко всем группам Microsoft 365, настройте instanceEnumerationScope , чтобы указать группы Microsoft 365 для проверки. Группы, имеющие динамическое членство или назначаемые роли, не включены в эту проверку.

      "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"
      }
      

      Пример 7. Проверка всех неактивных гостевых пользователей с прямым назначением любой группе Microsoft 365

      Так как эта проверка применяется к неактивным пользователям, используйте ресурс accessReviewInactiveUsersQueryScope и укажите свойство type @odata.type со значением #microsoft.graph.accessReviewInactiveUsersQueryScope. Кроме того, так как эта проверка применяется ко всем группам Microsoft 365, настройте instanceEnumerationScope , чтобы указать группы Microsoft 365 для проверки. Группы, имеющие динамическое членство или назначаемые роли, не включены в эту проверку.

      "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"
      }
      

      Пример 8. Проверка всех гостевых пользователей с прямым назначением командам, за исключением команд с общими каналами

      Так как эта проверка применяется ко всем группам Microsoft 365, связанным с Teams, настройте instanceEnumerationScope , чтобы указать группы Microsoft 365, связанные с Teams, для проверки. Группы, имеющие динамическое членство или назначаемые роли, не включены в эту проверку.

      Эта проверка не включает пользователей прямого подключения B2B в командах с общими каналами. Сведения о включении пользователей прямого подключения B2B в команды с общими каналами см. в статье Пример 14. Проверка всех пользователей, назначенных команде, включая пользователей прямого подключения B2B в команде с общими каналами.

      "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"
      }
      

      Пример 9. Проверка всех неактивных гостевых пользователей с прямым назначением командам

      Так как эта проверка применяется ко всем группам Microsoft 365, связанным с Teams, настройте instanceEnumerationScope , чтобы указать группы Microsoft 365, связанные с Teams, для проверки. Группы, имеющие динамическое членство или назначаемые роли, не включены в эту проверку.

      Эта проверка не включает пользователей прямого подключения B2B в командах с общими каналами. Сведения о включении пользователей прямого подключения B2B в команды с общими каналами см. в статье Пример 14. Проверка всех пользователей, назначенных команде, включая пользователей прямого подключения B2B в команде с общими каналами.

      "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"
      }
      

      Пример 10. Проверка всех назначений пакетов доступа управления правами

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

      Пример 11. Проверка всех субъектов-служб, назначенных привилегированной роли

      "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"
      }
      

      Пример 12. Проверка пользователей, назначенных роли администратора Microsoft Entra

      Пример 12.1. Проверка всех пользователей с активными или соответствующими назначениями роли каталога

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

      Пример 12.2. Проверка всех пользователей с соответствующими назначениями роли каталога

      "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"
      }
      

      Пример 12.2. Проверка всех пользователей с активными назначениями роли каталога

      "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"
      }
      

      Используйте principalResourceMembershipsScope для настройки область

      PrincipalResourceMembershipsScope предоставляет свойства principalScopes и resourceScopes для поддержки более специализированных параметров конфигурации для область объекта accessReviewScheduleDefinition. Эти возможности включают проверку доступа для нескольких субъектов или групп субъектов к нескольким ресурсам.

      Пример 13. Проверка всех пользователей, назначенных команде, включая пользователей прямого подключения B2B в команде с общими каналами

      В этом примере область проверки доступа — это все пользователи, являющиеся членами команды или назначенные общему каналу в команде. К ним относятся внутренние пользователи, прямые и транзитивные пользователи, пользователи службы совместной работы B2B и пользователи прямого подключения 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",
                  "queryType": "MicrosoftGraph",
                  "queryRoot": null
              },
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/teams/{groupId}/channels?$filter=(membershipType eq 'shared')",
                  "queryType": "MicrosoftGraph",
                  "queryRoot": null
              }
          ]
      }
      

      Чтобы просмотреть пользователей и команды прямого подключения B2B в общих каналах, необходимо указать /teams/{groupId}/channels?$filter=(membershipType eq 'shared') шаблон запроса в объекте resourceScopes. Обзор всех команд , например примеры 8 и 9, не включает пользователей и команды прямого подключения B2B в общих каналах.

      Примечание.

      Проверка доступа пользователей и команд прямого подключения B2B поддерживается только для одноэтапных проверок доступа, а не для многоэтапных проверок доступа.

      Пример 14. Проверка всех гостевых пользователей, назначенных роли каталога

      "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"
              }
          ]
      }
      

      Пример 15. Проверка всех пользователей с прямым или транзитивным назначением приложению

      "scope": {
          "@odata.type": "#microsoft.graph.principalResourceMembershipsScope",
          "principalScopes": [
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/v1.0/users",
                  "queryType": "MicrosoftGraph",
                  "queryRoot": null
              },
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "./members/microsoft.graph.user",
                  "queryType": "MicrosoftGraph",
                  "queryRoot": "/v1.0/groups"
              }
          ],
          "resourceScopes": [
              {
                  "@odata.type": "#microsoft.graph.accessReviewQueryScope",
                  "query": "/v1.0/servicePrincipals/{servicePrincipalId}",
                  "queryType": "MicrosoftGraph",
                  "queryRoot": null
              }
          ]
      }