CORRECÇÃO: Poderão falhar solicitações POST em um servidor web que esteja executando o Forefront Threat Management Gateway 2010

Traduções deste artigo Traduções deste artigo
ID do artigo: 2596444 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Considere o seguinte cenário:
  • Você tem um servidor que esteja executando o Microsoft Forefront Threat Management Gateway (TMG) 2010.
  • O servidor da TMG está configurado como um servidor web.
  • O ouvinte da web TMG usa autenticação baseada em formulários, juntamente com a delegação NTLM no servidor web publicado.
  • Existem solicitações POST para o servidor de web TMG.
Nesse cenário, as solicitações POST podem falhar. Isso pode causar vários problemas de aplicativos que dependem do tipo de solicitações POST que falham.

Causa

Esse problema ocorre se as seguintes condições forem verdadeiras:
  • A autenticação baseada em formulários TMG está sendo usada.
  • Delegação NTLM é configurada na regra de publicação TMG delegar autenticação no servidor web publicado.
  • ISA envia uma solicitação ao servidor web em uma conexão já autenticada.
  • O servidor web responde com uma 401.
Quando delegação NTLM é usada, a TMG autentica uma conexão ao servidor web na primeira solicitação ao servidor web em que a conexão. A autenticação é mantida, em seguida, na conexão para que as solicitações posteriores não é necessário ter reautenticação.

Se uma solicitação é enviada ao servidor web em uma conexão já autenticada, o servidor web pode responder com uma solicitação de 401 autenticação inesperada. Esse problema pode ocorrer quando as solicitações são atendidas por diferentes pools de aplicativos no servidor web, porque o IIS não persiste autenticação através de pools de aplicativos.

Quando a autenticação baseada em formulários está sendo usada, TMG tratará a solicitação 401 inesperado redirecionar o usuário volta para o recurso solicitado originalmente e adicionando uma marca de AuthResend para a URL. Quando o cliente faz a segunda solicitação, a TMG determina que a solicitação precisa reautenticação pela marca AuthResend e, em seguida, remove a marca de AuthResend antes da solicitação é enviada ao servidor web.

Entretanto, um redirecionamento não inclui um método HTTP e o cliente fará com que uma solicitação GET depois de um redirecionamento. Portanto, a solicitação POST e o corpo do POST não são enviados para o servidor web.

Uma ferramenta como Strace, Fiddler ou HTTPWatch pode ser usada no cliente para determinar se a TMG está enviando redirecionamentos que têm a marca de AuthResend em resposta a solicitações POST. Por exemplo, um redirecionamento para uma solicitação para o http://domain/test.asp de URL é semelhante a seguir: http://domain/test.asp&authResendNNN

Os logs de proxy da web TMG não mostram a marca AuthResend porque a marca é removida da URL antes que a URL é enviada ao servidor web e, portanto, também não está conectada.

Esse comportamento pode ser percebido para solicitações GET. No entanto, o comportamento não irá causar um problema, porque o redirecionamento será ser reenviado como uma solicitação GET, e isso não causa o mesmo problema.

Resolução

Há uma configuração interna que pode ser definida em uma regra de publicação para informar a TMG reautenticação automaticamente solicitações de não-GET. Isso evita que as 401 solicitações inesperadas do servidor web.

Por padrão, na TMG Service Pack 2 essa configuração é ativada em regras que têm a autenticação baseada em formulários no ouvinte da web e que usa delegação NTLM de publicação na web.

Para resolver esse problema, instale o service pack que está descrito no seguinte artigo da Base de Conhecimento Microsoft:
2555840 Descrição do Service Pack 2 para o Microsoft Forefront Threat Management Gateway 2010

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Para contornar esse problema no ISA 2006 ou na TMG sem o Service Pack 2, você pode usar o script a seguir para definir o parâmetro interno em uma regra de publicação da web especificada. Por padrão, essa é a configuração que permite a TMG Service Pack 2.

Para usar o script, copie-o no bloco de notas e salve-o como um arquivo. vbs em um dos membros da matriz.

Edite a seguinte linha no script, substituindo ReplaceRuleNameHere com o nome da regra de publicação da web relevante:
argRuleName = "ReplaceRuleNameHere"
Em seguida, execute o seguinte script em um dos membros da matriz em uma matriz:
argRuleName = "ReplaceRuleNameHere"
argParamName = "SendLogonOn401"
argVal = "true"

Set rule = CreateObject("FPC.Root").GetContainingArray.ArrayPolicy.PolicyRules.Item(argRuleName)
Set VendorSets = rule.VendorParametersSets

On Error Resume Next
Set VendorSet = VendorSets.Item( "{5e302ed5-f5d5-4fad-9b8a-01c72e1569f3}" )
If Err.Number <> 0 Then
Err.Clear
Set VendorSet = VendorSets.Add( "{5e302ed5-f5d5-4fad-9b8a-01c72e1569f3}" )
CheckError
WScript.Echo "No existing VendorSet."
Else
WScript.Echo "Existing VendorSet found. Values in it:"
for each name in VendorSet.allNames
WScript.Echo " ", name, "=", VendorSet.Value(name)
next
WScript.Echo "-------------------------------------"
End If

On Error GoTo 0

On Error Resume Next
valType = "Int" : Val = CInt(argVal)
If Err.Number <> 0 Then
Err.Clear
valType = "Boolean" : Val = CBool(argVal)
If Err.Number <> 0 Then
Err.Clear
valType = "String" : Val = CStr(argVal)
End If
End If

WScript.Echo "Setting", argParamName, "=", Val, "(type=" & valType & ")"
VendorSet.Value(argParamName) = Val

VendorSet.Save

Sub CheckError()
If Err.Number <> 0 Then
WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
Err.Clear
End If
End Sub

Referências

Para obter mais informações sobre a terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684 Descrição da terminologia padrão usada para descrever as atualizações de software Microsoft

Propriedades

ID do artigo: 2596444 - Última revisão: segunda-feira, 17 de outubro de 2011 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Forefront Threat Management Gateway 2010 Enterprise
  • Microsoft Forefront Threat Management Gateway 2010 Standard
  • Microsoft Forefront Threat Management Gateway 2010 Service Pack 1
Palavras-chave: 
kbfix kbbug kbexpertiseinter kbsurveynew kbmt KB2596444 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: 2596444

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