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

Проблема OpenLDAP syncrepl с политиками паролей

Недавно я работал над тем, чтобы slapd syncrepl работал с бэкэндом LDAP (репликация на основе push). В то время как у меня были фантастические результаты с syncrepl, использующим pull-based, push-based меня убивает.

Когда я запускаю slapd, у меня возникают проблемы со следующим выводом: syncrepl_message_to_entry: rid = 700 проверка модов (pwdAttribute: значение # 0 недопустимо для синтаксиса)

Это касается моей политики паролей по умолчанию. Я видел и другие сообщения об этой похожей проблеме, но большинство из них так и не дало ответа, поэтому я надеюсь, что я упускаю из виду что-то довольно простое.

Я запускаю этот экземпляр slapd (2.4.35) с базой данных olc и следующими соответствующими параметрами:

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)

Что абсолютно подделка. Я даже дошел до того, что предварительно настроил политики паролей на целевом вспомогательном сервере, а затем перезапустил репликацию.

Источник ясно показывает:

pwdAttribute: userPassword

Но возвращается со значением # 0 (которое в других случаях я связывал с "нулевой" долей).

Итак, вопрос в том, сталкивался ли кто-нибудь еще с этим и есть ли у кого-нибудь предложения по какому-либо исправлению или обходному пути?

заранее спасибо

«значение # 0» - это не само значение. Это означает 0-е значение.

Попробуйте изменить его на OID 'userPassword', или, может быть, у вас нет правильных схем, загруженных в ведомое устройство, чтобы он знал, что userPassword является.

Я поддерживаю ответ @EJP: либо у потребителя отсутствует опция компиляции (например, поддержка {CRYPT} пароли, которые должны быть включены в качестве параметра компиляции) или модуля (например, поддержка {SHA256} или {PDKDF2-SHA*} пароль, который требует как компиляции модуля, так и вставки модуля в cn=config).

Это связано с отсутствием у потребителя поддержки схемы хеширования, используемой поставщиком.