Compartilhar via


O logon em uma conta de usuário que é membro de mais de 1.010 grupos pode falhar em um computador baseado no Windows Server

Este artigo resolve um problema em que falha o logon em uma conta de usuário que é membro de mais de 1.010 grupos.

Aplica-se a: Windows Server 2016, Windows Server 2019, Windows Server 2022, Windows Server 2025
Número original do KB: 328889

Sintomas

Quando um usuário tenta fazer logon em um computador usando uma conta de computador local ou uma conta de usuário de domínio, a solicitação de logon pode falhar. E você recebe a seguinte mensagem de erro:

Mensagem de logon: O sistema não pode fazer logon devido ao seguinte erro: Durante uma tentativa de logon, o contexto de segurança do usuário acumulou muitas IDs de segurança. Tente novamente ou consulte o administrador do sistema.

O problema ocorre quando o usuário de logon é um membro explícito ou transitivo de cerca de 1.010 ou mais grupos de segurança.

Os aplicativos e a ID 4625 do log de eventos de segurança podem exibir este código de erro:

0xc000015a

O erro é STATUS_TOO_MANY_CONTEXT_IDS.

Motivo

Quando um usuário faz logon em um computador, a LSA (Autoridade de Segurança Local, uma parte do Subsistema da Autoridade de Segurança Local) gera um token de acesso. O token representa o contexto de segurança do usuário. O token de acesso consiste em identificadores de segurança exclusivos (SID) para cada grupo do qual o usuário é membro. Esses SIDs incluem grupos transitivos e valores SID do SIDHistory do usuário e das contas de grupo.

A matriz que contém os SIDs das associações de grupo do usuário no token de acesso não pode conter mais de 1.024 SIDs. O LSA não pode descartar nenhum SID do token. Portanto, se houver mais SIDs, o LSA não criará o token de acesso e o usuário não poderá fazer logon.

Quando a lista de SIDs é criada, o LSA também insere vários SIDs genéricos e conhecidos, além dos SIDs para as associações de grupo do usuário (avaliadas transitivamente). Portanto, se um usuário for membro de mais de 1.010 grupos de segurança personalizados, o número total de SIDs poderá exceder o limite de 1.024 SID.

Importante

  • Os tokens para contas de administrador e não administrador estão sujeitos ao limite.
  • O número exato de SIDs personalizados varia de acordo com o tipo de logon (por exemplo, interativo, serviço, rede) e a versão do sistema operacional do controlador de domínio e do computador que cria o token.
  • Usar Kerberos ou NTLM como protocolo de autenticação não tem influência no limite do token de acesso.
  • A configuração MaxTokenSize do cliente Kerberos é discutida em Problemas com a autenticação Kerberos quando um usuário pertence a muitos grupos. Token no contexto Kerberos refere-se ao buffer para os tíquetes recebidos por um host Kerberos do Windows. Dependendo do tamanho do tíquete, do tipo de SIDs e se a compactação de SID está habilitada, o buffer pode conter menos ou muito mais SIDs do que caberia no token de acesso.

A lista de SIDs personalizados incluirá:

  • Os SIDs primários do usuário/computador e os grupos de segurança dos quais a conta é membro.
  • Os SIDs no atributo SIDHistory dos grupos no escopo do logon.

Como o atributo SIDHistory pode conter vários valores, o limite de 1.024 SIDs pode ser atingido rapidamente se as contas forem migradas várias vezes. O número de SIDs no Token de Acesso será menor que o número total de grupos dos quais o usuário é membro na seguinte situação:

  • O usuário é de um domínio confiável em que SIDHistory e SIDs são filtrados.
  • O usuário é de um domínio confiável em uma relação de confiança em que os SIDs são colocados em quarentena. Em seguida, somente SIDs do mesmo domínio que o do usuário são incluídos.
  • Somente os SIDs do Grupo Local de Domínio do domínio do recurso são incluídos.
  • Somente os SIDs do Grupo Local do Servidor do servidor de recursos são incluídos.

