CORRECTIF : les utilisateurs sont invités à s’authentifier lorsque la propriété ReturnAuthRequiredIfAuthUserDenied a la valeur True et que les utilisateurs se voient refuser l’accès par une règle « Tous les utilisateurs » dans un environnement Forefront Threat Management Gateway 2010

Lorsque Microsoft Forefront Threat Management Gateway (TMG) 2010 refuse une demande pour un utilisateur authentifié, l’utilisateur reçoit un message d’erreur « 502 » pour informer l’utilisateur que l’accès lui est refusé. En outre, l’utilisateur n’est pas invité à fournir d’autres informations d’identification.

La propriété ReturnAuthRequiredIfAuthUserDenied peut être définie de sorte que lorsqu’un utilisateur authentifié est refusé par la stratégie TMG, l’utilisateur reçoit un message « 407 Proxy Authentication Required ». Cela permet à l’utilisateur de fournir d’autres informations d’identification.

Pour plus d’informations sur la propriété ReturnAuthRequiredIfAuthUserDenied , visitez le site web MSDN (Microsoft Developer Network) suivant :

ReturnAuthRequiredIfAuthUserDenied de l’interface IFPCWebListenerProperties Si un administrateur crée une règle de refus qui s’applique à tous les utilisateurs et définit la propriété ReturnAuthRequiredIfAuthUserDenied sur True, un utilisateur qui est refusé par une telle règle reçoit un message « 407 Proxy Authentication Required ». Ce comportement se produit même si tous les utilisateurs seraient refusés par cette règle. Ce comportement peut ne pas être souhaité et peut entraîner des invites d’authentification inutiles.

Symptômes

Ce comportement est normal. Toutefois, ce comportement peut ne pas être le comportement souhaité, car une règle de refus Tous les utilisateurs bloque tous les utilisateurs. En outre, les invites pour d’autres informations d’identification ne résolvent pas ce problème.

Cause

Pour résoudre ce problème, installez la mise à jour logicielle décrite dans l’article suivant de la Base de connaissances Microsoft :

2517957 Correctif cumulatif 1 de La mise à jour logicielle 1 pour Forefront Threat Management Gateway (TMG) 2010 Service Pack 1 Après avoir appliqué cette mise à jour logicielle, exécutez le script fourni dans la section « Plus d’informations » sur l’un des membres du tableau TMG pour définir la propriété SkipReauthWhenNonDefaultRule surTrue.

Résolution

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

État

Cette mise à jour logicielle introduit une nouvelle propriété, SkipReauthWhenNonDefaultRule. Cette propriété fournit un nouveau comportement. Par exemple, considérez les scénarios suivants.

Scénario 1

Un administrateur crée une règle Tous les utilisateurs qui refuse l’accès à un utilisateur authentifié, et la propriété ReturnAuthRequiredIfAuthUserDenied est définie sur True. Dans ce scénario, si la propriété SkipReauthWhenNonDefaultRule a la valeur True, l’utilisateur reçoit un message d’erreur « 502 » et n’est pas invité à fournir d’autres informations d’identification.

Scénario 2

La règle par défaut est appliquée et la règle refuse la demande. En outre, la propriété ReturnAuthRequiredIfAuthUserDenied a la valeur True. Dans ce scénario, l’utilisateur reçoit le message « 407 Authentification proxy requise » comme prévu. Après avoir appliqué cette mise à jour logicielle, exécutez le script suivant sur l’un des membres du tableau TMG pour définir la propriété SkipReauthWhenNonDefaultRule surTrue. Le paramètre par défaut de la propriété SkipReauthWhenNonDefaultRule est False.

Remarque Ce script ne modifie le comportement que lorsque la propriété ReturnAuthRequiredIfAuthUserDenied a également la valeur True.

Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"
Const SE_VPS_NAME = "SkipReauthWhenNonDefaultRule"
Const SE_VPS_VALUE = true

Sub SetValue()

' Create the root obect.
Dim root ' The FPCLib.FPC root object
Set root = CreateObject("FPC.Root")

'Declare the other objects needed.
Dim array ' An FPCArray object
Dim VendorSets ' An FPCVendorParametersSets collection
Dim VendorSet ' An FPCVendorParametersSet object

' Get references to the array object
' and the network rules collection.
Set array = root.GetContainingArray
Set VendorSets = array.VendorParametersSets

On Error Resume Next
Set VendorSet = VendorSets.Item( SE_VPS_GUID )

If Err.Number <> 0 Then
Err.Clear

' Add the item
Set VendorSet = VendorSets.Add( SE_VPS_GUID )
CheckError
WScript.Echo "New VendorSet added... " & VendorSet.Name

Else
WScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)
End If

if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then

Err.Clear
VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE

If Err.Number <> 0 Then
CheckError
Else
VendorSets.Save false, true
CheckError

If Err.Number = 0 Then
WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"
End If
End If
Else
WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"
End If

End Sub

Sub CheckError()

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

End Sub

SetValue

Remarque Pour revenir au comportement par défaut, procédez comme suit :

  1. Recherchez la ligne suivante dans le script :

    Const SE_VPS_VALUE = true
    
  2. Remplacez la ligne dans le script par ce qui suit :

    Const SE_VPS_VALUE = false
    
  3. Enregistrez le script et réexécutez ce script sur l’un des membres du tableau TMG.

Informations supplémentaires

Pour plus d’informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Références