带有密码策略的OpenLDAP syncrepl问题

最近我一直在努力使用LDAP后端(基于推送的复制)获得slapd syncrepl的工作。 虽然我使用syncrepl进行pull操作的时候出现了很棒的效果,但是基于push的操作却让我失望了。

当我启动slapd时,遇到以下输出问题:syncrepl_message_to_entry:rid = 700 mods check(pwdAttribute:value#0 invalid per syntax)

这是关注我的默认密码策略。 我已经看到关于这个类似问题的其他消息,但其中大多数从来没有产生答案,所以我希望我必须俯视一些相当简单的东西。

我正在使用olc数据库运行此slapd(2.4.35)实例,并使用以下相关参数:

objectClass: olcDatabaseConfig objectClass: oldLDAPConfig olcDatabase: {1}ldap olcDbACLBind: bindmethod=simple binddn="cn=Directory Manager" credentials="xxxxxxx" olcDbOnErr: continue oldDbUri: ldap://mysatelliteldapserver oldSyncrepl: rid=700 provider=ldaps://masterldapserver.mydomain.com:636 bindmethod=simple binddn="cn=Directory Manager" credentials="xxxxxxxx" filter="(objectclass=*)" searchbase="dc=my,dc=base" scope=sub schemachecking=off type=refreshOnly interval=00:00:05:00 

哪个应该从“masterldapserver”拉到“mysatelliteldapserver”。 这工作,直到它达到我的密码策略,然后它得到:

 syncrepl_message_to_entry: rid=700 mods check (pwdAttribute: value #0 invalid per syntax) 

这完全是假的。 我甚至已经预先configuration目标卫星服务器上的密码策略,然后重新启动复制。

消息来源清楚地表明:

 pwdAttribute: userPassword 

但是回来的价值#0(在其他时间,我已经与一个“空”谷相关联)。

所以,问题是,有没有其他人跑过这个,有没有人有一些types的修复或解决方法的build议?

提前致谢

“价值#0”不是价值本身。 这意味着第0个值。

尝试将其更改为“userPassword”的OID,或者您可能没有在从站中加载正确的模式,以便知道userPassword是什么。

我赞同@EJP答案:消费者缺less一个编译选项(如{CRYPT}密码的支持,必须作为编译选项启用)或模块(如支持{SHA256}{PDKDF2-SHA*}需要同时在cn=config编译模块和模块插入的密码)。

这是关于消费者错过了对提供者所使用的散列架构的支持。