FEHLERBEHEBUNG: Benutzer werden zur Authentifizierung aufgefordert, wenn die ReturnAuthRequiredIfAuthUserDenied-Eigenschaft auf True festgelegt ist und Benutzern der Zugriff durch eine Regel "Alle Benutzer" in einer Forefront Threat Management Gateway 2010-Umgebung verweigert wird.

Wenn Microsoft Forefront Threat Management Gateway (TMG) 2010 eine Anforderung für einen authentifizierten Benutzer ablehnt, erhält der Benutzer die Fehlermeldung "502", um den Benutzer darüber zu informieren, dass ihm der Zugriff verweigert wurde. Darüber hinaus wird der Benutzer nicht aufgefordert, alternative Anmeldeinformationen anzugeben.

Die ReturnAuthRequiredIfAuthUserDenied-Eigenschaft kann so festgelegt werden, dass der Benutzer die Meldung "407 Proxyauthentifizierung erforderlich" erhält, wenn ein authentifizierter Benutzer von der TMG-Richtlinie abgelehnt wird. Dadurch kann der Benutzer alternative Anmeldeinformationen angeben.

Weitere Informationen zur ReturnAuthRequiredIfAuthUserDenied-Eigenschaft finden Sie auf der folgenden Msdn-Website (Microsoft Developer Network):

ReturnAuthRequiredIfAuthUserDenied-Eigenschaft der IFPCWebListenerProperties-Schnittstelle Wenn ein Administrator eine Ablehnungsregel erstellt, die für alle Benutzer gilt, und die ReturnAuthRequiredIfAuthUserDenied-Eigenschaft auf True festlegt, erhält ein Benutzer, der von einer solchen Regel abgelehnt wird, die Meldung "407 Proxyauthentifizierung erforderlich". Dieses Verhalten tritt auf, obwohl alle Benutzer durch diese Regel verweigert würden. Dieses Verhalten ist möglicherweise nicht erwünscht und kann zu unnötigen Authentifizierungsaufforderungen führen.

Symptome

Dieses Verhalten ist beabsichtigt. Dieses Verhalten ist jedoch möglicherweise nicht das gewünschte Verhalten, da eine Ablehnungsregel alle Benutzer blockiert. Darüber hinaus wird dieses Problem durch die Aufforderung zur Eingabe alternativer Anmeldeinformationen nicht behoben.

Ursache

Installieren Sie zum Beheben dieses Problems das Softwareupdate, das im folgenden Microsoft Knowledge Base-Artikel beschrieben wird:

2517957 Softwareupdate 1 Rollup 4 für Forefront Threat Management Gateway (TMG) 2010 Service Pack 1Aus, nachdem Sie dieses Softwareupdate angewendet haben, führen Sie das im Abschnitt "Weitere Informationen" bereitgestellte Skript für eines der TMG-Arraymember aus, um die SkipReauthWhenNonDefaultRule-Eigenschaft auf True festzulegen.

Lösung

Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.

Status

Mit diesem Softwareupdate wird die neue Eigenschaft SkipReauthWhenNonDefaultRule eingeführt. Diese Eigenschaft stellt ein neues Verhalten bereit. Betrachten Sie beispielsweise die folgenden Szenarien.

Szenario 1

Ein Administrator erstellt eine Regel Alle Benutzer, die einem authentifizierten Benutzer den Zugriff verweigert, und die ReturnAuthRequiredIfAuthUserDenied-Eigenschaft ist auf True festgelegt. Wenn in diesem Szenario die SkipReauthWhenNonDefaultRule-Eigenschaft auf True festgelegt ist, erhält der Benutzer die Fehlermeldung "502" und wird nicht aufgefordert, alternative Anmeldeinformationen anzugeben.

Szenario 2

Die Standardregel wird angewendet, und die Regel verweigert die Anforderung. Außerdem ist die ReturnAuthRequiredIfAuthUserDenied-Eigenschaft auf True festgelegt. In diesem Szenario erhält der Benutzer wie erwartet die Meldung "407 Proxyauthentifizierung erforderlich". Nachdem Sie dieses Softwareupdate angewendet haben, führen Sie das folgende Skript für eines der TMG-Arraymember aus, um die SkipReauthWhenNonDefaultRule-Eigenschaft auf True festzulegen. Die Standardeinstellung für die SkipReauthWhenNonDefaultRule-Eigenschaft ist False.

Hinweis Dieses Skript ändert das Verhalten nur, wenn die ReturnAuthRequiredIfAuthUserDenied-Eigenschaft ebenfalls auf True festgelegt ist.

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

Hinweis Um das Standardverhalten zu rückgängig machen, führen Sie die folgenden Schritte aus:

  1. Suchen Sie die folgende Zeile im Skript:

    Const SE_VPS_VALUE = true
    
  2. Ändern Sie die Zeile im Skript wie folgt:

    Const SE_VPS_VALUE = false
    
  3. Speichern Sie das Skript, und führen Sie dieses Skript auf einem der TMG-Array-Member erneut aus.

Weitere Informationen

Weitere Informationen zur Terminologie für Softwareupdates von Microsoft finden Sie im folgenden Artikel der Microsoft Knowledge Base:

824684 Beschreibung der Standardterminologie, die zum Beschreiben von Microsoft-Softwareupdates verwendet wird

Referenzmaterial