Я прочитал все доступная документация, то Освоение книги OpenLDAP, и как миллион сообщений в списке рассылки, но я не нашел способа сделать такой сценарий возможным. Я вижу несколько вариантов использования этого сценария, например, корпоративное приложение, синхронизирующее всех пользователей с основным LDAP организации, но сохраняющее собственные схемы и объекты, связанные с приложением, на своем сервере.
Так что, пожалуйста, не могли бы вы указать мне правильное направление или помочь мне вообще отказаться от такой возможности?
ИЗМЕНИТЬ 17 июня
Пример сценария:
Я пытаюсь получить все данные в o = area1, o = myorg, dc = org и o = area2, o = myorg, dc = org от провайдера, а также иметь возможность иметь дополнительные данные в потребителе, например o = subarea1, o = myorg, dc = org.
У меня нет проблем с получением данных от провайдера, я установил запись syncrepl в потребителе для каждой ветви (area1, area2) с разными ридами.
syncrepl rid=101
provider="ldap://provider:389"
bindmethod=simple
binddn="cn=replicator,o=myorg,cn=org"
credentials="***"
searchbase="o=area1,o=myorg,dc=org"
type=refreshAndPersist
retry="5 5 300 5"
timeout=3
schemachecking=off
scope=sub
и я также активировал syncprov на провайдере.
Проблема возникает, когда я пытаюсь добавить какие-либо данные о потребителе, всегда происходит сбой с ошибкой:
LDAP Error code 53 - shadow context; no update referral
Да, ты можешь. Просто найдите фильтр и атрибуты, которые вы хотите реплицировать в вашей конфигурации syncrepl
syncrepl rid=1
provider=ldap://provider.myorg.com:389
type=refreshOnly
interval=01:00:00:00
searchbase="ou=sales,o=employees,o=myorg,cn=com"
filter="(objectClass=posixAccount)"
scope=base
attrs="cn,sn,userPassword"
schemachecking=off
bindmethod=simple
binddn="cn=syncuser,o=myorg,cn=com"
credentials=secret
теперь это выглядит следующим образом:
Однако есть одна загвоздка. Атрибуты, которых нет у вашей мастер-самбы, вам придется обновить вручную. Например, у вас есть пароль samba на вашем потребительском LDAP, а ваш главный LDAP его не имеет, вам необходимо обновить 2 LDAP для синхронизации sambaNTPassword и sambaLMPassword в потребительском LDAP с userPassword на главном LDAP, когда пользователь меняет свой пароль. Конечно, это применимо только в том случае, если вы хотите, чтобы пароли синхронизировались.
Если вы имеете в виду, возможно ли иметь другую схему данных для потребителя, то я думаю, что вы могли бы просто реплицировать вещи отдельно для одного леса (или создать другой), а затем подключить потребителя к этому лесу или сайту AD. К сожалению, я использовал openldap очень недолго. Надеюсь, это поможет .
Поскольку ваши разные ветки находятся в разных бэкэндах, у вас может быть бэкэнд, настроенный как потребитель удаленного главного, а другой бэкэнд настроен как стандартный бэкэнд, когда чтение и запись выполняются напрямую.
Вы определяете ou=sales,o=employees,o=myorg,cn=com
как DN одного бэкэнда с настройками репликации. И вы определяете ou=accounting,o=employees,o=myorg,cn=com
как DN другого бэкэнда, без настроек репликации.
Если все должно храниться в одном бэкэнде, я представляю себе следующее:
У меня была аналогичная проблема, и я нашел вариант, который позволяет записывать на основе потребителя:
olcMirrorMode: TRUE
Его необходимо добавить после всех опций syncrepl. Думаю, это тоже решит вашу проблему.