Я пытаюсь настроить свой первый сервер LDAP. Я не могу заставить клиенты аутентифицировать использование его даже при том, что все, кажется, работает. я подозреваю, что ACLs мог бы быть проблемой, так как я не вижу, что ACLs использует команду, данную официальным руководством человечности:
ldapsearch -xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase=hdb olcAccess
я вижу, что они используют эту команду хотя:
sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase={1}hdb)' olcAccess
Вторая команда показывает, что первая запись в ACL использует dc=nodomain
:
dn: olcDatabase={1}hdb,cn=config
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=nodomain" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by self write by dn="cn=admin,dc=nodomain" write by * read
Действительно ли это - проблема? как я фиксирую его? я не могу найти способ отредактировать ACLs, полностью не изменяя использование установки dpkg
.
Если у вас тестовая система без реального имени хоста (например, ldap.example.org
) и вы называете её просто ldap
, то конфигурация OpenLDAP по умолчанию в Debian(?)/Ubuntu (которую, я полагаю, вы используете) примет LDAP-дерево с именем dc=nodomain
и создаст соответствующие ACL-правила. На самом деле, ваш лучший подход - это установить полное FQDN и позволить dpkg --refigure slapd
сделать это. Это уничтожит все, но в итоге вы получите действительное LDAP-дерево и пользователя-администратора типа cn=admin,dc=example,dc=org
.