ID do artigo: 327825 - Última revisão: quarta-feira, 19 de maio de 2010 - Revisão: 13.0

Nova resolução de problemas com a autenticação Kerberos quando os usuários pertencem a muitos grupos

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Quando um usuário pertencer a muitos 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  (http://support.microsoft.com/kb/269643/ ) Internet Explorer A autenticação Kerberos não funciona por causa de um buffer insuficiente conectando ao IIS
280380  (http://support.microsoft.com/kb/280380/ ) Exploração de estouro de buffer possível com procedimentos armazenados estendidos
A resolução existente descrito esses artigos instrui para modificar o valor de registro MaxTokenSize. Um aperfeiçoamento foi feito para esta resolução. Se você usar o hotfix descrito neste artigo, talvez não seja necessário 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 listados nesta seção.

Causa

O usuário não é capaz de autenticar porque os Kerberos token que é gerado durante a autenticação tentativas tem um tamanho máximo fixo. Transportes como chamada de procedimento remoto (RPC) e HTTP depende o valor MaxTokenSize quando eles alocar buffers para autenticação. No Windows 2000 (versão original lançada), o valor MaxTokenSize é 8.000 bytes. No Windows 2000 Service Pack 2 (SP2) e Microsoft Windows Server 2003, o valor MaxTokenSize é 12 mil bytes.

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

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

Resolução

Observação: Windows Server 2003, Windows Vista, Windows Server 2008 e Windows XP Professional incluem uma correção para esse problema.

Informações sobre o 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  (http://support.microsoft.com/kb/260910/ ) Como obter o service pack mais recente do Windows 2000

Informações sobre hotfix

Um hotfix compatível foi disponibilizado pela Microsoft. No entanto, destina-se a corrigir o problema descrito neste artigo. Aplique-o somente nos sistemas que apresentarem esse problema específico. Esta correcção pode 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 ao cliente Microsoft para obter o hotfix. Para obter uma lista completa de números de telefone do serviços de suporte ao cliente da Microsoft e informações sobre os custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=support (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 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 apresenta os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas em UTC (hora coordenada universal COORDENADO). Quando você exibe as informações do arquivo, ele é convertido em hora local. Para encontrar 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.
   Date         Time    Version         Size      File name
    -------------------------------------------------------- 
   26-Sep-2002  11:39   5.0.2195.6069   124,176   Adsldp.dll 
   26-Sep-2002  11:39   5.0.2195.5781   131,344   Adsldpc.dll 
   26-Sep-2002  11:39   5.0.2195.5781    62,736   Adsmsext.dll 
   26-Sep-2002  11:39   5.0.2195.6052   358,160   Advapi32.dll 
   26-Sep-2002  11:39   5.0.2195.6058    49,424   Browser.dll 
   26-Sep-2002  11:39   5.0.2195.6012   135,952   Dnsapi.dll 
   26-Sep-2002  11:39   5.0.2195.6012    96,016   Dnsrslvr.dll 
   26-Sep-2002  11:39   5.0.2195.5722    45,328   Eventlog.dll 
   26-Sep-2002  11:39   5.0.2195.6059   146,704   Kdcsvc.dll 
   05-Sep-2002  14:18   5.0.2195.6048   200,976   Kerberos.dll 
   21-Aug-2002  05:27   5.0.2195.6023    71,248   Ksecdd.sys 
   25-Sep-2002  15:01   5.0.2195.6072   507,664   Lsasrv.dll 
   25-Sep-2002  15:01   5.0.2195.6072    33,552   Lsass.exe 
   27-Aug-2002  11:53   5.0.2195.6034   108,816   Msv1_0.dll 
   26-Sep-2002  11:39   5.0.2195.5979   307,472   Netapi32.dll 
   26-Sep-2002  11:39   5.0.2195.5966   360,720   Netlogon.dll 
   26-Sep-2002  11:39   5.0.2195.6048   918,800   Ntdsa.dll 
   26-Sep-2002  11:39   5.0.2195.6025   389,392   Samsrv.dll 
   26-Sep-2002  11:39   5.0.2195.5951   129,296   Scecli.dll 
   26-Sep-2002  11:39   5.0.2195.5951   302,864   Scesrv.dll 
   26-Sep-2002  11:39   5.0.2195.5859    48,912   W32time.dll 
   04-Jun-2002  10:32   5.0.2195.5859    57,104   W32tm.exe 
   26-Sep-2002  11:39   5.0.2195.6052   126,224   Wldap32.dll

Situação

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

Mais Informações

Anteriormente, se os usuários detectou este problema, era necessário ajustar o valor de Kerberos MaxTokenSize para retomar as operações. Para resolver esse problema, você precisava atualizar este valor em todas as estações de trabalho do domínio.

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ê precisa modificar o valor de registro MaxTokenSize após aplicar esse hotfix. Após aplicar esse hotfix em todos os controladores de domínio, use a seguinte fórmula para determinar se você tem que modificar o valor 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 mais o número de grupos representados em segurança histórico de SID (identificador).
  • s: o número de grupos globais de segurança que um usuário é membro de mais o número de grupos universais no domínio da conta do usuário.
  • 1200: O valor estimado para permissão de sobrecarga. Esse valor pode variar de acordo com fatores como tamanho 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 autenticados em um controlador de domínio), a Microsoft recomenda que você duplicar o tamanho de token.

Se o tamanho de token que calculam usando esta fórmula for menor do que 12 mil 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 obter uma descrição de como ajustar o valor de registro MaxTokenSize:

263693  (http://support.microsoft.com/kb/263693/ ) A diretiva de grupo não pode ser aplicada a usuários que pertencem a muitos grupos
Para obter mais informações sobre como obter um hotfix para Windows 2000 Datacenter Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
265173  (http://support.microsoft.com/kb/265173/ ) O Produto Datacenter Program e o Windows 2000 Datacenter Server
Anotações
  • Quando você altera MaxTokenSize, reinicie o computador para que a alteração seja eficaz.
  • O valor máximo recomendado é 65535 decimal ou hexadecimal FFFF. O valor MaxTokenSize Especifica um tíquete Kerberos fixo receber o buffer que contém os SIDs que representam os grupos dos quais 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. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    328889  (http://support.microsoft.com/kb/328889/ ) Os usuários que são membros dos grupos mais de 1,015 poderá falhar a autenticação de logon
Portanto, não um valor MaxTokenSize para mais de 1015 SIDs eficaz é útil. Na fórmula a seguir:
MaxTokenSize = 1200 + 40 d + 8s
d 40 significa que você deve ter 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 (64 K), talvez seja possível aproximadamente 1600 SIDs de grupo local da domínio ou aproximadamente 8000 domínio global/universal grupo SIDs de buffer. Se você usa 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 o valor de 64 K MaxTokenSize é usado. No entanto, precisar apenas domínio local grupo SIDs não é um cenário realista. Um valor de 64 K deve ser suficiente até mesmo para cenários de delegação. Além disso, os aplicativos podem ter problemas ao se um buffer de tamanho de token contiver mais de 64 K.

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

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

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, configure o valor de registro MaxTokenSize para todos os computadores envolvidos no processo de autenticação Kerberos, incluindo os clientes do SQL Server.

A informação contida neste artigo aplica-se a:
  • Microsoft Windows 2000 Server SP1
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Server SP2
  • Microsoft Windows 2000 Advanced Server SP1
  • Microsoft Windows 2000 Advanced Server SP2
  • Microsoft Windows 2000 Advanced Server SP3
  • Microsoft Windows 2000 Professional SP1
  • Microsoft Windows 2000 Professional SP2
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium)
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003 R2 Datacenter x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Windows Vista Business
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Windows Vista Business 64-bit edition
  • Windows Server 2008 Datacenter without Hyper-V
  • Windows Server 2008 Enterprise without Hyper-V
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Standard without Hyper-V
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
Palavras-chave: 
kbmt kbqfe kbhotfixserver kbsecurity kbwin2ksp4fix kbbug kbfix kbwin2000presp3fix kbwin2000presp4fix KB327825 KbMtpt
Tradução automáticaTraduçã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  (http://support.microsoft.com/kb/327825/en-us/ )