Я использую ldapsearch
из инструментов OpenLDAP для поиска в нашей корпоративной Active Directory моего адреса электронной почты и номера телефона. Этот запрос является тестом, чтобы убедиться, что я могу пройти аутентификацию в домене, чтобы я мог настроить Linux-вики с аутентификацией NTLM. Моя теория состоит в том, что если я могу успешно запросить информацию в AD, то я на шаг ближе к тому, чтобы моя вики прошла аутентификацию в AD (у меня есть инструкции по настройке moin wiki в ActiveDirectory).
Проблема в том, что я не могу понять ldapsearch
запросить право. Я видел много руководств в сети, в которых указывается, что -D
должно быть что-то вроде -D "Americas\John_Marsharll"
; однако я продолжаю получать ldap_bind: Invalid credentials (49)
сообщения об ошибках, когда я использую Americas\John_Marshall
. Единственный раз, когда я получаю разумные результаты, - это когда я запрашиваю с параметрами ниже. Однако даже тогда я не могу понять, как получить электронную почту и номер телефона.
[John_Marshall@WN7-BG3YSM1 ~]$ ldapsearch -x -h 10.1.1.1 \
-b "cn=Users,dc=Americas" mail telephonenumber -D "cn=John_Marshall,dc=Americas"
# extended LDIF
#
# LDAPv3
# base <cn=Users,dc=Americas> with scope subtree
# filter: (objectclass=*)
# requesting: mail telephonenumber -D cn=John_Marshall,dc=Americas
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
[John_Marshall@WN7-BG3YSM1 ~]$
Может ли кто-нибудь подсказать мне, что я делаю не так с ldapsearch
запрос выше? Наш сервер AD ldap - 10.1.1.1, а домен AD - «Америка».
Используя информацию в комментариях и ответ Вольфганга, я смог сколотить решение, но это было не очень хорошо ...
ldp.exe
не был мне очень полезен; однако я начал обнюхивать серверы, на которых выполнялась аутентификация Outlook, и подставлял этот IP-адрес в свои запросы. Внезапно я получил правильную аутентификацию и выполнил запрос, используя ldapsearch -x -h <new_ip_addr> -D "Americas\John_Marshall" -W -b "dc=MyCompanyName,dc=com"
. Результаты этого запроса (который по сути представлял собой дамп необработанных данных большей части нашего корпоративного каталога LDAP) позволили мне уточнить -b
параметр (база поиска).
Что ж, есть несколько вещей, которые могут быть здесь неправильными:
Вы указываете простую аутентификацию, но не предоставляете пароль и не указываете ldapsearch собирать пароль из командной строки. У пользователя John_Marshall нет пароля? Если он у него есть, его нужно как-то предоставить. Либо укажите -w <passsword>
или -W
(чтобы ввести пароль при запросе).
Действительно ли пользователи binddn cn=John_Marshall,dc=Americas
? В нашей AD, как пример, мой собственный binddn будет "dn: CN=Wolfgang Schulze-Zachau,CN=Users,DC=aminocom,DC=com
", т.е. между именем и фамилией нет подчеркивания
Связка "cn=John_Marshall,dc=Americas
"возможно, но мне кажется немного коротким. Конечно, все это зависит от того, как настроен ваш AD. Можете ли вы убедиться, что это действительно DN для этого пользователя? Когда вы посмотрите на AD Users and Computers, какой полный список элементов дерева, ведущих к этому пользователю?
Если вы не укажете фильтр, вы получите список всех элементов, которые есть в базе поиска. Это может быть очень длинный список.
Правильное заклинание, которое сработало, было:
[John_Marshall@WN7-BG3YSM1 ~]$ ldapsearch -x -h <new_ip_addr> \
-D "Americas\John_Marshall" -W \
-b "cn=John_Marshall,ou=users,ou=austin,dc=amer,dc=MyComanyName,dc=com" \
mail telephonenumber ""