Configuración del ámbito de las revisiones de acceso mediante las API de revisiones de acceso

Las API de revisiones de acceso Microsoft Entra permiten revisar mediante programación el acceso que los usuarios, las entidades de servicio o los grupos tienen que Microsoft Entra recursos en el inquilino.

Los recursos de Microsoft Entra se configuran para revisarlos en la propiedad scope del recurso accessReviewScheduleDefinition. Los siguientes recursos exponen la configuración para configurar el ámbito de la revisión de acceso:

Recurso Descripción Escenarios de revisión de acceso de ejemplo
accessReviewQueryScope Se aplica mejor al revisar el conjunto completo o subconjunto de entidades de seguridad que tienen acceso a un recurso o grupo de recursos relacionados.
  • Pertenencia de usuarios asignados a un grupo, ya sean miembros directos o miembros directos y transitivos.
  • Acceso de usuario invitado a un grupo.
  • Acceso de usuario invitado a todos los grupos de Microsoft 365.
  • Entidades de servicio asignadas a roles con privilegios.
  • Acceso de usuario y entidad de servicio a los paquetes de acceso de administración de derechos.
accessReviewInactiveUsersQueryScope Hereda de accessReviewQueryScope. Se usa cuando solo se revisan los usuarios inactivos. La propiedad inactiveDuration especifica su estado inactivo.
  • Pertenencia a grupos solo para usuarios inactivos
    principalResourceMembershipsScope Hereda de accessReviewScope. Se aplica mejor a la revisión del acceso de las entidades de seguridad a los recursos en los que se configuran grupos únicos de entidades de seguridad y recursos.
    • Acceso para tres entidades de seguridad específicas a un grupo de Microsoft 365 y a un rol de Microsoft Entra con privilegios.

      En este artículo, aprenderá a limitar la revisión de acceso mediante la configuración de los tres tipos de recursos derivados.

      Configuración del ámbito mediante accessReviewQueryScope y accessReviewInactiveUsersQueryScope

      Para configurar el ámbito mediante el tipo de recurso accessReviewQueryScope, establezca los valores de sus propiedades query, queryRoot y queryType .

      accessReviewInactiveUsersQueryScope requiere todas las propiedades de accessReviewQueryScope e incluye una propiedad inactiveDuration .

      Ejemplo 1: Revisión de todos los usuarios con asignación directa y transitiva a un grupo

      Escenario de ejemplo: Supongamos que el grupo A tiene tres miembros directos: los usuarios AU1 y AU2 y el grupo G1. Por otro lado, el grupo G1 tiene dos miembros: los usuarios GU1 y GU2. Por lo tanto, los usuarios GU1 y GU2 son miembros transitivos del grupo anidado G1. En la revisión se incluyen cuatro objetos: usuarios AU1, AU2, GU1 y GU2.

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

      Ejemplo 2: Revisión de todos los usuarios inactivos con asignación directa y transitiva a un grupo

      Dado que esta revisión se aplica a usuarios inactivos, use el recurso accessReviewInactiveUsersQueryScope y especifique la propiedad de tipo @odata.type con el valor #microsoft.graph.accessReviewInactiveUsersQueryScope.

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

      Ejemplo 3: Revisión de todos los usuarios invitados con asignación directa y transitiva a un grupo

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

      Ejemplo 4: Revisión de todos los usuarios y grupos con asignación directa a un grupo

      En el ejemplo siguiente se limita la revisión a solo los miembros directos del grupo que son usuarios u otros grupos. En este ámbito:

      • Los usuarios directos se incluyen en la revisión.
      • Los grupos directos se incluyen en la revisión.
      • Los miembros transitivos de los grupos, es decir, los miembros de grupos anidados, no se incluyen en la revisión.

      Escenario de ejemplo: Supongamos que el grupo A tiene tres miembros directos: los usuarios AU1 y AU2 y el grupo G1. Por otro lado, el grupo G1 tiene dos miembros: los usuarios GU1 y GU2. Por lo tanto, los usuarios GU1 y GU2 son miembros transitivos del grupo anidado G1. Solo se destinan tres objetos en esta revisión, los usuarios AU1 y AU2 y el grupo G1.

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

      Ejemplo 5: Revisión de todos los usuarios con asignación directa a cualquier grupo de Microsoft 365

      Dado que esta revisión se aplica a todos los grupos de Microsoft 365, configure instanceEnumerationScope para especificar los grupos de Microsoft 365 que se van a revisar. Los grupos que son de pertenencia dinámica o que se pueden asignar roles no se incluyen en esta revisión.

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

      Ejemplo 6: Revisar todos los usuarios invitados con asignación directa a cualquier grupo de Microsoft 365

      Dado que esta revisión se aplica a todos los grupos de Microsoft 365, configure instanceEnumerationScope para especificar los grupos de Microsoft 365 que se van a revisar. Los grupos que son de pertenencia dinámica o que se pueden asignar roles no se incluyen en esta revisión.

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

      Ejemplo 7: Revisión de todos los usuarios invitados inactivos con asignación directa a cualquier grupo de Microsoft 365

      Dado que esta revisión se aplica a usuarios inactivos, use el recurso accessReviewInactiveUsersQueryScope y especifique la propiedad de tipo @odata.type con el valor #microsoft.graph.accessReviewInactiveUsersQueryScope. Además, dado que esta revisión se aplica a todos los grupos de Microsoft 365, configure instanceEnumerationScope para especificar los grupos de Microsoft 365 que se van a revisar. Los grupos que son de pertenencia dinámica o que se pueden asignar roles no se incluyen en esta revisión.

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

      Ejemplo 8: Revisar todos los usuarios invitados con asignación directa a equipos, excepto equipos con canales compartidos

      Dado que esta revisión se aplica a todos los grupos de Microsoft 365 asociados a Teams, configure instanceEnumerationScope para especificar los grupos de Microsoft 365 asociados a Teams que se van a revisar. Los grupos que son de pertenencia dinámica o que se pueden asignar roles no se incluyen en esta revisión.

      Esta revisión no incluye los usuarios de conexión directa B2B en equipos con canales compartidos. Para incluir usuarios de conexión directa B2B en equipos con canales compartidos, consulte Ejemplo 14: Revisión de todos los usuarios asignados a un equipo, incluidos los usuarios de conexión directa B2B en un equipo con canales compartidos.

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

      Ejemplo 9: Revisión de todos los usuarios invitados inactivos con asignación directa a equipos

      Dado que esta revisión se aplica a todos los grupos de Microsoft 365 asociados a Teams, configure instanceEnumerationScope para especificar los grupos de Microsoft 365 asociados a Teams que se van a revisar. Los grupos que son de pertenencia dinámica o que se pueden asignar roles no se incluyen en esta revisión.

      Esta revisión no incluye los usuarios de conexión directa B2B en equipos con canales compartidos. Para incluir usuarios de conexión directa B2B en equipos con canales compartidos, consulte Ejemplo 14: Revisión de todos los usuarios asignados a un equipo, incluidos los usuarios de conexión directa B2B en un equipo con canales compartidos.

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

      Ejemplo 10: Revisión de todas las asignaciones a paquetes de acceso de administración de derechos

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

      Ejemplo 11: Revisión de todas las entidades de servicio asignadas a un rol con privilegios

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

      Ejemplo 12: Revisión de los usuarios asignados a un rol de administrador de Microsoft Entra

      Ejemplo 12.1: Revisión de todos los usuarios con asignaciones activas o aptas para un rol de directorio

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

      Ejemplo 12.2: Revisión de todos los usuarios con asignaciones aptas a un rol de directorio

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

      Ejemplo 12.2: Revisión de todos los usuarios con asignaciones activas a un rol de directorio

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

      Uso de principalResourceMembershipsScope para configurar el ámbito

      El principalResourceMembershipsScope expone las propiedades principalScopes y resourceScopes para admitir opciones de configuración más personalizadas para el ámbito del objeto accessReviewScheduleDefinition. Las funcionalidades incluyen la revisión del acceso de varias entidades de seguridad o grupos de entidades de seguridad a varios recursos.

      Ejemplo 13: Revisión de todos los usuarios invitados inactivos con asignación directa a grupos

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

      Ejemplo 14: Revisar todos los usuarios asignados a un equipo, incluidos los usuarios de conexión directa B2B en un equipo con canales compartidos

      En este ejemplo, el ámbito de revisión de acceso es todos los usuarios que son miembros de un equipo o que están asignados a un canal compartido dentro del equipo. Estos miembros incluyen usuarios internos, usuarios directos y transitivos, usuarios de colaboración B2B y usuarios de conexión directa 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
              }
          ]
      }
      

      Para revisar la conexión directa de B2B a usuarios y equipos dentro de canales compartidos, debe especificar el /teams/{groupId}/channels?$filter=(membershipType eq 'shared') patrón de consulta en el objeto resourceScopes. Una revisión de todos los equipos , como los ejemplos 8 y 9, no incluye la conexión directa de B2B a usuarios y equipos dentro de canales compartidos.

      Nota:

      La revisión de acceso de los usuarios y equipos de conexión directa B2B solo se admite para las revisiones de acceso de una sola fase y no para las revisiones de acceso de varias fases.

      Ejemplo 15: Revisión de todos los usuarios invitados asignados a un rol de directorio

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

      Ejemplo 16: Revisión de todos los usuarios con asignación directa o transitiva a una aplicación

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