OPRAVA: Změna hesla se nezdařila, pokud atribut DN uživatele obsahuje lomítko a speciální znak definovaný službou služba Active Directory LDAP v bráně Forefront Threat Management Gateway 2010

Platí pro
Forefront Threat Management Gateway 2010 Enterprise Forefront Threat Management Gateway 2010 Standard

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:

  1. 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
    
    SetValue
    
  2. Spusť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.

  3. 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

  4. Změňte tento řádek takto:

    SE_VPS_VALUE = 0

  5. 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:

Podívejte se na terminologii používanou společností Microsoft k popisu aktualizací softwaru.