症状
请考虑以下情况:
-
管理员可以基于表单的身份验证 (FBA) 设置在 Microsoft 最前沿威胁管理网关 (TMG) 2010年。
-
用户的可分辨的名称 (DN) 属性包含正斜杠 (/) 和活动目录轻量级目录访问协议 LDAP 定义的特殊字符。
-
用户尝试更改其密码。
在此方案中,密码更改不成功,并且用户会收到下面的一般性错误信息:
用户名称或旧密码无效,或者新密码不符合最低复杂性要求。请再试一次。
此外,在 TMG 2010 跟踪可能表明ADsOpenObject失败与 0x80005000 (E_ADS_BAD_PATHNAME) 或 0x80072032 (ERROR_DS_INVALID_DN_SYNTAX),因为 LDAP 请求中的特殊字符转义。
原因
活动目录的用户帐户的 DN 属性包含 Active Directory 特殊字符和一个正斜杠字符对出现此问题。
解决方案
要解决此问题,为前沿威胁管理网关 2010 Service Pack 2.安装累积 4 ,应用此更新之后,您可以配置威胁管理网关用于objectGUID特性而不是可分辨名称中要解决的问题,本文介绍的活动目录 LDAP 路径的属性。若要启用此功能,请执行以下步骤:
-
复制并将以下脚本粘贴到记事本中,然后使用"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
-
一个威胁管理网关阵列成员上运行该脚本。威胁管理网关配置同步时,此脚本更改将生效。防火墙服务重新启动时需要更改才会生效。
-
若要撤消更改,并返回到原来的行为,请在脚本中找到下面一行:
Const SE_VPS_VALUE = 1
-
更改的行,如下所示:
Const SE_VPS_VALUE = 0
-
保存该脚本,然后在一个阵列成员上运行该脚本。
替代方法
若要变通解决此问题,请从用户的 DN 属性中删除正斜杠或 Active Directory 中的特殊字符。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
更多信息
活动目录属性中的转义特殊字符如下所示:
-
逗号 (,)
-
反斜杠 (\)
-
数字符号 (#)
-
加号 (+)
-
小于号 (<)
-
大于号 ()
-
分号 (;)
-
引号 (")
-
等号 (=)
-
前导或尾随空格
用户帐户属性的示例:
sAMAccountName: JeffSmithdisplayName: 史密斯,Jeff / TMGdistinguishedName: CN = Smith\,Jeff / TMG,OU = 支持特区 Fabrikam,DC = = com注意
-
反斜杠转义字符 (\) 会自动添加的 dn。
-
此用户帐户的可分辨名称属性包含 Active Directory 特殊字符逗号 (,) 和正斜杠 (/)。
参考
有关详细信息,请参阅以下文章:
请参见用于描述软件更新的术语Microsoft。