Problemas com a autenticação Kerberos quando um usuário pertencer a muitos grupos

ID do artigo: 327825 - Exibir os produtos aos quais esse artigo se aplica.
Suporte para Windows Vista Service Pack 1 (SP1) termina em 12 de julho de 2011. Para continuar recebendo atualizações de segurança para Windows, verifique se está executando o Windows Vista com Service Pack 2 (SP2). Para obter mais informações, consulte esta página da Web Microsoft: O suporte está terminando em algumas versões do Windows.
Expandir tudo | Recolher tudo

Nesta página

Sintomas

Quando um usuário pertence a vários grupos, que o usuário pode ter problemas com a autenticação ou com as configurações de diretiva de grupo. Os seguintes artigos da Base de dados de Conhecimento da Microsoft descrevem esses sintomas mais detalhadamente:

269643 Internet A autenticação Kerberos Explorer não funciona devido a um insuficiente buffer conectando-se ao IIS
280380 Exploração de estouro de buffer possível com procedimentos armazenados estendidos
2020943 Erro "HTTP 400 - Solicitação incorreta (solicitação de cabeçalho muito longo)" no Internet Information Services (IIS)
A resolução descrita neste artigo instrui você modifique o valor de registro MaxTokenSize. Um aperfeiçoamento foi feito essa resolução. Se você usar o hotfix descrito neste artigo, você não terá que editar o valor de MaxTokenSize padrão.

O hotfix descrito neste artigo substitui os hotfixes descritos nos artigos da Base de dados de Conhecimento da Microsoft que estão listados nesta seção.

Causa

O usuário não é possível autenticar porque o token Kerberos gerado durante as tentativas de autenticação tem um tamanho máximo fixo. Transportes como chamada de procedimento remoto (RPC) e HTTP contam com o valor de MaxTokenSize quando eles alocar buffers para autenticação. No Windows 2000 (versão original), o valor de MaxTokenSize é 8.000 bytes. No Windows 2000 Service Pack 2 (SP2) e Windows Server 2003, o valor de MaxTokenSize é 12.000 bytes.

Kerberos usa o campo de certificado de atributo de privilégio (PAC) do pacote Kerberos para transporte de associação de grupo do Active Directory. A partir do Windows Server 2012, isso também se aplica ao campo de informações (controle de acesso dinâmico) declarações do Active Directory. Se houver muitos membros do grupo para o usuário, e se há muitas declarações para o usuário ou dispositivo que está sendo usado, esses campos podem ocupar muito espaço no pacote.

Se um usuário for um membro dos grupos de mais de 120, o buffer é determinado pelo valor MaxTokenSize não é grande o suficiente. Portanto, os usuários não autenticados e podem receber uma mensagem de erro "memória insuficiente". Antes de aplicar o hotfix descrito neste artigo, cada grupo é adicionado a uma conta de usuário aumenta esse buffer de 40 bytes.

Observação Em muitos cenários, a autenticação NTLM do Windows funciona conforme o esperado. Você pode não ver o problema de autenticação Kerberos sem análise. No entanto, os cenários em que são aplicadas as configurações de diretiva de grupo podem não funcionar conforme o esperado.

Resolução

Importante Para resolver esse problema, você deve definir o valor de registro MaxTokenSize para todos os computadores que estão envolvidos no processo de autenticação Kerberos. Isso inclui os clientes do SQL Server. (Isto é, a chave do registro tem que ser definida em cada computador que está envolvido no fluxo de solicitação/resposta. Portanto, se houver um cliente do SQL Server no qual um aplicativo da web baseia-se, ou se o token do usuário deve ser passado para um banco de dados do SQL Server back-end, a chave do registro tem que ser definida no computador cliente do SQL Server, o computador do banco de dados do SQL Server e também o computador cliente que esteja executando o Internet Explorer, o servidor web executando o que está executando o IISe assim por diante.)

Observação As seguintes versões do Windows incluem uma correção para esse problema:
  • O Windows 8
  • Windows Server 2012
  • Windows 7
  • Windows Server 2008 R2
  • Windows Server 2003
  • O Windows Vista
  • Windows Server 2008
  • Windows XP Professional

Informações do Service pack

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft Windows 2000. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
260910 Como Obtenha o service pack mais recente do Windows 2000

Informações sobre hotfix

Agora há um hotfix com suporte da Microsoft. No entanto, destina-se apenas a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esse hotfix pode receber testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde o próximo serviço do Windows 2000 Pack que contém esse hotfix.

Para resolver esse problema imediatamente, contate o Atendimento Microsoft para obter o hotfix. Para uma lista completa dos números de telefone do Atendimento Microsoft e informações sobre os custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?WS=support
Observação Em alguns casos, taxas cobradas pelas ligações para o suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a perguntas de suporte adicionais e problemas que não se qualificam à atualização específica em questão.A versão em inglês deste hotfix tem os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas em formato Tempo Universal Coordenado (UTC). Quando você exibir as informações do arquivo, ele é convertido em hora local. Para localizar a diferença entre o UTC e a hora local, use o Fuso horário guia no item Data e hora no painel de controle.

Situação

Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplica-se a". Esse problema foi corrigido primeiro no Microsoft Windows 2000 Service Pack 4.

Mais Informações

Token tamanho cálculo Windows 2000 para Windows Server 2008 R2

