REVISIÓN: Pueden fallar en solicitudes POST a un servidor web que ejecuta Forefront Threat Management Gateway 2010

Seleccione idioma Seleccione idioma
Id. de artículo: 2596444 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Tenga en cuenta la situación siguiente:
  • Dispone de un servidor que ejecuta Microsoft Forefront Threat Management Gateway (TMG) 2010.
  • El servidor TMG está configurado como un servidor web.
  • El agente de escucha de web TMG utiliza la autenticación basada en formularios junto con la delegación de NTLM para el servidor web publicado.
  • Hay solicitudes POST al servidor web TMG.
En este escenario, las solicitudes POST pueden fallar. Esto puede causar diversos problemas de aplicaciones que dependen del tipo de solicitudes POST que fallan.

Causa

Este problema se produce si se cumplen las condiciones siguientes:
  • Se utiliza la autenticación basada en formularios TMG.
  • Delegación de NTLM se configura en la regla de publicación de TMG delegar la autenticación al servidor web publicado.
  • ISA envía una solicitud al servidor web en una conexión ya autenticada.
  • El servidor web responde con un 401.
Cuando se utiliza la delegación de NTLM, TMG autentica una conexión al servidor web en la primera solicitud al servidor web en esa conexión. La autenticación se conserva en la conexión para que no es necesario tener reautenticación solicitudes posteriores.

Si se envía una solicitud al servidor web en una conexión ya autenticada, el servidor web puede responder con una solicitud de 401 autenticación inesperado. Este problema puede producirse cuando las solicitudes son atendidas por grupos de aplicaciones diferentes en el servidor web, porque IIS no conserva la autenticación entre grupos de aplicaciones.

Cuando se utiliza la autenticación basada en formularios, TMG controlará la solicitud de 401 inesperado redireccionando al usuario al recurso solicitado originalmente y agregando una etiqueta de AuthResend a la dirección URL. Cuando el cliente realiza la segunda solicitud, TMG determina que la solicitud debe reautenticación por la etiqueta de AuthResend y, a continuación, quita la etiqueta de AuthResend antes de que la solicitud se envía al servidor web.

Sin embargo, una redirección no incluye un método HTTP y el cliente realizará una solicitud GET después de una redirección. Por lo tanto, la solicitud POST y cuerpo POST no se envían al servidor web.

Una herramienta como, por ejemplo, Strace, HTTPWatch o Fiddler puede utilizarse en el cliente para determinar si TMG está enviando redirecciones que tienen la etiqueta de AuthResend en respuesta a solicitudes POST. Por ejemplo, una redirección para una solicitud para el http://domain/test.asp de dirección URL sería similar a lo siguiente: http://domain/test.asp&authResendNNN

Los registros de proxy web TMG no mostrarán la etiqueta AuthResend porque se quita la etiqueta de la dirección URL antes de que la dirección URL se envía al servidor web y, por tanto, también no ha iniciado.

Este comportamiento también pueden aparecer para las solicitudes GET. Sin embargo, el comportamiento no provocará un problema, porque se volverá a la redirección como una solicitud GET, y esto no produce el mismo problema.

Solución

Existe una configuración interna que se puede establecer en una regla de publicación para indicar a TMG automáticamente volver a autenticar las solicitudes GET no. Esto evita las solicitudes de 401 inesperadas desde el servidor web.

De forma predeterminada, TMG Service Pack 2 de esta configuración está habilitada en las reglas que tienen la autenticación basada en formularios en la escucha de web y que utilizar la delegación de NTLM de publicación en web.

Para resolver este problema, instale el service pack que se describe en el siguiente artículo de Microsoft Knowledge Base:
2555840 Descripción del Service Pack 2 de Microsoft Forefront Threat Management Gateway 2010

Estado

Microsoft ha confirmado que se trata de un problema en los productos de Microsoft enumerados en la sección "Se refiere a:".

Más información

Para evitar este problema en ISA 2006 o en TMG sin Service Pack 2, puede utilizar la siguiente secuencia de comandos para establecer el parámetro interno de una regla de publicación web especificada. De forma predeterminada, esta es la opción que habilita el Service Pack 2 de TMG.

Para utilizar la secuencia de comandos, copie en el Bloc de notas y después guardarlo como un archivo .vbs en uno de los miembros de la matriz.

Modifique la línea siguiente en la secuencia de comandos, reemplazar ReplaceRuleNameHere con el nombre de la regla de publicación de web pertinentes:
argRuleName = "ReplaceRuleNameHere"
A continuación, ejecute el siguiente script en uno de los miembros de la matriz en una 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

Referencias

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 2596444 - Última revisión: lunes, 17 de octubre de 2011 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft Forefront Threat Management Gateway 2010 Enterprise
  • Microsoft Forefront Threat Management Gateway 2010 Standard
  • Microsoft Forefront Threat Management Gateway 2010 Service Pack 1
Palabras clave: 
kbfix kbbug kbexpertiseinter kbsurveynew kbmt KB2596444 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 2596444

Enviar comentarios

 

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