Devido a essas diferenças, é possível que o usuário possa fazer logon em um computador em um domínio, mas não em um computador em outro domínio. O usuário também pode fazer logon em um servidor em um domínio, mas não em outro servidor no mesmo domínio.

Você pode descobrir mais sobre as associações de grupo de domínio de um usuário afetado com NTDSUTIL. Possui uma ferramenta de Avaliação de Membros de Grupo que também funciona além dos limites das florestas. A ferramenta também funciona para os seguintes usuários:

  • usuários que estão bem acima do limite de 1.024 SIDs
  • usuários que estão em tantos grupos que o Kerberos falha na recuperação de tíquetes mesmo com 65.535 bytes do buffer

Siga estas etapas:

  1. Abra um prompt de comando em um computador que tenha Ferramentas de Gerenciamento do AD (Controlador de Domínio ou um computador que tenha RSAT).

  2. Alterne para a gro mem eva ferramenta e obtenha os comandos disponíveis conforme a captura de tela a seguir:

    Captura de tela da saída após executar o comando gro mem eva.

  3. Conecte-se aos DCs necessários para a avaliação:

    • Definir DC de conta %s - DC do domínio do usuário
    • Definir o catálogo global %s - GC da floresta do usuário
    • Definir DC de Recurso %s - DC do domínio de recurso
    • Defina as credenciais conforme necessário ou registe registos detalhados quando os resultados parecerem incorretos ou a recolha falhar.
  4. Execute a avaliação da seguinte maneira (como para Admin em contoso.com):

    Run contoso.com Admin

  5. A execução coletará os detalhes do usuário nas etapas 1 e 2, os detalhes do grupo de domínio de recursos na etapa 3 e, em seguida, compilará o relatório nas etapas 4 e 5.

  6. Os resultados serão armazenados em um arquivo TSV no diretório atual como a seguinte captura de tela:

    A captura de tela mostra que os resultados serão armazenados em um arquivo TSV no diretório atual.

Consulte o seguinte guia para ler um arquivo TSV:

  • Tipo de SID: informa se é o SID primário do Grupo/Usuário ou SIDHistory.
  • Contagem de histórico de SID: Quantos SIDs do SIDHistory esta conta apresenta?
  • Contagem de Membro de Um Nível: quantos SIDs essa entrada adiciona à coleção em um único nível (o membro das entradas)?
  • Total MemberOf Count: quantos SIDs essa entrada adiciona à coleção no total?
  • Proprietário do grupo: para ambientes que delegaram o gerenciamento de grupos, você pode obter dicas sobre como está usando muitos grupos para atacar o logon do usuário.
  • Tipo de Grupo: Tipo de Sid. Grupos de segurança WellKnown, SID de usuário, global e universal estariam em todos os tokens criados para esse usuário. O grupo de segurança local de domínio estaria apenas neste domínio de recurso. Pode ser importante quando um usuário tem problemas de logon apenas em um determinado domínio de recurso.
  • Membro WhenChanged (UTC): Última alteração na associação ao grupo. Ele pode ajudar a correlacionar com a hora em que o(s) usuário(s) relatou(m) pela primeira vez os problemas de logon.

Dicas para encontrar grupos para direcionar para uma alteração:

  • Os grupos que possuem SIDHistory têm uma boa vantagem, ajudando a reduzir a contagem de SID.

  • Grupos que introduzem muitos outros grupos por meio de aninhamento têm uma grande vantagem para reduzir a contagem de SID.

  • Procure pistas no nome do grupo para determinar se o grupo não pode mais ser usado. Por exemplo, tivemos um cliente que tem um grupo por aplicativo em sua solução de implantação de software. E encontramos grupos que continham office2000 ou access2000.

  • Passe o relatório da lista de grupos para os administradores de serviços e aplicativos. Identifique grupos que não são mais necessários, talvez apenas para esse usuário nesta unidade de negócios ou departamento.

