我已经阅读了所有可用的文档 , 掌握OpenLDAP的书籍 ,并像一个zillion邮件列表post,但我还没有find一种方法来使这种情况下可能。 我在这个场景中看到了几个用例,就像一个企业应用程序,它同时从Org的主LDAP中同步所有的用户,但是在它的服务器中保留了它自己的与应用程序相关的模式和对象。
所以,请你指点一下我的方向,还是帮我放弃这个可能性?
编辑6月17日
一个示例场景: 
我想要完成的是能够获得来自提供者的o = area1,o = myorg,dc = org和o = area2,o = myorg,dc = org中的所有数据,而且还能够在消费者中有额外的数据,如o = subarea1,o = myorg,dc = org。
我没有问题从提供者获取数据,我在消费者中为每个分支(area1,area2)设置了一个syncrepl条目,它们有不同的rids
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
是的你可以。 只要searchfilter,然后attrs你想复制你的syncreplconfiguration
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上有samba密码,而您的主LDAP没有它,您必须更新2 LDAP,以在用户更改其密码时将用户LDAP上的sambaNTPassword和sambaLMPassword同步到主LDAP上的userPassword。 当然,这只适用于如果你想保持密码同步。
如果你指的是可以有一个消费者有不同的数据模式,那么我认为你可以复制一个森林(或创build另一个森林)的东西,然后将消费者连接到该森林或AD网站。 不幸的是我只使用了openldap。 我希望这有帮助 。
只要你的不同分支在不同的后端,你可以将一个后端configuration成一个远程主服务器的消费者,另一个后端configuration成在直接执行读写操作时成为标准的后端。
您将ou=sales,o=employees,o=myorg,cn=com定义为具有复制设置的一个后端的DN。 你可以定义ou=accounting,o=employees,o=myorg,cn=com作为另一个后端的DN,不需要复制设置。
如果一切都保持在相同的后端,我想象如下:
我有类似的问题,并find一个选项,允许写在消费者基础上:
olcMirrorMode: TRUE
必须在所有syncrepl选项之后添加。 我认为它也解决了你的问题。