Se você usar o hotfix descrito neste artigo, não é necessário modificar o valor de registro MaxTokenSize na maioria dos casos. No entanto, existem alguns cenários em que você precise modificar o valor de registro MaxTokenSize após aplicar esse hotfix. Depois de aplicar esta correcção hotfix para todos os controladores de domínio, use a seguinte fórmula para determinar Se você precisa modificar o valor de MaxTokenSize:
TokenSize = 1200 + 40 d + 8s
Essa fórmula usa os seguintes valores:
  • d: o número de um usuário é membro dos grupos locais de domínio mais o número de grupos universais fora do domínio de conta do usuário que o usuário seja membro de mais o número de grupos representados na segurança do histórico do SID (identificador).
  • s: o número de grupos globais de segurança que um usuário é um membro de mais o número de grupos universais no domínio da conta do usuário que o usuário é um membro de.
  • 1200: O valor estimado para a sobrecarga de tíquete. Esse valor pode variar, dependendo de fatores como o comprimento do nome de domínio DNS, nome do cliente e outros fatores.
Em situações em que a delegação é usada (por exemplo, quando os usuários são autenticados em um controlador de domínio), recomendamos que você clique duas vezes o tamanho de token.

Quando definir a entrada do registro

Se o tamanho de token que calcular usando esta fórmula é menos de 12.000 bytes (o tamanho padrão), não é necessário modificar o valor de registro MaxTokenSize em clientes de domínio. Se o valor for mais de 12.000 bytes, consulte o seguinte artigo da Base de dados de Conhecimento da Microsoft para um Descrição de como ajustar o valor de registro MaxTokenSize:

263693 Diretiva de grupo não pode ser aplicada a usuários que pertencem a muitos grupos

Observações
  • Quando você altera o valor de MaxTokenSize, você deve reiniciar o computador para que a alteração seja eficaz.
O valor máximo recomendado é 65535 decimal ou hexadecimal de FFFF. O valor de MaxTokenSize Especifica um tíquete Kerberos fixo receber o buffer que contém os SIDs que representam os grupos em que a conta é membro. Posteriormente, o serviço de autoridade de segurança Local (LSA) gera o token de buffer esse SID. O limite codificado de cliente definíveis SIDs para esse token é 1,015, consulte este artigo do KB:
328889 Usuários que são membros dos grupos mais de 1,015 poderão falhar a autenticação de logon
http://support.microsoft.com/KB/328889/en-US

Portanto, um valor de MaxTokenSize para mais de 1015 SIDs eficaz não é útil. Na fórmula a seguir:
MaxTokenSize = 1200 + 40 d + 8s
d 40 é que você tem 40 bytes para um SID de Grupo Local de domínio. 8s significa 8 bytes para um SID de grupo do domínio Global/Universal.

Portanto, se você tiver um valor MaxTokenSize 0x0000FFFF (64K), você poderá aproximadamente 1600 grupo SIDs locais ou aproximadamente 8000 domínio Global/Universal grupo SIDs de buffer. Se você usar contas "confiável para delegação", o requisito de buffer para cada SID pode ser dupla. Nessas situações, você só pode armazenar aproximadamente 800 domínio SIDs de Grupo Local quando é usado um valor de MaxTokenSize de 64K. No entanto, ter somente grupo SIDs locais não é um cenário típico. Um valor de 64 K deve ser suficiente até mesmo para cenários de delegação.

Alterações do Windows Server 2012

Windows Server 2012 introduziu as seguintes alterações para as considerações sobre esse buffer:
  • O padrão para MaxTokenSize é alterado para 48.000 bytes.
  • Há um novo esquema para compactar os sids no PAC
  • Controle de acesso dinâmico adiciona declarações de diretório ativo para o tíquete. Portanto, calcular o tamanho esperado de tíquete não é mais simples. A expectativa é que os tíquetes emitidos pelos controladores de domínio do Windows Server 2012 são menores do que o mesmos tíquetes emitidos de versões mais antigas do sistema operacional. Declarações aumentam o tamanho do tíquete. No entanto, depois que os servidores de arquivos Windows Server 2012 estiverem usando declarações amplamente, você pode esperar a fase de um número significativo de seus grupos que controlam o acesso de arquivo para aparar tamanhos de tíquete.

Para obter mais informações sobre as alterações do Windows Server 2012, visite o seguinte site da Microsoft TechNet:
http://technet.microsoft.com/en-us/library/hh831717.aspx

Exemplos de problemas quando o tamanho do tíquete for excedido

Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
277741Falha de logon do Internet Explorer devido a um buffer insuficiente para o Kerberos
313661 Mensagem de erro: "Tempo limite expirou" ocorre quando você se conectar ao SQL Server sobre TCP/IP e o Kerberos MaxTokenSize é maior que 0xFFFF

Porque você pode ter os cenários de logon entre domínios na floresta, o valor deve ser definido em toda a floresta em todos os sistemas baseados no Windows. Portanto, recomendamos que o valor máximo para o valor de MaxTokenSize seja 64K.

Importante Nos clientes do SQL Server, você receberá a seguinte mensagem de erro quando esse problema ocorre:
Não é possível gerar contexto SSPI
Para resolver esse problema, você deve definir o valor de registro MaxTokenSize para todos os computadores que estão envolvidos no processo de autenticação Kerberos. Isso inclui os clientes do SQL Server.

Propriedades

ID do artigo: 327825 - Última revisão: quarta-feira, 20 de fevereiro de 2013 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows Server 2003 Service Pack 2
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Foundation
  • Windows Server 2008 R2 Standard
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Ultimate
  • Windows Server 2012 Datacenter
  • Windows Server 2012 Essentials
  • Windows Server 2012 Foundation
  • Windows Server 2012 Standard
  • Windows 8 Enterprise
  • Windows 8 Pro
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Datacenter x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
Palavras-chave: 
kbqfe kbhotfixserver kbsecurity kbwin2ksp4fix kbbug kbfix kbwin2000presp3fix kbwin2000presp4fix kbmt KB327825 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 327825

Submeter comentários