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

Traduções deste artigo Traduções deste artigo
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: Suporte está sendo encerrado para algumas versões do Windows.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

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

269643 A autenticação Kerberos do Internet Explorer não funciona devido a um buffer insuficiente 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 a modificar o valor de registro MaxTokenSize. Um aperfeiçoamento foi feito para esta 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 Conhecimento Microsoft que estão listados nesta seção.

Causa

O usuário não pode 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 dependem do valor de MaxTokenSize ao 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 no Windows Server 2003, o valor de MaxTokenSize é de 12.000 bytes.

Kerberos usa o campo de certificado de atributos 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 houver muitas declarações para o usuário ou o dispositivo que está sendo usado, esses campos podem ocupar muito espaço no pacote.

Se um usuário for membro de mais de 120 grupos, o buffer é determinado pelo valor de MaxTokenSize não é grande o suficiente. Portanto, os usuários não poderão autenticar e eles 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

ImportantePara 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.(Ou seja, 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 se baseia a um aplicativo da web, ou se o token do usuário deve ser passado para um banco de dados do SQL Server de 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 em execuçã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 obter o service pack mais recente do Windows 2000

Informações sobre hotfix

Um hotfix suportado agora está disponível na Microsoft. No entanto, destina-se a corrigir somente o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correcção poderá ser submetida a testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde o próximo service pack do Windows 2000 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 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 para questões 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 possui 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 para a hora local. Para localizar a diferença entre o UTC e a hora local, use a guia fuso horário no item Data e hora no painel de controle.

Situação

A 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, você não precisa modificar o valor de registro MaxTokenSize na maioria dos casos. No entanto, existem alguns cenários em que você precisa modificar o valor de registro MaxTokenSize após aplicar esse hotfix. Depois de aplicar esse 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 é um membro dos grupos locais de domínio mais o número de grupos universais fora do domínio da conta do usuário que o usuário é um membro de mais o número de grupos representados em segurança histórico ID (SID).
  • s: o número de grupos de segurança global 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 é membro.
  • 1200: o valor estimado para sobrecarga de tíquete. Este valor pode variar, dependendo de fatores como o comprimento do nome de domínio DNS, nome do cliente e outros fatores.
Em cenários em que a delegação é usada (por exemplo, quando os usuários são autenticados para um controlador de domínio), é recomendável dobrar o tamanho de token.

Quando definir a entrada do registro

Se o tamanho de token que você calcular usando esta fórmula é menos de 12.000 bytes (o tamanho padrão), você não precisa 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 Conhecimento Microsoft para obter uma descrição de como ajustar o valor de registro MaxTokenSize:

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

Observações
  • Quando você altera o valor de MaxTokenSize, você deve reiniciar o computador para que a alteração se torna efetiva.
O valor recomendado para a entrada de registro MaxTokenSize é 65535 decimal ou hexadecimal FFFF. O valor de MaxTokenSize Especifica um tíquete Kerberos fixo receber o buffer que contém os SIDs que representam os grupos nos quais a conta é membro.

Para usar um tamanho de seguro, você pode optar por definir MaxTokenSize para 48000, após a discussão sobre uma limitação introduzida pelo tamanho do cabeçalho HTTP neste artigo. Dependendo de que valor que você está usando, primeiro você encontrar um problema com os eventos de erro do Kerberos ou erros do IIS HTTP 400.

Problemas conhecidos que podem ocorrer

Problemas conhecidos para o tamanho de Token de acesso:

O serviço de autoridade de segurança Local (LSA) gera o Token de acesso do usuário a partir desse buffer de 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 de mais de 1,015 grupos 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
40d significa que você terá de 40 bytes para um SID de grupo de domínio Local. 8s significa 8 bytes para um SID de grupo do domínio Global/Universal.

Portanto, se você tiver um valor de MaxTokenSize de 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 dobrado. 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 64K deve ser suficiente até mesmo para cenários de delegação.

Problemas conhecidosao usar os valores de MaxTokenSize maior que 65535

Versões anteriores deste artigo discutidos valores de 100000 bytes para MaxTokenSize. Descobrimos que versões do SMS Administrator tem problemas quando o MaxTokenSize é 100000 ou maior. Também identificamos que o protocolo IKE IPSEC não permite que um BLOB fique maior do que 66536 bytes de segurança e também falhará quando MaxTokenSize é definida como um valor maior.

Problemas conhecidos para o servidor de informações de Internet HTTP o buffer de recepção

O Internet Information Server (IIS) usa um tamanho de buffer de solicitação reduzido para atenuar uma negação do vetor de ataque de serviço de 64 KB. No entanto, uma permissão Kerberos em uma solicitação HTTP é codificada como Base64 (seis bits expandido para oito bits). Além disso, e a permissão Kerberos está usando 133% do seu tamanho original. Portanto, quando o tamanho máximo do buffer é 64 KB no IIS, 48 KB de um tíquete Kerberos pode ser usado.

Se você definir a entrada de registro MaxTokenSize como um valor maior que 48000 e o espaço do buffer é usado para SIDs, poderá ocorrer um erro do IIS. No entanto, se você definir a entrada de registro MaxTokenSize como 48000, pode ocorrer um erro de Kerberos.

Para obter mais informações sobre tamanhos de buffer do IIS, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento Microsoft:
310156 Como limitar o tamanho do cabeçalho da transmissão HTTP que o IIS aceita a partir de um cliente no Windows 2000

920862 Mensagem de erro quando um usuário do Outlook Web Access tenta acessar uma caixa de correio no Exchange Server 2003: "HTTP 400 Solicitação incorreta (cabeçalho de solicitação muito longo)"

Alterações do Windows Server 2012

O Windows Server 2012 introduziu as seguintes alterações para as considerações sobre esse buffer:
  • Altera o padrão para MaxTokenSize a 48.000 bytes.
  • Há um novo esquema para compactar os sids contidas 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 os tíquetes mesmos que são 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 estão usando declarações amplamente, você pode esperar a fase de um número significativo de seus grupos que controlam o acesso a arquivos para aparar tamanhos de tíquete.

Para obter mais informações sobre as alterações do Windows Server 2012, acesse 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:
277741 Logon do Internet Explorer falha devido a um buffer insuficiente para o Kerberos
313661 Mensagem de erro: "Tempo limite esgotado" ocorre quando você se conectar ao SQL Server sobre TCP/IP e o Kerberos MaxTokenSize é maior que 0xFFFF

Como você pode ter 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, é recomendável 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: sexta-feira, 13 de junho de 2014 - Revisão: 4.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
  • Windows 8.1 Enterprise
  • Windows 8.1 Pro
  • Windows Server 2012 R2 Datacenter
  • Windows Server 2012 R2 Essentials
  • Windows Server 2012 R2 Foundation
  • Windows Server 2012 R2 Standard
Palavras-chave: 
kbqfe kbhotfixserver kbsecurity kbwin2ksp4fix kbbug kbfix kbwin2000presp3fix kbwin2000presp4fix kbmt KB327825 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 327825

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com