Синтаксис LDAP / ActiveDirectory BindDN

8

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

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

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

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

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

А) что я не до конца понимаю нюансы BindND и связанный с ним синтаксис

или

Б) что прибор не может правильно проверить входные данные и ошибочно идентифицирует тест как успешный

парень
источник

Ответы:

14

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 должны были умереть давным-давно, но это напыщенная речь для другого потока.

Райан Болджер
источник
Спасибо! Этот комментарий о 3 формах DN - часть головоломки, которую я пропустил.
Марк Э. Хаазе
Не знал, что вы можете использовать UPN в качестве DN LDAP. Сладкий.
Джонатон Рейнхарт
1
Я поражен тем, сколько поставщиков приложений, которые поддерживают только внешнюю аутентификацию на AD (через LDAP), тоже не знают этого.
Райан Болджер
2

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

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

Doug
источник
1

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 
Грег Аскью
источник