Как правильно настроить подчинение openldap?

Я не могу заставить эту конфигурацию работать должным образом:

# Database LDAP for ldap1
database        ldap
suffix          "ou=ldap1,dc=local"
uri ldap://ldap1
idassert-bind bindmethod=simple
   binddn="cn=admin,dc=ext1"
   credentials="secret3"
   mode=none
   flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=manager,dc=local"
overlay rwm
rwm-suffixmassage   "ou=ldap1,dc=local" "dc=ext1"
subordinate

# Database LDAP for ldap2
database        ldap
suffix          "ou=ldap2,dc=local"
uri  ldap://ldap2
idassert-bind bindmethod=simple
  binddn="cn=admin,dc=ext2"
  credentials="secret2"
  mode=none
  flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=manager,dc=local"
overlay rwm
rwm-suffixmassage   "ou=ldap2,dc=local" "dc=ext2"
subordinate

# Database LDAP for local Manager authentication
database ldap
readonly                yes
suffix "dc=local"
rootdn "cn=manager,dc=local"
rootpw secret1

Зная, что в ldap2 есть запись для" cn = test ", я только желая, чтобы запрос к главному серверу LDAP (с базой: "dc = local) работал, в основном, я хочу, чтобы эта работа работала:

 ldapsearch -x -b "dc=local" -D "cn=manager,dc=local" cn=test -H ldap://localhost -w secret1

На самом деле этот запрос остановится ...

Конечно, запрос подчиненный с базой «ou = ldap2, dc = local» работает безупречно и возвращает правильную запись. Этот запрос работает:

 ldapsearch -x -b "ou=ldap2,dc=local" -D "cn=manager,dc=local" cn=test -H ldap://localhost -w secret1

В чем моя ошибка? Я хотел бы склеить оба сервера для эффективного поиска между серверами ldap1 и ldap2 с одним запросом на главном сервере.

1
задан 2 August 2016 в 13:48
1 ответ

Чего не хватало для работы поиска поддерева с dc = local base, так это фактического корневого объекта в базе данных для dc = local .

Поэтому мне пришлось переключиться на mdb для основной базы данных при достаточном количестве dc = local , чтобы иметь фиктивную базу данных, в которую я мог бы фактически добавлять новые объекты.

Мне также пришлось конечно, удалите оператор readonly yes .

Затем я подготовил файл base.ldif и добавил его в базовую базу данных:

cat <'EOF' > /tmp/base.ldif
dn: dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: Local
dc: local
EOF
ldapadd -h ldap://MYMASTERHOST -D cn=manager,dc=local -w secret1 -f /tmp/base.ldif

Затем оба ldapsearch на базе dc = local и на поддереве ou = ldap2, dc = local , где работает как положено.

Я не забыл вернуть ] readonly yes , так как мне не нужно ничего хранить в базе данных master.

1
ответ дан 3 December 2019 в 23:43

Теги

Похожие вопросы