Limitações:

  • A ferramenta não inclui alguns tipos de SIDs especiais/conhecidos listados abaixo neste artigo. Portanto, lembre-se de que um usuário precisa limpar vários SIDs de 1.024 no relatório antes de fazer logon com êxito.

  • A ferramenta também não abrange grupos locais de servidor. Se você tiver problemas apenas em determinados servidores de um domínio de recurso, talvez o usuário ou alguns de seu grupo sejam membros de grupos locais de servidor.

Para obter uma lista de grupos locais do servidor e seus membros:

Observação

Execute como administrador em um prompt de comando com privilégios elevados.

Net localgroup | findstr * > %computername%-grouplist.txt

Para obter uma lista de membros de um domínio:

Md server-groups

For /f "delims=*" %d in (%computername%-grouplist.txt) do Net localgroup %d | findstr \ > server-groups\%d-domain-memberlist.txt**

Misture e combine os grupos relatados com o relatório do usuário do NTDSUTIL.

Resolução

Para corrigir esse problema, use um dos métodos a seguir, conforme apropriado para sua situação.

Método 1

Esta resolução se aplica à seguinte situação:

  • O usuário que encontra o erro de logon não é um administrador.
  • Os administradores podem fazer logon com êxito no computador ou no domínio.

Essa resolução deve ser executada por um administrador que tenha permissões para alterar as associações de grupo do usuário. O administrador deve alterar as associações de grupo do usuário para garantir que o usuário não seja mais membro de mais de 1.010 grupos de segurança. Considere as associações de grupo transitivas e as associações de grupo local.

As opções para reduzir o número de SIDs no token de usuário incluem o seguinte. A coleta de dados do NTDSUTIL deve ajudá-lo a ver quais grupos estão no escopo para alteração ou remoção:

  • Remova o usuário de um número suficiente de grupos de segurança.

  • Converta grupos de segurança não utilizados em grupos de distribuição. Os grupos de distribuição não contam para o limite de token de acesso. Os grupos de distribuição podem ser convertidos novamente em grupos de segurança quando um grupo convertido é necessário.

  • Determine se as entidades de segurança estão contando com o histórico do SID para acesso a recursos. Caso contrário, remova o atributo SIDHistory dessas contas. Você pode recuperar o valor do atributo por meio de uma restauração autoritativa.

Observação

Embora o número máximo de grupos de segurança dos quais um usuário pode ser membro seja 1.024, como prática recomendada, restrinja o número a menos de 1.010. Esse número garante que a geração de token sempre seja bem-sucedida porque fornece espaço para SIDs genéricos inseridos pelo LSA.

Método 2

A resolução se aplica à situação em que a conta de administrador não pode fazer logon no computador.

Quando o usuário cujo logon falha devido a muitas associações de grupo é membro do grupo Administradores, um administrador que tenha as credenciais da conta Administrador (ou seja, uma conta que tenha um identificador relativo conhecido [RID] de 500) deve reiniciar um controlador de domínio selecionando a opção de inicialização Modo de Segurança (ou selecionando a opção de inicialização Modo de Segurança com Rede). No modo de segurança, o administrador deve fazer logon no controlador de domínio usando as credenciais da conta de administrador.

Consulte Reiniciar o controlador de domínio no modo de restauração dos Serviços de Diretório localmente

A Microsoft mudou o algoritmo de geração de tokens. O LSA pode criar um token de acesso para a conta de administrador para que o administrador possa fazer logon independentemente de quantos grupos transitivos ou intransitivos da conta de administrador é membro. Quando uma dessas opções de inicialização do modo de segurança é usada, o token de acesso criado para a conta de Administrador inclui os SIDs de todos os grupos Internos e de todos os Grupos Globais de Domínio dos quais a conta de Administrador é membro.

