O que é a governança da propriedade de grupos Entra ID?
A governança da propriedade de grupos Entra ID começa com uma questão de acesso: quem pode alterar as pessoas admitidas através de um grupo e quem continua responsável quando a sua finalidade muda? A Microsoft distingue a propriedade de objetos dos papéis de diretório. Um proprietário de grupo pode gerir as propriedades, os proprietários e a associação do seu próprio grupo; as adições e remoções manuais de membros aplicam-se à associação Assigned. A propriedade não confere a essa pessoa direitos de gestão sobre todos os grupos. Microsoft Learn: permissões predefinidas dos utilizadores.
Essa autoridade é relevante quando um grupo controla um recurso real. A Microsoft documenta atribuições de aplicações empresariais através de grupos, com acesso para os utilizadores do grupo atribuído e sem propagação para grupos aninhados. A atribuição de aplicações baseada em grupos requer Entra ID P1 ou P2. A inferência operacional é direta: alguém capaz de alterar a associação desse grupo pode alterar a população que recebe o acesso à aplicação atribuída. Confirme primeiro a atribuição efetiva da aplicação; a propriedade de um grupo sem relação com ela não prova esse acesso. Microsoft Learn: atribuir utilizadores e grupos a aplicações.
Num grupo Microsoft 365 ligado a um site de equipa SharePoint, os proprietários tornam-se proprietários do site e os membros tornam-se membros do site. O SharePoint também pode manter permissões separadamente do grupo ligado. A sua revisão deve, por isso, registar tanto a relação com o grupo como as outras concessões do site. Remover um membro do grupo não é prova suficiente de que todas as vias independentes de acesso a um site desapareceram. Microsoft Learn: partilha e permissões do SharePoint.
Este guia separa seis sinais de revisão: um proprietário convidado, ausência de proprietário, ausência de membros e de associação superior, visibilidade Public, ausência de cobertura de expiração em todo o tenant e uma associação recolhida de grande dimensão. Respondem a questões diferentes. Nenhum demonstra uma intrusão, um papel administrativo em todo o tenant ou uma decisão de negócio de eliminar um grupo. Os predicados exatos do EtcSec aparecem abaixo com as respetivas localizações no código-fonte.
Como funcionam a propriedade, as definições de convidados e a expiração
A propriedade por convidados é condicional
Para grupos Microsoft 365, a definição AllowGuestsToBeGroupOwner de Group.Unified controla se um convidado pode ser proprietário. AllowGuestsToAccessGroups diz respeito ao acesso aos grupos e aos seus dados; AllowToAddGuests diz respeito à associação de convidados. Trate estas opções como decisões separadas, em vez de interpretar uma definição como autorização para as três operações. A descrição das definições identifica o âmbito Microsoft 365 e o requisito de licenciamento P1 para a definição de propriedade. Microsoft Learn: definições de grupo.
A referência de configuração da Microsoft indica False como valor predefinido de AllowGuestsToBeGroupOwner. Um tenant não permite automaticamente proprietários convidados de grupos Microsoft 365 apenas por suportar colaboração. Inspecione em conjunto a configuração efetiva e a atribuição real de propriedade. Quando não existir um objeto de definições personalizado, consulte os valores predefinidos do modelo em vez de interpretar a ausência do objeto como autorização. Microsoft Learn: configurar definições de grupo.
Não extrapole este controlo Group.Unified para uma regra geral aplicável a todos os grupos de segurança. O Graph documenta separadamente a adição de utilizadores ou principais de serviço como proprietários de grupos Microsoft 365 ou de segurança. Num grupo associado ao Teams, a sincronização dos proprietários pode demorar até duas horas, e algumas alterações da equipa também exigem que o proprietário seja membro. Microsoft Learn: adicionar proprietários de grupo.
As restrições de convidados também afetam a experiência de gestão disponível. Com permissões de convidados restritas, o My Apps não apresenta a lista de grupos que um convidado possui ou aos quais pertence. O SharePoint e o Teams mantêm os seus próprios controlos de convidados. Uma relação de propriedade observada é, por isso, um sinal de revisão, não uma prova de que todas as ações de gestão funcionam através de todas as interfaces. Valide a operação e o serviço específicos num ambiente de teste autorizado. Microsoft Learn: restringir permissões de convidados.
Considere uma exposição ilustrativa: um grupo com associação Assigned concede acesso a uma aplicação de projeto e um convidado é um proprietário autorizado. Uma alteração de associação poderia modificar o acesso a essa aplicação se a operação relevante fosse permitida. Esta é uma inferência a partir da propriedade e da atribuição de aplicações documentadas, não um incidente observado nem uma escalada demonstrada para Global Administrator. Documente o recurso e as restrições aplicáveis antes de tratar o cenário como um caminho de acesso que exige ação. Permissões de propriedade, atribuição de aplicações.
Sem proprietário, vazio e sem utilização são estados diferentes
Um grupo pode ter membros sem ter proprietário. Outro pode ter proprietário sem ter membros. Um terceiro pode estar vazio e continuar a ser necessário para um fluxo de trabalho planeado. Mantenha a propriedade, a associação, as relações superiores e a finalidade de negócio em campos de revisão separados. O group-no-owner.go:37 do coletor examina proprietários; group-orphaned.go:39 examina membros e relações superiores. Nenhuma das funções mede a necessidade de negócio.
A política da Microsoft para grupos sem proprietário aplica-se a grupos Microsoft 365 e só está disponível em clouds públicas. Envia convites com uma ação para aceitar a propriedade a membros elegíveis, com duração de notificação configurável e elegibilidade através de grupos de segurança. É um fluxo de recuperação que exige aceitação pelos membros, não uma atribuição automática de responsabilidade. Microsoft Learn: recurso ownerlessGroupPolicy.
Se ninguém aceitar durante o período de notificação, as notificações param e os administradores têm de encontrar e atribuir um proprietário. O guia de administração da Microsoft também documenta requisitos de licenciamento e de caixas de correio para as notificações. Inclua essa fila de casos não resolvidos no procedimento operacional; ativar a política, por si só, não prova que todos os grupos sem proprietário passaram a ter proprietários responsáveis. Microsoft Learn: gerir grupos e equipas sem proprietário.
A expiração abrange grupos Microsoft 365
Uma política de expiração aplica-se a grupos Microsoft 365, não a todos os grupos de segurança. Os grupos ativos podem renovar-se automaticamente perto da expiração através de atividade documentada no Outlook, SharePoint, Teams ou Viva Engage. Os grupos que não forem renovados são eliminados, com um período de restauro de 30 dias. Um grupo de longa duração pode, por isso, ser renovado repetidamente ao abrigo de uma política válida. A sua idade, por si só, não prova ausência de cobertura de expiração. Microsoft Learn: expiração de grupos Microsoft 365.
O recurso groupLifecyclePolicy separa o tempo de vida da cobertura: groupLifetimeInDays define o intervalo renovável, enquanto managedGroupTypes é All, Selected ou None. Selected exige verificar a inclusão do grupo específico. alternateNotificationEmails fornece endereços de notificação para grupos sem proprietário. Trate uma data de expiração renovada como prova de ciclo de vida, não como uma confirmação de negócio. Microsoft Learn: recurso de política de ciclo de vida.
A visibilidade pública merece uma revisão dos recursos
A Microsoft descreve Public como permitindo aos utilizadores aderir sem autorização do proprietário, enquanto Private a exige. A associação privada não é automaticamente oculta; HiddenMembership é um valor separado. A visibilidade pública de um grupo deve desencadear uma revisão da admissão pretendida e dos recursos ligados. Por si só, não prova acesso anónimo pela Internet nem obtenção bem-sucedida de dados. Microsoft Learn: opções de visibilidade de grupo.
Deteção: medir o diretório antes de interpretar os resultados
Os blocos seguintes copiam sintaxe de pedidos ou exemplos do Microsoft Learn. Os caminhos relativos pertencem à documentação Graph v1.0. Os identificadores entre chavetas têm de ser resolvidos para objetos reais; o identificador fixo no exemplo de contagem é o exemplo da Microsoft. Nenhum pedido aqui foi executado contra um tenant. Preserve o âmbito dos pedidos, as falhas de recolha e a paginação juntamente com o inventário resultante.
1. Determinar o tipo de grupo e o âmbito da recolha
A página da Microsoft para listar grupos fornece este filtro Microsoft 365 literalmente:
GET https://graph.microsoft.com/v1.0/groups?$filter=groupTypes/any(c:c+eq+'Unified')
Utilize-o para o inventário Microsoft 365, não como a totalidade da revisão dos grupos de segurança. A mesma página documenta tamanhos de página predefinido e máximo de 100 e 999, bem como atrasos de replicação após alterações. Siga cada @odata.nextLink devolvido; uma única página ou um resultado ainda desatualizado não deve encerrar um resultado de auditoria. Microsoft Learn: listar grupos.
Para cada grupo selecionado, a sintaxe documentada para obter um grupo é:
GET /groups/{id}
A API suporta $select para propriedades específicas. Preserve o ID do grupo, o tipo de associação e o estado de sincronização no registo de revisão e retenha a resposta em bruto para que os atributos em falta continuem a distinguir-se de respostas negativas. Microsoft Learn: obter grupo.
O recurso de grupo v1.0 atual documenta groupTypes com Unified para grupos Microsoft 365 e expirationDateTime como o respetivo instante de expiração definido pela política. Essa data é null para grupos de segurança. Não apresente a data null de um grupo de segurança como um resultado de ausência de cobertura de ciclo de vida Microsoft 365. Microsoft Learn: propriedades do grupo.
2. Inspecionar proprietários e resolver o seu tipo de identidade
Leia a relação de propriedade utilizando a sintaxe do Learn:
GET /groups/{id}/owners
A relação pode conter utilizadores ou principais de serviço. O Graph não apresenta proprietários de grupos criados no Exchange, grupos de distribuição ou grupos sincronizados a partir do ambiente local. A página v1.0 também documenta proprietários principais de serviço em falta e objetos com informação limitada quando o chamador não pode ler um tipo de recurso. Nesses objetos, os atributos podem ser null enquanto o ID e o tipo continuam disponíveis. Siga a paginação e retenha identidades não resolvidas; atributos em falta não podem demonstrar que um grupo não tem proprietários ou que um proprietário é convidado. Microsoft Learn: listar proprietários.
Resolva explicitamente os proprietários que são utilizadores e inspecione o userType recolhido. A API da Microsoft para obter um utilizador suporta a seleção de propriedades não predefinidas; a referência de permissões predefinidas distingue utilizadores Member e Guest. Não substitua o atributo de identidade por domínios de correio eletrónico ou cadeias #EXT#, nem infira uma intrusão a partir da classificação Guest. Microsoft Learn: obter utilizador, tipos de utilizador.
Se utilizar um filtro avançado de contagem de proprietários durante a investigação, aplique os requisitos documentados de ConsistencyLevel: eventual e de contagem. As consultas avançadas utilizam um índice separado e não suportam combinar estes filtros de relações com $expand. Mantenha uma lista de candidatos sem proprietário separada das leituras de proprietários confirmadas por grupo. Microsoft Learn: capacidades de consultas avançadas.
3. Verificar separadamente membros, dimensão e relações superiores diretas
O Learn fornece o pedido de membros diretos:
GET /groups/{id}/members
O seu exemplo de contagem é:
GET https://graph.microsoft.com/v1.0/groups/02bd9fd6-8f93-4758-87c3-1fb73740a315/members/$count
ConsistencyLevel: eventual
Estes são objetos de diretório diretos, não uma contagem transitiva de pessoas distintas. A API de membros documenta uma omissão de principais de serviço em v1.0, e a associação oculta requer Member.Read.Hidden. Para validar, enumere todas as páginas e remova IDs duplicados; registe as restrições em vez de apresentar uma lista incompleta como um total completo de membros. Microsoft Learn: listar membros.
Leia a relação superior num pedido separado:
GET /groups/{id}/memberOf
A API devolve associações diretas em vez de um grafo transitivo. A resposta pode incluir grupos, unidades administrativas ou papéis administrativos, consoante o tipo de grupo. Identifique os tipos de objetos devolvidos ao confirmar grupos superiores. Uma leitura de relação mal sucedida não é um resultado zero obtido com sucesso. Microsoft Learn: listar memberOf.
4. Ler as políticas de ciclo de vida e de propriedade
Copie o exemplo de listagem de políticas de ciclo de vida:
GET https://graph.microsoft.com/v1.0/groupLifecyclePolicies
A API documenta Directory.Read.All para acesso delegado ou de aplicação. Retenha o modo de cobertura devolvido e compare-o com a política pretendida. Uma resposta Selected exige verificar o conjunto de grupos selecionados; a existência de um objeto de política, por si só, não demonstra a cobertura de todos os grupos. Microsoft Learn: listar políticas de ciclo de vida, propriedades de cobertura.
Leia as definições ao nível do tenant utilizando o exemplo documentado:
GET https://graph.microsoft.com/v1.0/groupSettings
Inspecione Group.Unified e os seus valores em vez de tratar toda a resposta como um Boolean. O Learn indica GroupSettings.Read.All como a permissão de leitura com menos privilégios e explica os requisitos adicionais de papel do utilizador para chamadas delegadas, incluindo o comportamento diferente com permissões delegadas de leitura de todo o diretório. Microsoft Learn: listar definições de grupo.
Quando não existirem definições personalizadas, a descrição das definições fornece este pedido de modelos:
GET https://graph.microsoft.com/v1.0/groupSettingTemplates
Utilize os valores predefinidos documentados do modelo para interpretar a ausência do objeto personalizado. Não interprete a ausência como ativação da propriedade por convidados. Microsoft Learn: modelos e valores predefinidos de definições de grupo.
Por fim, leia a política para grupos sem proprietário com o exemplo do Learn:
GET https://graph.microsoft.com/v1.0/policies/ownerlessGroupPolicy
Este endpoint suporta Group.Read.All delegado, com um utilizador chamador que tenha o papel Groups Administrator ou Exchange Administrator atribuído. A permissão de aplicação não é suportada. Um 404 documentado indica que a política não existe; uma falha de autorização exige outra interpretação. Não prometa que um coletor que usa apenas permissões de aplicação consegue inspecionar esta política através do mesmo endpoint. Microsoft Learn: obter ownerlessGroupPolicy.
Como o EtcSec deteta este problema
As descrições seguintes resultam da inspeção estática do commit b767fc1ef7ea4cf52d797d5aea1dd4c2d3d07d7c do etc-collector. As localizações de ficheiros são relativas a public/internal/audit/detectors/. São critérios de implementação, não medições de um tenant.
| Detetor | Condição efetiva | Limite de interpretação |
|---|---|---|
AZ_GROUP_OWNER_IS_GUEST | Proprietários consultados; pelo menos um proprietário corresponde a um utilizador recolhido cujo userType é exatamente Guest, através de um índice de UPN em minúsculas. | Tipos desconhecidos e grupos não consultados não são contados. Cada grupo afetado é contado uma vez. Fonte: azure/groups/security/group-owner-is-guest.go:51. |
AZ_GROUP_NO_OWNER | Proprietários consultados, indicador de sincronização não true e zero entradas de proprietários recolhidas. | Exclui grupos sincronizados. Não testa se um proprietário existente é interno, está ativado ou assume responsabilidade. Fonte: azure/groups/security/group-no-owner.go:37. |
AZ_GROUP_ORPHANED | len(Members) + len(Member) == 0 e len(MemberOf) == 0. | Significa ausência de membros e de relação superior nos dados recolhidos; nunca significa ausência de proprietário. Não existe uma condição de proteção que exija consultas bem-sucedidas de membros/relações superiores. Fonte: azure/groups/security/group-orphaned.go:39. |
AZ_GROUP_PUBLIC_MEMBERSHIP | Visibilidade não null igual a Public, ignorando maiúsculas/minúsculas. | Sem condição exclusiva de Unified, teste de adesão efetiva ou teste de acesso ao recurso. Fonte: azure/groups/security/group-public-membership.go:25. |
AZ_GROUP_UNIFIED_NO_EXPIRY | Com configuração do tenant consultada, a cobertura exige uma política existente com managedGroupTypes == "All"; caso contrário, os grupos que contêm exatamente Unified são afetados. | Política ausente, None e Selected produzem resultados. A cobertura Selected não é resolvida por grupo. Fonte: azure/groups/security/unified-group-no-expiry.go:42. |
AZ_GROUP_LARGE_MEMBERSHIP | len(Members) + len(Member) > 500. | Estritamente superior a 500; sem deduplicação e sem transitividade. Fonte: azure/groups/membership/group-large-membership.go:24. |
Os limites da recolha alteram o próximo passo de validação
Para NO_EXPIRY, uma configuração não consultada devolve um resultado Info identificado como não determinável, com Count=1. Esse valor não representa um grupo sem cobertura. A função não inspeciona atividade, expirationDateTime ou um limiar de tempo de vida. Uma política Selected pode ser legítima mesmo quando esta implementação assinala os seus grupos Unified; confirme a cobertura real antes de descrever esses grupos como nunca expirando. Fonte: unified-group-no-expiry.go:43 e :56.
O fornecedor Azure atual atribui a mesma lista de IDs de membros tanto a Members como a Member. LARGE soma depois ambos os comprimentos. Nesse caminho bem-sucedido, com recolha completa e sem IDs duplicados, 2 × n > 500 torna-se n > 250: 250 não satisfaz a condição, 251 satisfaz. Isto é aritmética a partir do código, não um resultado de tenant nem de teste Go. 500 é o limiar escrito no detetor, não um limite Microsoft para a dimensão dos grupos. Fontes: public/internal/providers/azure/client.go:1115, group-large-membership.go:29.
O fornecedor preenche MemberOf, apesar de um comentário obsoleto em ORPHANED afirmar o contrário. Guarda IDs da resposta direta de memberOf sem filtrar o respetivo tipo de objeto, pelo que uma relação superior registada não corresponde necessariamente a outro grupo. Microsoft Learn: tipos de objeto memberOf.
As falhas de membros e de relações superiores não dispõem da distinção explícita entre sucesso e falha do marcador de consulta de proprietários. Esse marcador não garante dados completos de proprietários: o enriquecimento guarda o UPN ou o nome de apresentação e descarta um objeto quando ambos estão ausentes, mesmo após uma resposta bem-sucedida. Tem um orçamento de cinco minutos e não segue a paginação dos proprietários neste caminho do código. Um limite de grupos também pode provocar um retorno antes do enriquecimento. Reveja os avisos de recolha e as relações em bruto antes de confiar em contagens zero. Fontes: public/internal/providers/azure/client.go:1142, :1158, :1170, :1184, :1235, :1253, :1264, :1345.
Correção: restaurar a responsabilidade e verificar o acesso (Remediation)
1. Confirmar a propriedade antes de alterar concessões
O ponto de partida que recomendamos é uma revisão baseada nos recursos: registe a finalidade, o patrocinador interno responsável, as aplicações atribuídas ou os sites ligados, os proprietários atuais, as exceções aprovadas e a autoridade responsável pela associação. Peça ao responsável pelo recurso que confirme se o grupo ainda é necessário. Para os grupos que continuarem em utilização, atribua proprietários responsáveis antes de remover propriedade obsoleta.
A Microsoft documenta o caminho no centro de administração Entra ID → Grupos → Todos os grupos → selecionar grupo → Proprietários → Adicionar, e a remoção através da lista de proprietários. Utilize os requisitos de papel documentados e preserve as relações antes e depois da alteração. Para grupos associados ao Teams, inclua nas verificações de aceitação os requisitos de associação e sincronização descritos anteriormente. Microsoft Learn: gerir proprietários, adição de proprietários pelo Graph.
2. Restringir deliberadamente a propriedade por convidados
Para grupos Microsoft 365 cuja política exija propriedade interna, mantenha ou restaure AllowGuestsToBeGroupOwner=False em Group.Unified. Reveja separadamente a propriedade existente por convidados, em vez de assumir que uma alteração de configuração prova que todas as relações existentes desapareceram. Preserve outras definições ao atualizar o objeto; o guia de configuração da Microsoft instrui especificamente a leitura dos valores atuais para evitar substituir configurações sem relação com a alteração. Volte a ler as definições e os proprietários após a mudança. Microsoft Learn: configurar definições de grupo.
Documente as exceções com um patrocinador e uma data de revisão. Reveja separadamente o convite, a autenticação e o ciclo de vida da identidade convidada utilizando o guia da superfície de ataque das contas de convidado, que aborda permissões de convite, MFA e contas desatualizadas. Esses controlos de identidade complementam a revisão de propriedade; não substituem a política de ciclo de vida dos grupos.
3. Operar a fila de recuperação de grupos sem proprietário
No centro de administração Microsoft 365, ative o fluxo para grupos sem proprietário em Definições → Definições da organização → Grupos Microsoft 365 e configure depois os destinatários elegíveis, o remetente, o período de notificação e os grupos de destino. Verifique as licenças suportadas e as caixas de correio Exchange Online: o remetente precisa de uma caixa de correio de utilizador ou de grupo, caixas de correio partilhadas como remetente não são suportadas e os destinatários precisam de caixas de correio de utilizador. Acompanhe a propriedade aceite e escale os grupos ainda não resolvidos quando terminarem as notificações. O fluxo documentado deixa a atribuição manual final aos administradores quando ninguém aceita. Microsoft Learn: configuração da política para grupos sem proprietário.
4. Configurar a expiração em função das dependências reais
Escolha o tempo de vida e a cobertura All ou Selected após rever as dependências de aplicações e colaboração. As definições de expiração do Entra também suportam um endereço de notificação alternativo para grupos sem proprietário. O licenciamento exige a posse de licenças P1 ou P2 para os membros dos grupos aos quais a expiração se aplica. Confirme o tratamento das renovações antes de considerar a eliminação um resultado pretendido. Microsoft Learn: configuração de expiração.
Volte a ler a política de ciclo de vida e as provas de expiração por grupo. Para cobertura Selected, mantenha provas de quais os grupos incluídos. Separe as decisões de expiração de grupos, retenção de conteúdos e saída de contas de convidado; uma política de ciclo de vida descreve um tempo de vida renovável do grupo, não os três resultados. Microsoft Learn: definição de política de ciclo de vida.
5. Rever a admissão e associações de grande dimensão
Para grupos Public, questione se a admissão sem autorização do proprietário corresponde ao público do recurso. Quando for necessária aprovação, reveja a visibilidade Private e verifique separadamente as permissões efetivas do serviço. Para resultados LARGE, obtenha primeiro um inventário deduplicado de membros diretos e reveja depois porque é que cada população precisa de acesso. Divida responsabilidades ou grupos de acesso quando a revisão de negócio o justificar; não remova membros apenas para deixar de acionar o predicado numérico da implementação.
Mantenha a estrutura dos grupos privilegiados como investigação separada. O artigo sobre grupos privilegiados aninhados e atribuíveis a funções aborda esse tema. Respeite o seu limite temático sem importar uma alegação de elevação de papéis para esta revisão de propriedade.
6. Fazer com que as revisões de associação produzam uma decisão
Crie revisões com revisores identificados, revisores alternativos quando forem selecionados proprietários de grupo, um resultado explícito para a ausência de resposta e uma decisão sobre a aplicação automática dos resultados. O Learn documenta o tratamento alternativo de grupos sem proprietário e avisa que a remoção por ausência de resposta com aplicação automática pode revogar o acesso a recursos. Os membros de um grupo sem proprietário não conservam inevitavelmente o acesso após uma revisão: o resultado depende dessas definições e da aplicação das decisões. Verifique os requisitos atuais de licenciamento Governance ou Suite para a revisão escolhida. Microsoft Learn: criar revisões de acesso.
Explore as paginas de identidade que sustentam este tema
