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

Возвращает первое совпадение только с бэкэндом OpenLDAP slapd-meta?

У меня OpenLDAP настроен для работы в качестве метакаталога перед тремя разными серверами:

database meta
uri "ldap://ldap1.example.com/ou=domain1,o=combined"
uri "ldap://ldap2.example.com/ou=domain2,o=combined"
uri "ldap://ldap3.example.com/ou=domain3,o=combined"
# ...and some suffixmap rules...

Я не контролирую какие-либо внутренние серверы каталогов.

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

Можно ли наложить какой-то порядок на бэкэндах, чтобы (а) OpenLDAP всегда запрашивал бэкэнды в одном и том же порядке и (б) возвращал один результат (и прекращал поиск) после нахождения совпадения? Насколько я могу судить, бэкенды запрашиваются либо параллельно, либо в порядке, не связанном с порядком, в котором они перечислены в slapd.conf.

Из обсуждение в списке технической рассылки OpenLDAP:

  • В meta база данных выполняет поиск на указанных внутренних серверах параллельно, поэтому порядок возвращаемых результатов не является детерминированным ... но вы получаете свои результаты быстрее, поскольку медленный сервер не задерживает значения от других серверных модулей.

  • Несколько баз данных с использованием ldap бэкэнд будет искать последовательно. Это дает вам результаты в предсказуемом порядке, но оказывает заметное влияние на время, необходимое для выполнения запроса.

Похоже, что нет хорошего способа обеспечить уникальность результатов для нескольких бэкэндов, кроме установки sizelimit 1 и используя последовательную конфигурацию.