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

ldapsearch ничего не выведет без -D rootdn

Моя установка и настройка slapd 2.4.21 выполняется на Ubuntu 10.04 в соответствии с официальным документом. Теперь ldapsearch -x ничего мне не даст, но ldapsearch -x -Drootdn -w rootpw выведет все. я должен

olcAccess: to * by dn = "cn = Manager, dc = a, dc = b" запись через * чтение

в конфигурации бэкэнда. В чем дело? "getent passwd testuser" ничего не выводит, должно быть из-за этого. Заранее спасибо.

Вы должны выполнить аутентификацию, а olcAccess предназначен для настройки авторизации. Проще говоря, slapd по-прежнему требует от вас подтверждения того, кто вы есть (аутентификации, что на сленге LDAP по какой-то странной причине называется "привязкой"), прежде чем вы сможете читать данные.

Это нормально. Если вы не хотите указывать -D и -w каждый раз, используйте соответствующие параметры bind * в ldap.conf, который находится в разных местах в разных юнионах. Google говорит, что в Ubuntu 10.04 это

/etc/ldap/ldap.conf

Попробуйте заглянуть в лог-файл slapd, в большинстве случаев ответ на "wtf происходит?" здесь. Для чтения данных анонимный пользователь также должен иметь возможность читать корневую DSE и "cn = Subschema". Соответствующие записи выглядят так:

access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read

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

P.S .: rootdn всегда имеет доступ на запись к бэкэнду, поэтому вам не нужно указывать его в ACL

-Drootdn -w rootpw

-D / -w используется для привязки dn с последующим поиском в дереве LDAP аутентифицированного пользователя. Убедитесь, что для вашего OpenLDAP разрешена анонимная привязка.

Если вы используете slapd.conf для настройки сервера, вы можете использовать этот параметр в slapd.conf:

allow bind_anon_cred

И ниже параметр используется для отключения анонимной привязки:

disallow    bind_anon

Кроме того, настройка ниже вообще не работает:

olcAccess: to * by dn="cn=Manager,dc=a,dc=b" write by * read

Потому что root dn всегда имеет ВСЕ привилегии, включая чтение и запись.