Erro "HTTP 400 – pedido incorrecto (solicitar cabeçalho demasiado longo)" no Internet Information Services (IIS)

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 2020943
Sintomas

Um utilizador de domínio tenta navega num Web site alojado em serviços de informação Internet (IIS) 6.0 ou superior utilizando o Internet Explorer 6.0 ou posterior.  O Web site está configurado para utilizar a autenticação Kerberos.  Em vez de receber a página web esperada, é apresentada ao utilizador com uma mensagem de erro semelhante à seguinte:

HTTP 400 – pedido inválido (cabeçalho de pedido demasiado longo)

Causa

Este problema poderá ocorrer quando o utilizador é membro do grupos de utilizador do Active Directory. Quando um utilizador for membro de um grande número do active directory agrupa o token de autenticação Kerberos para o utilizador aumenta de tamanho. O pedido HTTP que o utilizador envia para o servidor de IIS contém o token Kerberos no cabeçalho WWW-Authenticate e o tamanho do cabeçalho aumenta à medida que aumenta o número de grupos.  Se o cabeçalho de HTTP ou tamanho de pacote aumenta passados os limites configurados no IIS, o IIS pode rejeitar o pedido e enviar este erro como a resposta.

Resolução

Para contornar este problema, escolha uma das seguintes opções:

A) o número de grupos do Active Directory que o utilizador é um membro de diminuir.

OU

B) modificar a MaxFieldLength e as definições de registo MaxRequestBytes no servidor de IIS para que os cabeçalhos de pedido do utilizador não são considerados demasiado longos.  Para determinar as definições apropriadas para o MaxFieldLength e as entradas de registo de MaxRequestBytes, utilize os seguintes cálculos:

    1. Calcule o tamanho do token de Kerberos do utilizador utilizando a fórmula descrita no seguinte artigo:

      Autenticação nova resolução de problemas relacionados com Kerberos quando os utilizadores pertencem a quantidade de grupos
      http://support.microsoft.com/kb/327825


    2. Configurar a MaxFieldLength e as chaves de registo MaxRequestBytes no servidor IIS com um valor de4/3 * T, onde T é o tamanho de token do utilizador, em bytes. HTTP codifica o token Kerberos utilizando codificação base64 e, por conseguinte, substitui todos os bytes no token com 4 base64 3 codificado bytes.  As alterações efectuadas no registo não terão efeito até reiniciar o serviço HTTP. Além disso, poderá ter de reiniciar os serviços do IIS relacionados.

Nota: Dependendo do ambiente de aplicação, pode também optar por configurar o web site para utilizar NTLM em vez de Kerberos para contornar este problema.  Alguns ambientes de aplicação requerer o Kerberos a ser utilizados para fins de delegação e Kerberos é mais seguro que NTLM, pelo que é recomendado que desactive Kerberos antes de considerar as ramificações de segurança e de delegação deste procedimento.


Mais Informação

Por predefinição, a entrada de registo de MaxFieldLength não está presente. Esta entrada de registo Especifica o limite de tamanho máximo de cada cabeçalho de pedido HTTP. A entrada de registo MaxRequestBytes Especifica o limite superior para o tamanho total da linha de pedido e os cabeçalhos. Normalmente, esta entrada de registo é configurada com a entrada de registo MaxRequestBytes. Se o valor de MaxRequestBytes for menor que o valor de MaxFieldLength, o valor de MaxFieldLength é ajustado.  Em ambientes do Active Directory grandes, os utilizadores poderão ter falhas de início de sessão, se os valores para ambos os estas entradas não estão definidos para um valor suficientemente elevado.

Para o Internet Information Services (IIS) 6.0 e posterior, as chaves de registo MaxFieldLength e MaxRequestBytes estão localizadas emHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters.  Configurá-los tal como é mostrado na seguinte tabela:

Nome

Tipo de valor

Dados do valor

MaxFieldLength

DWORD

(4/3 * T bytes) + 200

MaxRequestBytes

DWORD

(4/3 * T bytes) + 200

Em alternativa pode definir as chaves de registo para os respectivos valores de máximos mostrados abaixo. O administrador deverá considerar todas as implicações de segurança potencial se de que ele fizer, quaisquer alterações às definições do registo:

 

Nome

Tipo de valor

Dados do valor

MaxFieldLength

DWORD

65534

MaxRequestBytes

DWORD

16777216

Importante: Alterar estas chaves de registo pode ser considerado extremamente perigosa. Estas chaves permitem pacotes maiores de HTTP a ser enviado para o IIS, que por sua vez, pode fazer com que o HTTP. sys utilizar mais memória e poderá aumentar a vulnerabilidade a ataques maliciosos.

Nota: Se MaxFieldLength for configurado para o respectivo valor máximo de 64KB, o valor de registo MaxTokenSize deve ser definido como 3/4 * 64 = 48 KB.  Para mais informações sobre a definição de MaxTokenSize, consulte o artigo da knowledge base de dados de conhecimento da Microsoft que kb327825 listados abaixo.

Mais informações sobre os tópicos abordados neste artigo podem ser encontradas nas seguintes localizações:

Definições de registo de HTTP. sys para o IIS
http://support.microsoft.com/KB/820129/en-us

Registo de erros no HTTP API
http://support.microsoft.com/?ID=820729

Nova resolução de problemas com a autenticação Kerberos quando os utilizadores pertencem a quantidade de grupos
http://support.microsoft.com/KB/327825

Mensagem de erro quando um utilizador do Outlook Web Access tenta aceder a uma caixa de correio no Exchange Server 2003
http://support.microsoft.com/KB/920862

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2020943 - Última Revisão: 11/03/2015 01:56:00 - Revisão: 2.0

Microsoft Internet Information Services 10.0, Microsoft Internet Information Services 8.5, Microsoft Internet Information Services 8.0, Microsoft Internet Information Services 7.5, Microsoft Internet Information Services 7.0, Microsoft Internet Information Services 6.0

  • kbmt KB2020943 KbMtpt
Comentários