Esses grupos geralmente incluem:

  • Todos (S-1-1-0)
  • BUILTIN\Usuários (S-1-5-32-545)
  • BUILTIN\Administradores (S-1-5-32-544)
  • AUTORIDADE DO NT\INTERATIVA (S-1-5-4)
  • NT AUTHORITY\Usuários autenticados (S-1-5-11)
  • LOCAL (S-1-2-0)
  • Domínio\Usuários de Domínio (S-1-5-21-xxxxxxxx-yyyyyy-zzzzzzzz-513)
  • Domínio\Administradores de Domínio (S-1-5-21-xxxxxxxx-yyyyy-zzzzzzzz-512)
  • BUILTIN\Acesso compatível com pré-Windows 2000(S-1-5-32-554) se todos forem membros deste grupo
  • NT AUTHORITY\Esta Organização (S-1-5-15) se o controlador de domínio estiver executando o Windows Server 2003

Observação

Se a opção de inicialização Modo de Segurança for usada, a interface do usuário (interface do usuário) do snap-in Usuários e Computadores do Active Directory não estará disponível. No Windows Server, o administrador pode, alternativamente, fazer logon selecionando a opção de inicialização Modo de Segurança com Rede; nesse modo, a interface do usuário do snap-in Usuários e Computadores do Active Directory está disponível.

Depois que um administrador fizer logon selecionando uma das opções de inicialização do modo de segurança e usando as credenciais da conta de Administrador, o administrador deverá identificar e modificar a associação dos grupos de segurança que causaram a negação do serviço de logon.

Depois que essa alteração for feita, os usuários poderão fazer logon com êxito após um período de tempo igual à latência de replicação do domínio.

Método 3

Essa opção tem o maior apelo se você tiver muitos grupos criados para conceder acesso a recursos usados em um conjunto específico de servidores e eles não forem relevantes para muitos outros servidores. O token de acesso de usuários sempre contém os SIDs dos grupos de usuários, globais e universais. No entanto, ele contém apenas os SIDs de grupos de domínio local do domínio em que estão os servidores de recursos. Portanto, de 600 grupos dos quais um usuário é membro, 400 estão ajudando a dar acesso aos recursos do servidor de arquivos em dois grupos de servidores e, em seguida, as seguintes idéias podem ser viáveis:

  • Divida seus servidores em vários grupos de acordo com o número de grupos de domínio local.
  • Em vez de um domínio de recurso que tenha todos os grupos e servidores, tenha vários domínios em que apenas os grupos definidos contêm os servidores necessários.
  • Tenha um domínio separado para servidores com pouca necessidade de grupos locais de domínio. Um exemplo pode ser os servidores do Exchange, pois o Exchange tem uma forte preferência por grupos universais.

Mais informações

Os SIDs genéricos de uma conta geralmente incluem:

  • Todos (S-1-1-0)
  • BUILTIN\Usuários (S-1-5-32-545)
  • BUILTIN\Administradores (S-1-5-32-544)
  • NT AUTHORITY\Usuários autenticados (S-1-5-11)
  • Sid da sessão de logon (S-1-5-5-X-Y)
  • BUILTIN\Acesso compatível com pré-Windows 2000 (S-1-5-32-554) se o usuário for membro deste grupo (aninhado)

Importante

A ferramenta Whoami é frequentemente usada para inspecionar tokens de acesso. Essa ferramenta não mostra o SID da sessão de logon.

Exemplos de SIDs dependendo do tipo de sessão de logon:

  • LOCAL (S-1-2-0)
  • LOGON DO CONSOLE (S-1-2-1)
  • AUTORIDADE DO NT\REDE (S-1-5-2)
  • AUTORIDADE DO NT \ SERVIÇO (S-1-5-6)
  • AUTORIDADE DO NT\INTERATIVA (S-1-5-4)
  • AUTORIDADE NT\USUÁRIO DO TERMINAL SERVER (S-1-5-13)
  • AUTORIDADE DO NT \ LOTE (S-1-5-3)

SIDs para grupos primários usados com frequência:

  • Domínio\Computadores de Domínio (S-1-5-21-xxxxxxxx-yyyyyy-zzzzzzzz-515)
  • Domínio\Usuários de Domínio (S-1-5-21-xxxxxxxx-yyyyyy-zzzzzzzz-513)
  • Domínio\Administradores de Domínio (S-1-5-21-xxxxxxxx-yyyyy-zzzzzzzz-512)

