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. |
|
accessReviewInactiveUsersQueryScope | Hereda de accessReviewQueryScope. Se usa cuando solo se revisan los usuarios inactivos. La propiedad inactiveDuration especifica su estado inactivo. |
|
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. |
|
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 .
Ejemplos
Nota:
En los ejemplos de esta sección se muestran las únicas combinaciones válidas de principalScopes y resourceScopes compatibles con Microsoft Graph API.
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. 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. 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. 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. 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. 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: 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 14: 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 15: 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
}
]
}
Contenido relacionado
- Asignación de revisores a la definición de revisión de acceso
- Pruebe los tutoriales para aprender a usar la API de revisiones de acceso para revisar el acceso a Microsoft Entra recursos.