Simptome
Să luăm în considerare următorul scenariu:
-
Un administrator a bazată pe formulare autentificare (FBA) creat în Microsoft Forefront Threat Management Gateway (TMG) 2010.
-
Atributul nume distinct (DN) pentru un utilizator conține o bară oblică (/) și un caracter speciale definite de Active Directory Lightweight Directory Access Protocol LDAP.
-
Utilizatorul încearcă să modificați parola său.
În acest scenariu, modificarea parolei nu reușește și utilizatorul primește următorul mesaj de eroare generice:
Numele de utilizator sau parola veche nu este valid sau parola nouă nu îndeplinește cerințele minime complexitatea. Încercați din nou.
În plus, urmărirea în TMG 2010 poate indica faptul că ADsOpenObject nu a reușit cu 0x80005000 (E_ADS_BAD_PATHNAME) sau 0x80072032 (ERROR_DS_INVALID_DN_SYNTAX), deoarece caractere speciale în solicitarea de LDAP scăpat.
Cauză
Această problemă apare pentru orice cont de utilizator Active Directory pentru care atributul DN conține un caracter special Active Directory și un caracter bară oblică.
Rezolvare
Pentru a rezolva această problemă, instalați setul 4 pentru Forefront Threat Management Gateway 2010 Service Pack 2 după aplicarea acestei actualizări, aveți posibilitatea să configurați Threat Management Gateway pentru a utiliza atributul objectGUID în loc de DistinguishedName atribut în Active Directory LDAP cale pentru a rezolva problema descrisă în acest articol. Pentru a activa această funcționalitate, urmați acești pași:
-
Copiați și lipiți următorul script în Notepad și salvați-l utilizând numele de fișier "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
-
Executați scriptul pe unul dintre membrii matrice Threat Management Gateway. Modificarea script vor avea efect atunci când se sincronizează configurația Threat Management Gateway. Fără repornire de serviciul paravan de protecție este necesar pentru ca modificarea să aibă efect.
-
Pentru a reveni la modificarea și a reveni la comportamentul original, identificați următoarea linie într-un script:
Const SE_VPS_VALUE = 1
-
Modificați această linie, după cum urmează:
Const SE_VPS_VALUE = 0
-
Salvați scriptul, și apoi executa scriptul pe unul dintre membrii matrice.
Soluție de evitare
Pentru a rezolva această problemă, eliminați bară oblică sau Active Directory caractere speciale de atributul DN utilizatorului.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Mai multe informații
Evadat caractere speciale în Active Directory atributele sunt după cum urmează:
-
Virgulă ()
-
Bară oblică inversă (\)
-
Semn de număr (#)
-
Semnul plus (+)
-
Mai mică decât semnul (<>
-
Mai mare decât sign)
-
Punct și virgulă (;)
-
Ghilimele (")
-
Semn egal (=)
-
Conduce sau spațiile de spații
Exemplu de atribute de cont de utilizator:
sAMAccountName: JeffSmithdisplayName: Georgescu, Daniel / TMGdistinguishedName: CN = Smith\, Daniel / TMG, OU = suport, DC = Fabrikam, DC = comNote
-
Caracterul bară oblică inversă escape (\) se adaugă automat la DN.
-
Atributul distinguishedName pentru acest cont de utilizator conţine Active Directory caracter special virgulă (,) şi bară oblică (/).
Referințe
Pentru mai multe informații, consultați următoarele:
Consultați terminologia Microsoft utilizează pentru a descrie actualizările de software.