Příznaky
Vezměte v úvahu následující scénář:
- Správce má v bráně TMG (Forefront Threat Management Gateway) 2010 nastavené ověřování pomocí formulářů.
- Atribut rozlišujícího názvu (DN) uživatele obsahuje lomítko (/) a speciální znak definovaný protokolem LDAP (služba Active Directory Lightweight Directory Access Protocol).
- Uživatel se pokusí změnit své heslo.
V tomto scénáři není změna hesla úspěšná a uživateli se zobrazí následující obecná chybová zpráva:
Poznámka
Uživatelské jméno nebo staré heslo buď nejsou platné, nebo nové heslo nesplňuje minimální požadavky na složitost. Opakujte postup znovu.
Kromě toho může trasování v TMG 2010 naznačovat, že ADsOpenObject selhal s 0x80005000 (E_ADS_BAD_PATHNAME) nebo 0x80072032 (ERROR_DS_INVALID_DN_SYNTAX), protože speciální znak v požadavku LDAP unikl.
Příčina
K tomuto problému dochází u všech uživatelských účtů služby služba Active Directory, pro které atribut DN obsahuje speciální znak služby služba Active Directory a znak lomítka.
Řešení
Chcete-li tento problém vyřešit, nainstalujte kumulativní aktualizaci 4 pro Forefront Threat Management Gateway 2010 Service Pack 2.
Po instalaci této aktualizace můžete nakonfigurovat Bránu pro správu útoků tak, aby používala atribut objectGUID místo atributu DistinguishedName v cestě LDAP služby služba Active Directory a vyřešila tak problém popsaný v tomto článku. Chcete-li tuto funkci povolit, postupujte takto:
Zkopírujte a vložte následující skript do Poznámkového bloku a pak ho uložte pod názvem souboru 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 = 1 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 ' Obtain references to the array object ' and the network rules collection. Set array = curArray 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 SetValueSpusťte skript na jednom z členů pole brány pro správu hrozeb. Změna skriptu se projeví po synchronizaci konfigurace brány pro správu hrozeb. Změna se projeví bez nutnosti restartování služby firewall.
Chcete-li změnu vrátit zpět a vrátit se k původnímu chování, vyhledejte ve skriptu následující řádek:
SE_VPS_VALUE = 1
Změňte tento řádek takto:
SE_VPS_VALUE = 0
Uložte skript a potom spusťte skript na jednom z členů pole.
Alternativní řešení
Pokud chcete tento problém obejít, odeberte lomítko nebo speciální znak služba Active Directory z atributu DN uživatele.
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Další informace
Escapované speciální znaky v atributech služba Active Directory jsou následující:
- Čárka (,)
- Zpětné lomítko (\)
- Znak čísla (#)
- Znaménko plus (+)
- Symbol menší než (<)
- Symbol větší než ( )
- Středník (;)
- Uvozovky (")
- Rovnítko (=)
- Úvodní nebo koncové mezery
Příklad atributů uživatelského účtu:
sAMAccountName: JeffSmith
displayName: Smith, Jeff / TMG
distinguishedName: CN=Novák\, Jeff / TMG,OU=Support,DC=Fabrikam,DC=com
Poznámky
- Řídicí znak zpětného lomítka (\) se automaticky přidá do DN.
- Atribut distinguishedName tohoto uživatelského účtu obsahuje speciální znak služba Active Directory čárku (,) i lomítko (/).
Reference
Další informace najdete v těchto článcích:
- Rozlišující jména
- služba Active Directory: Filtry syntaxe LDAP
- Jak funguje vyhledávání ve službě služba Active Directory
Podívejte se na terminologii používanou společností Microsoft k popisu aktualizací softwaru.