SIDs que documentam como a Sessão de Logon foi verificada, um dos seguintes valores:

  • Identidade declarada pela autoridade de autenticação (S-1-18-1)
  • Identidade declarada de serviço (S-1-18-2)

SIDs que fornecem detalhes sobre o contexto do token e detalhes da declaração, mais de um possível:

  • Declarações de dispositivo sendo usadas (S-1-5-21-0-0-0-496)
  • Declarações do usuário sendo usadas (S-1-5-21-0-0-0-497)
  • Este certificado de organização (S-1-5-65-1)
  • O token foi criado com a ajuda de uma identidade verificada por PKI (S-1-18-4)
  • O token foi construído usando a abordagem MFA (S-1-18-5)
  • Credential Guard foi usado (S-1-18-6)

SIDs que descrevem o nível de consistência do token, os exemplos mais comuns:

  • Nível Obrigatório Médio (S-1-16-8192)
  • Nível Obrigatório Alto (S-1-16-12288)

O token de acesso inclui um SID relativo à origem do usuário/computador, um dos seguintes valores:

  • AUTORIDADE NT\OTHER_ORGANIZATION (S-1-5-1000)
  • NT AUTHORITY\Esta Organização (S-1-5-15) se a conta for da mesma floresta que o computador.

Observação

  • Como você pode ver com a observação na entrada SID da sessão de logon, não conte os SIDs na lista de saídas da ferramenta e suponha que eles estejam completos para todos os computadores de destino e tipos de logon. Você deve considerar que uma conta corre o risco de atingir esse limite quando tiver mais de 1.000 SIDs. Não se esqueça de que, dependendo do computador em que um token é criado, grupos locais de servidor ou estação de trabalho também podem ser adicionados.
  • xxxxxxxx-yyyyyy-zzzzzzzz indica os componentes de domínio ou estação de trabalho do SID.

O exemplo a seguir ilustra quais grupos de segurança local de domínio serão exibidos no token do usuário quando o usuário fizer logon em um computador em um domínio.

Neste exemplo, suponha que Joe pertença ao Domínio A e seja membro de um grupo local de domínio Domínio A\Usuários de Chicago. Joe também é membro de um grupo local de domínio Domain B\Chicago Users. Quando Joe faz logon em um computador que pertence ao Domínio A (por exemplo, Domínio A\Workstation1), um token é gerado para Joe no computador e o token contém, além de todas as associações de grupo universais e globais, o SID para Usuários do Domínio A\Chicago. Ele não conterá o SID para usuários do domínio B\Chicago porque o computador em que Joe fez logon (Domínio A\Workstation1) pertence ao Domínio A.

Da mesma forma, quando Joe faz logon em um computador que pertence ao Domínio B (por exemplo, Domínio B\Workstation1), um token é gerado para Joe no computador e o token contém, além de todas as associações de grupo universais e globais, o SID para Usuários do Domínio B\Chicago; ele não conterá o SID para Usuários do Domínio A\Chicago porque o computador em que Joe fez logon (Domínio B\Workstation1) pertence ao Domínio B.

No entanto, quando Joe faz logon em um computador que pertence ao Domínio C (por exemplo, Domínio C\Workstation1), um token é gerado para Joe no computador de logon que contém todas as associações de grupo universais e globais para a conta de usuário de Joe. Nem o SID para Usuários do Domínio A\Chicago nem o SID para Usuários do Domínio B\Chicago aparecem no token porque os grupos locais de domínio dos quais Joe é membro estão em um domínio diferente do computador em que Joe fez logon (Domínio C\Workstation1). Por outro lado, se Joe fosse membro de algum grupo local de domínio que pertença ao Domínio C (por exemplo, Usuários do Domínio C\Chicago), o token gerado para Joe no computador conteria, além de todas as associações de grupo universais e globais, o SID para Usuários do Domínio C\Chicago.

Referências