Я пытаюсь настроить сервер OpenLDAP на ubuntu 9.10, который использует slapd версии 2.4.18.
После инициализации и заполнения новой базы данных hdb все вроде нормально, но я не могу заставить сервер вернуть корневой DSE. Бег
ldapsearch -x -W -D 'cn=manager,dc=example,dc=org' \
-b '' -s base '(objectclass=*)' +
просто возвращается
# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: +
#
# search result
search: 2
result: 0 Success
# numResponses: 1
Мои ACL базы данных hdb настроены следующим образом:
olcAccess: to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn.base="cn=manager,dc=example,dc=org" write
by * none
olcAccess: to dn.base=""
by * read
olcAccess: to *
by self write
by dn.base="cn=manager,dc=example,dc=org" write
by * read
По моему опыту, эта установка должна была вернуть действительный корневой DSE, поэтому, если кто-нибудь может дать мне ключ к пониманию того, что происходит ...
Это фактически зарегистрировано как ошибка # 427842 против Ubuntu 9.10 (кармический).
Чтобы исправить это, скопируйте следующее, чтобы исправить Root DSE.ldif:
dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcAccess
olcAccess: to dn.base="" by * read
olcAccess: to dn.base="cn=subschema" by * read
И выполнить
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f fixRootDSE.ldif
Это должно дать анонимный доступ к корневому DSE.
Разве корневой DSE не должен запрашиваться анонимно перед привязкой в качестве пользователя? Так что вам вообще не следует использовать -W или -D.
Мой сервер OpenLDAP отвечает на следующее:
$ ldapsearch -x -b '' -s base
с участием
# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: ALL
#
#
dn:
objectClass: top
objectClass: OpenLDAProotDSE
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Вы можете получить namingContexts
использование ldapsearch с использованием дополнительных атрибутов (+
флаг)
Тебе нужно
-s base
-b base
+
флагВ итоге,
$ ldapsearch -x -b '' -s base +
Как упоминалось в этом сообщении https://superuser.com/questions/740877/how-do-i-query-the-available-base-dns-in-an-openldap-server
Для тех, кто получит эту ошибку в Apache Directory Studio.
Если вы видите содержимое корневого DSE в других браузерах или ldapsearch, попробуйте создать новое соединение. Мне это помогло. Я думаю, что это ошибка Apache DS.
Для тех, кто получит эту ошибку в Apache Directory Studio. также помогла перезагрузка на студии.