CORRECTIF : Les requêtes POST vers un serveur web qui exécute Forefront Threat Management Gateway 2010 peuvent échouer.

Traductions disponibles Traductions disponibles
Numéro d'article: 2596444 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Considérez le scénario suivant :
  • Vous disposez d'un serveur qui exécute Microsoft Forefront Threat Management Gateway (TMG) 2010.
  • Le serveur TMG est configuré comme un serveur web.
  • Port d'écoute web TMG utilise l'authentification par formulaires avec délégation NTLM sur le serveur web publié.
  • Il existe des demandes POST pour le serveur web TMG.
Dans ce scénario, les requêtes POST peuvent échouer. Cela peut entraîner divers problèmes d'applications qui dépendent du type de demandes POST qui ont échoué.

Cause

Ce problème se produit si les conditions suivantes sont remplies :
  • L'authentification par formulaire TMG est utilisée.
  • Délégation NTLM est configurée dans la règle de publication de TMG pour déléguer l'authentification au serveur web publié.
  • ISA envoie une demande au serveur web sur une connexion déjà authentifiée.
  • Le serveur web répond avec un 401.
Lors de la délégation NTLM est utilisée, TMG authentifie une connexion au serveur web sur la première demande au serveur web sur cette connexion. L'authentification est ensuite rendue persistante sur la connexion afin que les demandes ultérieures ne doivent pas avoir de réauthentification.

Si une demande est envoyée au serveur web sur une connexion déjà authentifiée, le serveur web peut répondre avec une demande de 401 authentification inattendue. Ce problème peut se produire lorsque les demandes sont traitées par différents pools d'applications sur le serveur web, car IIS ne persiste pas d'authentification entre des pools d'applications.

Lorsque l'authentification basée sur les formulaires est utilisée, TMG gérera la demande 401 inattendue rediriger l'utilisateur vers la ressource initialement demandée et en ajoutant une balise de AuthResend à l'URL. Lorsque le client effectue la deuxième demande, TMG détermine que la demande doit être ré-authentification par la balise AuthResend et supprime ensuite la balise AuthResend avant que la demande est envoyée au serveur web.

Toutefois, une redirection n'inclut pas une méthode HTTP et le client va faire une demande GET après une redirection. Par conséquent, la demande POST et le corps de publication ne sont pas envoyées au serveur web.

Un outil tel que Strace, HTTPWatch ou Fiddler peut être utilisé sur le client pour déterminer si TMG envoie des redirections ont la balise AuthResend en réponse aux demandes POST. Par exemple, une redirection pour une demande pour la http://domain/test.asp URL ressemble à ce qui suit : http://domain/test.asp&authResendNNN

Les journaux du proxy web TMG n'indiquent pas la balise AuthResend car la balise est supprimée de l'URL avant l'URL est envoyée au serveur web et est donc également pas enregistré.

Ce problème peut également se produire pour les requêtes GET. Toutefois, le comportement n'entraîne pas un problème, car la redirection est renvoyée comme une demande GET, et cela n'entraîne pas le même problème.

Résolution

Il existe un paramètre interne qui peut être défini sur une règle de publication pour indiquer à TMG pour authentifier automatiquement les demandes non-GET. Cela évite les 401 demandes inattendues du serveur web.

Par défaut, dans le Service Pack 2 de TMG ce paramètre est activé sur les règles qui ont l'authentification basée sur les formulaires sur le port d'écoute web et qui utilise la délégation NTLM de publication web.

Pour résoudre ce problème, installez le service pack qui est décrite dans l'article suivant de la Base de connaissances Microsoft :
2555840 Description du Service Pack 2 pour Microsoft Forefront Threat Management Gateway 2010

Statut

Microsoft a confirmé qu'il s'agit d'un problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Pour contourner ce problème sur ISA 2006 ou TMG sans Service Pack 2, vous pouvez utiliser le script suivant pour définir le paramètre interne sur une règle de publication web spécifiée. Par défaut, c'est le paramètre qui permet à TMG Service Pack 2.

Pour utiliser le script, copiez dans le bloc-notes, puis enregistrez-le sous forme de fichier .vbs sur l'un des membres du groupe.

Modifiez la ligne suivante dans le script, remplacement ReplaceRuleNameHere avec le nom de la règle de publication web pertinentes :
argRuleName = "ReplaceRuleNameHere"
Ensuite, exécutez le script suivant sur l'un des membres du groupe dans un tableau :
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

Références

Pour plus d'informations sur la terminologie de mise à jour de logiciel, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
824684 de la Description de la terminologie standard utilisée pour décrire les mises à jour du logiciel Microsoft

Propriétés

Numéro d'article: 2596444 - Dernière mise à jour: lundi 17 octobre 2011 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Forefront Threat Management Gateway 2010 Enterprise
  • Microsoft Forefront Threat Management Gateway 2010 Standard
  • Microsoft Forefront Threat Management Gateway 2010 Service Pack 1
Mots-clés : 
kbfix kbbug kbexpertiseinter kbsurveynew kbmt KB2596444 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 2596444
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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