¿Qué es la gobernanza de propietarios de grupos Entra ID?
La gobernanza de propietarios de grupos Entra ID comienza con una pregunta de acceso: ¿quién puede cambiar las personas admitidas mediante un grupo y quién sigue siendo responsable cuando cambia su finalidad? Microsoft distingue la propiedad de objetos de los roles de directorio. Un propietario de grupo puede administrar las propiedades, los propietarios y los miembros de su propio grupo; las altas y bajas manuales de miembros se aplican a la pertenencia Assigned. La propiedad no otorga a esa persona derechos de administración sobre todos los grupos. Microsoft Learn: permisos de usuario predeterminados.
Esa autoridad importa cuando un grupo controla un recurso real. Microsoft documenta la asignación de aplicaciones empresariales mediante grupos, con acceso para los usuarios del grupo asignado y sin propagación a grupos anidados. La asignación de aplicaciones basada en grupos requiere Entra ID P1 o P2. La inferencia operativa es sencilla: quien pueda cambiar los miembros de ese grupo puede cambiar la población que recibe acceso a la aplicación asignada. Establezca primero la asignación real de la aplicación; ser propietario de un grupo no relacionado no demuestra tal acceso. Microsoft Learn: asignar usuarios y grupos a aplicaciones.
En un grupo Microsoft 365 conectado a un sitio de equipo de SharePoint, los propietarios pasan a ser propietarios del sitio y los miembros pasan a ser miembros del sitio. SharePoint también puede mantener permisos independientes del grupo conectado. Por tanto, la revisión debe registrar tanto la relación con el grupo como las demás concesiones del sitio. Quitar un miembro del grupo no basta para demostrar que han desaparecido todas las vías independientes de acceso al sitio. Microsoft Learn: uso compartido y permisos de SharePoint.
Esta guía separa seis señales de revisión: un propietario invitado, ausencia de propietario, ausencia de miembros y de elemento superior, visibilidad Public, falta de cobertura de caducidad para todo el tenant y una cantidad elevada de miembros recopilados. Responden a preguntas diferentes. Ninguna demuestra una intrusión, un rol administrativo para todo el tenant ni una decisión empresarial de eliminar un grupo. Los predicados exactos de EtcSec aparecen más abajo con sus ubicaciones de origen.
Cómo funcionan la propiedad, los ajustes de invitados y la caducidad
La propiedad de un invitado es condicional
Para los grupos Microsoft 365, el ajuste Group.Unified AllowGuestsToBeGroupOwner controla si un invitado puede ser propietario. AllowGuestsToAccessGroups se refiere al acceso a los grupos y a sus datos; AllowToAddGuests se refiere a la pertenencia de invitados. Trate estas decisiones por separado, sin interpretar un ajuste como permiso para las tres operaciones. La descripción de los ajustes identifica el ámbito Microsoft 365 y el requisito de licencia P1 para el ajuste de propiedad. Microsoft Learn: ajustes de grupos.
La referencia de configuración de Microsoft establece False como valor predeterminado de AllowGuestsToBeGroupOwner. Un tenant no permite automáticamente que los invitados sean propietarios de grupos Microsoft 365 por el mero hecho de admitir la colaboración. Examine conjuntamente la configuración efectiva y la asignación real de propiedad. Cuando no haya un objeto de ajustes personalizado, consulte los valores predeterminados de la plantilla, en lugar de interpretar la ausencia del objeto como permiso. Microsoft Learn: configurar los ajustes de grupos.
No extrapole este control Group.Unified a una regla general para todos los grupos de seguridad. Graph documenta por separado la incorporación de usuarios o entidades de servicio como propietarios de grupos Microsoft 365 o de seguridad. En un grupo asociado a Teams, la sincronización de propietarios puede tardar hasta dos horas, y algunos cambios de equipo también requieren que el propietario sea miembro. Microsoft Learn: agregar propietarios de grupo.
Las restricciones de invitados también afectan a las opciones de administración disponibles. Con permisos de invitado restringidos, My Apps no muestra la lista de grupos de los que un invitado es propietario o miembro. SharePoint y Teams conservan sus propios controles de invitados. Por tanto, una relación de propiedad observada es una señal de revisión, no una prueba de que todas las acciones de administración funcionen en todas las interfaces. Valide la operación y el servicio específicos en un entorno de pruebas autorizado. Microsoft Learn: restringir los permisos de invitados.
Considere una exposición ilustrativa: un grupo Assigned otorga acceso a una aplicación de proyecto y un invitado es su propietario autorizado. Un cambio de miembros podría modificar el acceso a esa aplicación si la operación correspondiente está permitida. Es una inferencia basada en la propiedad y la asignación de aplicaciones documentadas, no un incidente observado ni una elevación demostrada a Global Administrator. Documente el recurso y las restricciones aplicables antes de tratar el escenario como una vía de acceso sobre la que actuar. Permisos de propiedad, asignación de aplicaciones.
Sin propietario, vacío y sin uso son estados distintos
Un grupo puede tener miembros sin propietario. Otro puede tener propietario sin miembros. Un tercero puede estar vacío y seguir siendo necesario para un flujo de trabajo previsto. Mantenga la propiedad, la pertenencia, las relaciones con elementos superiores y la finalidad empresarial en campos de revisión separados. El archivo group-no-owner.go:37 del recopilador examina propietarios; group-orphaned.go:39 examina miembros y elementos superiores. Ninguna función mide la necesidad empresarial.
La directiva de Microsoft para grupos sin propietario se aplica a grupos Microsoft 365 y solo está disponible en nubes públicas. Envía a los miembros elegibles invitaciones que les permiten aceptar la propiedad, con duración de notificación configurable y elegibilidad mediante grupos de seguridad. Es un flujo de recuperación que requiere la aceptación del miembro, no una asignación automática de responsabilidad. Microsoft Learn: recurso ownerlessGroupPolicy.
Si nadie acepta durante el período de notificación, las notificaciones cesan y los administradores deben encontrar y asignar un propietario. La guía de administración de Microsoft también documenta los requisitos de licencia y buzón para las notificaciones. Incluya esa cola de casos pendientes en el procedimiento operativo; habilitar la directiva no demuestra por sí solo que todos los grupos sin propietario hayan adquirido propietarios responsables. Microsoft Learn: administrar grupos y equipos sin propietario.
La caducidad cubre los grupos Microsoft 365
Una directiva de caducidad se aplica a grupos Microsoft 365, no a todos los grupos de seguridad. Los grupos activos pueden renovarse automáticamente cerca del vencimiento mediante la actividad documentada de Outlook, SharePoint, Teams o Viva Engage. Los grupos que no se renuevan se eliminan, con un período de restauración de 30 días. Por tanto, un grupo antiguo puede renovarse repetidamente bajo una directiva válida. Su antigüedad no demuestra por sí sola la falta de cobertura de caducidad. Microsoft Learn: caducidad de grupos Microsoft 365.
El recurso groupLifecyclePolicy separa duración y cobertura: groupLifetimeInDays define el intervalo renovable, mientras que managedGroupTypes es All, Selected o None. Selected requiere comprobar la inclusión del grupo concreto. alternateNotificationEmails proporciona direcciones de notificación para grupos sin propietario. Trate una fecha de caducidad renovada como evidencia de ciclo de vida, no como una certificación empresarial. Microsoft Learn: recurso de directiva de ciclo de vida.
La visibilidad Public merece una revisión de recursos
Microsoft describe Public como una opción que permite a los usuarios unirse sin permiso del propietario, mientras que Private lo requiere. La pertenencia privada no se oculta automáticamente; HiddenMembership es un valor separado. La visibilidad pública de un grupo debe desencadenar una revisión de la admisión prevista y de los recursos conectados. Por sí sola no demuestra acceso anónimo desde Internet ni recuperación satisfactoria de datos. Microsoft Learn: opciones de visibilidad de grupos.
Detección: medir el directorio antes de interpretar los hallazgos
Los siguientes bloques reproducen la sintaxis de solicitudes o ejemplos de Microsoft Learn. Las rutas relativas pertenecen a la documentación de Graph v1.0. Los identificadores entre llaves deben resolverse a objetos reales; el identificador fijo del ejemplo de recuento es el ejemplo de Microsoft. Ninguna solicitud de esta guía se ejecutó contra un tenant. Conserve el ámbito de las solicitudes, los fallos de recopilación y la paginación junto con el inventario resultante.
1. Establecer el tipo de grupo y el ámbito de recopilación
La página List groups de Microsoft proporciona este filtro Microsoft 365 literalmente:
GET https://graph.microsoft.com/v1.0/groups?$filter=groupTypes/any(c:c+eq+'Unified')
Úselo para el inventario Microsoft 365, no como toda la revisión de grupos de seguridad. La misma página documenta tamaños de página predeterminado y máximo de 100 y 999, además de retrasos de replicación tras los cambios. Siga cada @odata.nextLink devuelto; una sola página o un resultado recientemente desactualizado no debe cerrar un hallazgo. Microsoft Learn: enumerar grupos.
Para cada grupo seleccionado, la sintaxis documentada de Get group es:
GET /groups/{id}
La API admite $select para propiedades específicas. Conserve el ID del grupo, el tipo de pertenencia y el estado de sincronización en el registro de revisión, y guarde la respuesta sin procesar para distinguir atributos ausentes de respuestas negativas. Microsoft Learn: obtener un grupo.
El recurso group actual de v1.0 documenta groupTypes con Unified para grupos Microsoft 365 y expirationDateTime como su marca temporal de caducidad definida por la directiva. Esa fecha es nula en los grupos de seguridad. No informe de la fecha nula de un grupo de seguridad como un hallazgo de ciclo de vida Microsoft 365 sin cobertura. Microsoft Learn: propiedades de grupos.
2. Examinar propietarios y resolver su tipo de identidad
Lea la relación de propietarios con la sintaxis de Learn:
GET /groups/{id}/owners
La relación puede contener usuarios o entidades de servicio. Graph no expone propietarios para grupos creados en Exchange, grupos de distribución o grupos sincronizados desde el entorno local. La página v1.0 también documenta propietarios de tipo entidad de servicio ausentes y objetos con información limitada cuando el llamador no puede leer un tipo de recurso. En esos objetos, los atributos pueden ser nulos mientras el ID y el tipo siguen disponibles. Siga la paginación y conserve las identidades no resueltas; los atributos ausentes no permiten establecer que un grupo carece de propietarios o que un propietario es invitado. Microsoft Learn: enumerar propietarios.
Resuelva explícitamente los propietarios de tipo usuario y examine el userType recopilado. La API Get user de Microsoft admite seleccionar propiedades no predeterminadas; la referencia de permisos predeterminados distingue usuarios Member y Guest. No sustituya el atributo de identidad por dominios de correo o cadenas #EXT#, ni infiera una intrusión a partir de una clasificación Guest. Microsoft Learn: obtener un usuario, tipos de usuario.
Si usa un filtro avanzado de recuento de propietarios durante la investigación, aplique los requisitos documentados de ConsistencyLevel: eventual y de recuento. Las consultas avanzadas utilizan un índice separado y no permiten combinar estos filtros de relaciones con $expand. Mantenga la lista de candidatos sin propietario separada de las lecturas de propietarios confirmadas por grupo. Microsoft Learn: capacidades de consulta avanzada.
3. Verificar por separado miembros, tamaño y elementos superiores directos
Learn proporciona la solicitud de miembros directos:
GET /groups/{id}/members
Su ejemplo de recuento es:
GET https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members/$count
ConsistencyLevel: eventual
Son objetos de directorio directos, no un recuento transitivo de personas distintas. La API members documenta una omisión de entidades de servicio en v1.0, y la pertenencia oculta requiere Member.Read.Hidden. Para validar, enumere todas las páginas y elimine ID duplicados; registre las restricciones en lugar de presentar una lista incompleta como un total exhaustivo de miembros. Microsoft Learn: enumerar miembros.
Lea la relación con elementos superiores en una solicitud separada:
GET /groups/{id}/memberOf
La API devuelve pertenencias directas en lugar de un grafo transitivo. La respuesta puede incluir grupos, unidades administrativas o roles administrativos según el tipo de grupo. Identifique los tipos de objetos devueltos al confirmar grupos superiores. Una lectura fallida de la relación no es un resultado cero obtenido correctamente. Microsoft Learn: enumerar memberOf.
4. Leer las directivas de ciclo de vida y propiedad
Reproduzca el ejemplo de lista de ciclo de vida:
GET https://graph.microsoft.com/v1.0/groupLifecyclePolicies
La API documenta Directory.Read.All para acceso delegado o de aplicación. Conserve el modo de cobertura devuelto y compárelo con la directiva prevista. Una respuesta Selected exige comprobar el conjunto de grupos seleccionados; la mera existencia de un objeto de directiva no establece cobertura para todos los grupos. Microsoft Learn: enumerar directivas de ciclo de vida, propiedades de cobertura.
Lea los ajustes del tenant con el ejemplo documentado:
GET https://graph.microsoft.com/v1.0/groupSettings
Examine Group.Unified y sus valores en lugar de tratar toda la respuesta como un booleano. Learn identifica GroupSettings.Read.All como el permiso de lectura de menor privilegio y explica los requisitos adicionales de rol de usuario para llamadas delegadas, incluido el comportamiento diferente con permisos delegados de lectura de todo el directorio. Microsoft Learn: enumerar ajustes de grupos.
Cuando no haya ajustes personalizados, la descripción de los ajustes proporciona esta solicitud de plantilla:
GET https://graph.microsoft.com/v1.0/groupSettingTemplates
Utilice los valores predeterminados documentados de la plantilla para interpretar la ausencia del objeto personalizado. No interprete esa ausencia como una habilitación de la propiedad de invitados. Microsoft Learn: plantillas y valores predeterminados de ajustes de grupos.
Por último, lea la directiva de grupos sin propietario con su ejemplo de Learn:
GET https://graph.microsoft.com/v1.0/policies/ownerlessGroupPolicy
Este punto de conexión admite Group.Read.All delegado, con un usuario llamador asignado a Groups Administrator o Exchange Administrator. El permiso de aplicación no está admitido. Un 404 documentado indica que la directiva no existe; un fallo de autorización requiere otra interpretación. No prometa que un recopilador que solo usa permisos de aplicación puede examinar esta directiva mediante el mismo punto de conexión. Microsoft Learn: obtener ownerlessGroupPolicy.
Cómo detecta EtcSec estas situaciones
Las siguientes descripciones proceden de la inspección estática de etc-collector en el commit b767fc1ef7ea4cf52d797d5aea1dd4c2d3d07d7c. Las ubicaciones de archivos son relativas a public/internal/audit/detectors/. Son criterios de implementación, no mediciones de un tenant.
| Detector | Condición real | Límite de interpretación |
|---|---|---|
AZ_GROUP_OWNER_IS_GUEST | Propietarios sondeados; al menos un propietario coincide con un usuario recopilado cuyo userType es exactamente Guest, mediante un índice UPN en minúsculas. | No se cuentan tipos desconocidos ni grupos no sondeados. Cada grupo afectado se cuenta una vez. Fuente: azure/groups/security/group-owner-is-guest.go:51. |
AZ_GROUP_NO_OWNER | Propietarios sondeados, indicador de sincronización distinto de true y cero entradas de propietarios recopiladas. | Excluye grupos sincronizados. No comprueba si un propietario existente es interno, está habilitado o asume responsabilidad. Fuente: azure/groups/security/group-no-owner.go:37. |
AZ_GROUP_ORPHANED | len(Members) + len(Member) == 0 y len(MemberOf) == 0. | Significa ausencia de miembros y de elemento superior en los datos recopilados; nunca significa ausencia de propietario. No existe una condición que exija un sondeo satisfactorio de miembros/elementos superiores. Fuente: azure/groups/security/group-orphaned.go:39. |
AZ_GROUP_PUBLIC_MEMBERSHIP | La visibilidad no nula es igual a Public, sin distinguir mayúsculas y minúsculas. | Sin condición limitada a Unified, prueba de incorporación efectiva ni prueba de acceso a recursos. Fuente: azure/groups/security/group-public-membership.go:25. |
AZ_GROUP_UNIFIED_NO_EXPIRY | Con configuración del tenant sondeada, la cobertura requiere una directiva existente con managedGroupTypes == "All"; de lo contrario, se ven afectados los grupos que contienen exactamente Unified. | La ausencia de directiva, None y Selected producen hallazgos. La cobertura Selected no se resuelve por grupo. Fuente: azure/groups/security/unified-group-no-expiry.go:42. |
AZ_GROUP_LARGE_MEMBERSHIP | len(Members) + len(Member) > 500. | Estrictamente mayor que 500; sin deduplicación y sin transitividad. Fuente: azure/groups/membership/group-large-membership.go:24. |
Los límites de recopilación cambian el siguiente paso de validación
Para NO_EXPIRY, la configuración no sondeada devuelve un hallazgo Info etiquetado como no determinable, con Count=1. Ese valor no equivale a un grupo sin cobertura. La función no examina actividad, expirationDateTime ni un umbral de duración. Una directiva Selected puede ser legítima aunque esta implementación señale sus grupos Unified; confirme la cobertura real antes de describir esos grupos como grupos que nunca caducan. Fuente: unified-group-no-expiry.go:43 y :56.
El proveedor Azure actual asigna la misma lista de ID de miembros a Members y Member. LARGE suma después ambas longitudes. En esa ruta satisfactoria, con recopilación completa y sin ID duplicados, 2 × n > 500 se convierte en n > 250: 250 no cumple la condición, 251 sí. Es aritmética extraída del código, no un resultado de tenant ni de una prueba Go. 500 es el umbral escrito del detector, no un límite de Microsoft para el tamaño de grupos. Fuentes: public/internal/providers/azure/client.go:1115, group-large-membership.go:29.
El proveedor sí rellena MemberOf, pese a un comentario obsoleto de ORPHANED que afirma lo contrario. Almacena los ID de la respuesta directa memberOf sin filtrar su tipo de objeto, de modo que un elemento superior registrado no es necesariamente otro grupo. Microsoft Learn: tipos de objeto memberOf.
Los fallos de miembros y de elementos superiores carecen de la distinción explícita entre éxito y fallo del marcador de sondeo de propietarios. Ese marcador no garantiza datos completos de propietarios: el enriquecimiento guarda el UPN o el nombre para mostrar y descarta un objeto cuando ambos están ausentes, incluso después de una respuesta satisfactoria. Tiene un presupuesto de cinco minutos y no sigue la paginación de propietarios en esta ruta de código. Un límite de grupos también puede provocar un retorno antes del enriquecimiento. Revise las advertencias de recopilación y las relaciones sin procesar antes de confiar en recuentos cero. Fuentes: public/internal/providers/azure/client.go:1142, :1158, :1170, :1184, :1235, :1253, :1264, :1345.
Remediación: restaurar la responsabilidad y verificar el acceso (Remediation)
1. Certificar la propiedad antes de cambiar concesiones
Recomendamos empezar con una revisión basada en recursos: registre finalidad, patrocinador interno responsable, aplicaciones asignadas o sitios conectados, propietarios actuales, excepciones aprobadas y autoridad responsable de la pertenencia. Pida al responsable del recurso que confirme si el grupo sigue siendo necesario. En los grupos que continúen, asigne propietarios responsables antes de retirar la propiedad obsoleta.
Microsoft documenta la ruta del centro de administración Entra ID → Grupos → Todos los grupos → seleccionar grupo → Propietarios → Agregar, y la eliminación mediante la lista de propietarios. Utilice los requisitos de rol documentados y conserve las relaciones anteriores y posteriores. Para grupos asociados a Teams, incluya en las comprobaciones de aceptación los requisitos de pertenencia y sincronización descritos antes. Microsoft Learn: administrar propietarios, adición de propietarios con Graph.
2. Restringir deliberadamente la propiedad de invitados
Para grupos Microsoft 365 cuya directiva exige propiedad interna, mantenga o restaure AllowGuestsToBeGroupOwner=False en Group.Unified. Revise por separado la propiedad de invitados existente, sin asumir que un cambio de configuración demuestra que todas las relaciones existentes han desaparecido. Preserve los demás ajustes al actualizar el objeto; la guía de configuración de Microsoft exige expresamente leer los valores actuales para evitar sobrescribir configuraciones no relacionadas. Vuelva a leer tanto los ajustes como los propietarios después del cambio. Microsoft Learn: configurar los ajustes de grupos.
Documente las excepciones con un patrocinador y una fecha de revisión. Revise por separado la invitación, la autenticación y el ciclo de vida de la identidad invitada con la guía de superficie de ataque de cuentas invitadas, que cubre permisos de invitación, MFA y cuentas inactivas. Esos controles de identidad complementan la revisión de propiedad; no sustituyen la directiva de ciclo de vida de grupos.
3. Gestionar la cola de recuperación de grupos sin propietario
En el centro de administración Microsoft 365, habilite el flujo de grupos sin propietario en Configuración → Configuración de la organización → Grupos de Microsoft 365 y configure destinatarios elegibles, remitente, período de notificación y grupos objetivo. Verifique licencias admitidas y buzones de Exchange Online: el remitente necesita un buzón de usuario o de grupo, los buzones compartidos de remitente no se admiten y los destinatarios necesitan buzones de usuario. Siga la aceptación de propiedad y escale los grupos que sigan pendientes al terminar las notificaciones. El flujo documentado deja la asignación manual final a los administradores cuando nadie acepta. Microsoft Learn: configuración de la directiva de grupos sin propietario.
4. Configurar la caducidad según las dependencias reales
Elija la duración y la cobertura All o Selected después de revisar las dependencias de aplicaciones y colaboración. Los ajustes de caducidad de Entra también admiten una dirección de notificación alternativa para grupos sin propietario. El licenciamiento requiere disponer de licencias P1 o P2 para los miembros de los grupos a los que se aplica la caducidad. Confirme cómo se gestiona la renovación antes de tratar la eliminación como un resultado previsto. Microsoft Learn: configuración de caducidad.
Vuelva a leer la directiva de ciclo de vida y las pruebas de caducidad por grupo. Para cobertura Selected, mantenga evidencia de los grupos incluidos. Mantenga la caducidad del grupo, la retención de contenido y la baja de cuentas invitadas como decisiones separadas; una directiva de ciclo de vida describe una duración renovable del grupo, no los tres resultados. Microsoft Learn: definición de directiva de ciclo de vida.
5. Revisar la admisión y las cantidades elevadas de miembros
Para grupos Public, pregunte si la admisión sin permiso del propietario coincide con el público del recurso. Cuando se requiera aprobación, revise la visibilidad Private y verifique por separado los permisos efectivos del servicio. Para hallazgos LARGE, obtenga primero un inventario deduplicado de miembros directos y luego revise por qué cada población necesita acceso. Separe responsabilidades o grupos de acceso cuando la revisión empresarial lo justifique; no quite miembros solo para satisfacer el predicado numérico de la implementación.
Mantenga la estructura de grupos privilegiados como una investigación separada. El artículo sobre grupos privilegiados anidados y asignables a roles aborda ese tema. Respete su ámbito temático sin incorporar una afirmación de elevación de rol a esta revisión de propiedad.
6. Hacer que las revisiones de pertenencia produzcan una decisión
Cree revisiones con revisores identificados, revisores alternativos cuando se seleccionen propietarios de grupo, un resultado explícito para la falta de respuesta y una decisión sobre la aplicación automática de resultados. Learn documenta el tratamiento de revisores alternativos para grupos sin propietario y advierte de que la eliminación por falta de respuesta con aplicación automática puede revocar el acceso a recursos. Los miembros de un grupo sin propietario no conservan inevitablemente el acceso después de una revisión: el resultado depende de estos ajustes y de la aplicación de decisiones. Verifique los requisitos actuales de licencia Governance o Suite para la revisión elegida. Microsoft Learn: crear revisiones de acceso.
Explore las páginas de identidad que apoyan este tema
