Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Ein Administrator hat die formularbasierte Authentifizierung (FBA) in Microsoft Forefront Threat Management Gateway (TMG) 2010 einrichten.
-
Das Attribut distinguished Name (DN) für einen Benutzer enthält einen Schrägstrich (/) und ein Sonderzeichen Active Directory Lightweight Directory Access Protocol LDAP definiert.
-
Der Benutzer versucht, sein Kennwort ändern.
In diesem Szenario die Änderung des Kennworts nicht erfolgreich ist und der Benutzer erhält die folgende allgemeine Fehlermeldung angezeigt:
Der Benutzername oder das Kennwort ist ungültig, oder das neue Kennwort erfüllt nicht die Mindestanforderungen an die Komplexität Vorschriften. Bitte versuchen Sie es erneut.
Darüber hinaus kann Tracing TMG 2010 laut ADsOpenObject 0x80005000 (E_ADS_BAD_PATHNAME) oder 0x80072032 (ERROR_DS_INVALID_DN_SYNTAX) ist fehlgeschlagen, da das Sonderzeichen in der LDAP-Anforderung mit Escapezeichen versehen.
Ursache
Dieses Problem tritt bei allen Active Directory-Benutzerkonten für die DN-Attribut ein Sonderzeichen bei Active Directory und einen Schrägstrich enthält.
Lösung
Dieses Problem beheben, Updaterollup 4 für Forefront Threat Management Gateway 2010 Service Pack 2 installieren, nachdem Sie dieses Update anwenden, können Sie Threat Management Gateway ObjectGUID -Attribut anstelle der verwenden DistinguishedName Attribut in Active Directory-LDAP-Pfad zur Behebung des Problems, das in diesem Artikel beschrieben wird. Um diese Funktion zu aktivieren, gehen Sie folgendermaßen vor:
-
Kopieren und fügen Sie das folgende Skript in Editor, und speichern unter Dateinamen "EnableKB2888619.vbs":
set curArray = CreateObject("FPC.Root").GetContainingArray()Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"Const SE_VPS_NAME = "UseObjectGUIDInLDAPADsPath"Const SE_VPS_VALUE = 1Sub SetValue()' Create the root obect.Dim root ' The FPCLib.FPC root objectSet root = CreateObject("FPC.Root")'Declare the other objects needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Obtain references to the array object' and the network rules collection.Set array = curArray Set VendorSets = array.VendorParametersSetsOn Error Resume NextSet VendorSet = VendorSets.Item( SE_VPS_GUID )If Err.Number <> 0 ThenErr.Clear' Add the itemSet VendorSet = VendorSets.Add( SE_VPS_GUID )CheckErrorWScript.Echo "New VendorSet added... " & VendorSet.NameElseWScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)End IfIf VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.ClearVendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckErrorElseVendorSets.Save false, trueCheckErrorIf Err.Number = 0 ThenWScript.Echo "Done with " & SE_VPS_NAME & ", saved!"End IfEnd IfElseWScript.Echo "Done with " & SE_VPS_NAME & ", no change!"End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.DescriptionErr.ClearEnd IfEnd SubSetValue
-
Führen Sie das Skript auf den Arraymitgliedern Threat Management Gateway. Das Skript wird Änderung Threat Management Gateway-Konfiguration synchronisiert. Keine Firewall Service Neustart ist erforderlich, damit die Änderung wirksam wird.
-
Um die Änderung rückgängig machen und zum ursprünglichen Verhalten zurückzukehren, suchen Sie die folgende Zeile im Skript:
Const SE_VPS_VALUE = 1
-
Ändern Sie diese Zeile wie folgt:
Const SE_VPS_VALUE = 0
-
Speichern Sie das Skript, und führen Sie das Skript auf den Arraymitgliedern.
Problemumgehung
Um dieses Problem zu umgehen, das DN-Attribut des Benutzers entfernen Sie Schrägstrich oder Active Directory-Sonderzeichen.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Weitere Informationen
Spezielle Escapezeichen in Active Directory-Attribute lauten wie folgt:
-
Komma ()
-
Umgekehrter Schrägstrich (\)
-
Nummernzeichen (#)
-
Pluszeichen (+)
-
Kleiner als-Zeichen (<)
-
Größer als-Zeichen)
-
Semikolon (;)
-
Anführungszeichen (")
-
Gleichheitszeichen (=)
-
Führende oder nachfolgende Leerzeichen
Beispiel für Attribute:
sAMAccountName: JeffSmithdisplayName: Schneider, Detlef / TMGdistinguishedName: CN = Smith\, Jeff / TMG, OU = Support, DC = Fabrikam, DC = comHinweise
-
Der DN wird automatisch das Escapezeichen (\) hinzugefügt.
-
Das Attribut DistinguishedName für dieses Benutzerkonto enthält Active Directory Sonderzeichen ein Komma (,) und den Schrägstrich (/).
Informationsquellen
Weitere Informationen finden Sie unter:
Anzeigen Sie die Terminologie verwendet Produktupdates