Проблема
Рассмотрим следующий сценарий.
- Администратор настроил проверку подлинности на основе форм (FBA) в Microsoft Forefront Threat Management Gateway (TMG) 2010.
- Атрибут различающегося имени (DN) для пользователя содержит косую черту (/) и специальный символ, определенный протоколом LDAP Active Directory.
- Пользователь пытается изменить свой пароль.
В этом сценарии изменение пароля не выполняется, и пользователь получает следующее общее сообщение об ошибке:
Примечание
Либо имя пользователя, либо старый пароль недопустимы, либо новый пароль не соответствует минимальным требованиям к сложности. Повторите попытку.
Кроме того, трассировка в TMG 2010 может указывать на сбой ADsOpenObject с 0x80005000 (E_ADS_BAD_PATHNAME) или 0x80072032 (ERROR_DS_INVALID_DN_SYNTAX), так как специальный символ в запросе LDAP экранирован.
Причина
Эта проблема возникает для любой учетной записи пользователя Active Directory, для которой атрибут DN содержит специальный символ Active Directory и символ косой черты.
Решение
Чтобы устранить эту проблему, установите накопительный пакет обновления 4 для Forefront Threat Management Gateway 2010 с пакетом обновления 2 (SP2).
После применения этого обновления можно настроить шлюз управления угрозами для использования атрибута objectGUID вместо атрибута Различающееся имя в пути LDAP Active Directory для устранения проблемы, описанной в этой статье. Чтобы включить эту функцию, выполните следующие действия.
Скопируйте и вставьте следующий скрипт в Блокнот, а затем сохраните его с помощью имени файла 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Запустите скрипт на одном из элементов массива шлюза управления угрозами. Изменение скрипта вступит в силу при синхронизации конфигурации шлюза управления угрозами. Для того чтобы изменения вступили в силу, перезапуск службы брандмауэра не требуется.
Чтобы отменить изменения изменения и вернуться к исходному поведению, найдите в скрипте следующую строку:
Const SE_VPS_VALUE = 1
Измените строку следующим образом:
Const SE_VPS_VALUE = 0
Сохраните скрипт, а затем запустите его на одном из элементов массива.
Временное решение
Чтобы обойти эту проблему, удалите косую черту или специальный символ Active Directory из атрибута DN пользователя.
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Дополнительные сведения
Экранированные специальные символы в атрибутах Active Directory:
- Запятая (,)
- Обратная косая черта (\)
- Знак номера (#)
- Знак "плюс" (+)
- Знак меньше (<)
- Знак больше ( )
- Точка с запятой (;)
- Кавычка (")
- Знак равенства (=)
- Начальные или конечные пробелы
Пример атрибутов учетной записи пользователя:
sAMAccountName: JeffSmith
displayName: Смит, Джефф / TMG
различающееся Имя: CN=Smith\, Jeff / TMG,OU=Support,DC=Fabrikam,DC=com
Заметки
- Escape-символ обратной косой черты (\) автоматически добавляется в DN.
- Атрибут различающееся имя для этой учетной записи пользователя содержит как специальные символы Active Directory (,), так и косую черту (/).
Ссылки
Дополнительные сведения см. в следующих статьях:
См. терминологию , используемую корпорацией Майкрософт для описания обновлений программного обеспечения.