Назад | Перейти на главную страницу

Синтаксис DN привязки LDAP / Active Directory

Я устраняю проблемы с аппаратным брандмауэром на базе Linux для клиента. Этот аппаратный брандмауэр подключается к ActiveDirectory для проверки подлинности единого входа.

ActiveDirectory - это просто извращенная версия LDAP, насколько мне известно, и использует тот же синтаксис BindDN - поправьте меня, если я ошибаюсь.

Клиент настроил это как свой BindDN - фактические строки были заменены по соображениям конфиденциальности, но специальные символы и пробелы остались. "какое-то место \ фубар фубаз"

Мне это не кажется допустимым синтаксисом BindDN, и я работал с LDAP раньше, но когда мы нажимаем кнопку «Тест» для проверки этого BindDN, тест проходит успешно. Когда я изменяю только один из символов в BindDN и снова запускаю тест, тест не проходит.

Я пытаюсь понять, в чем проблема:

A) Что я не совсем понимаю нюансы BindND и связанного синтаксиса

или

Б) Что прибор не может должным образом проверять вводимые данные и ошибочно определяет тест как успешный.

LDAP - это просто протокол. И, как сказал Грег, его реализация Microsoft в Active Directory соответствует различным RFC, которые его определяют. (+1 ему)

Ответ Дуга частично верен, поскольку он приводит один пример действительного Bind DN. Но Active Directory, в частности, позволяет отправлять значение Bind DN также в других формах. На мой взгляд, лучшая форма для использования - это UserPrincipalName (UPN) который обычно имеет следующий вид, если он не был явно изменен.

  • <sAMAccountName> @ <полное доменное имя домена> (например, user1@contoso.com)

Преимущество этого по сравнению с обычным значением DN заключается в том, что учетную запись пользователя можно перемещать в AD, и приложение, использующее учетные данные, не должно обновлять свою конфигурацию.

Он также может быть в устаревшей форме NetBIOS, которая выглядит следующим образом и похоже на то, что использует ваш клиент.

  • <Имя NetBIOS домена> \ <sAMAccountName> (например, CONTOSO \ user1)

Это дает то же преимущество, что и значение UPN, но снова считается устаревшим. Имена NetBIOS должны были давно умереть, но это разглагольствование для другого треда.

DN привязки будет CN = username, CN = Users, DC = yourdomain, DC = com для пользователя, находящегося в контейнере Users.

Это может сработать, если вы просто введете имя пользователя, поскольку он, вероятно, ищет свойство sAMAccountname, если его Active Directory знает. Только не ставьте перед именем пользователя домен.

Реализация LDAP от Microsoft соответствует требованиям. В DN допустим любой символ. Если есть специальные символы, их нужно экранировать. Пробелы не нужно экранировать, если они не являются ведущими или конечными. Символ может быть экранирован с помощью обратной косой черты или шестнадцатеричного эквивалента \ nn.

Отличительные имена
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366101%28v=vs.85%29.aspx

space or # character at the beginning of a string    0x20
space character at the end of a string    0x20
,    comma    0x2C
+    plus sign    0x2B
"    double quote    0x22
\    backslash    0x5C
<    left angle bracket    0x3C
>    right angle bracket    0x3E
;    semicolon    0x3B
LF   line feed    0x0A
CR   carriage return    0x0D
=    equals sign    0x3D
/    forwards slash    0x2F