Ldap

LDAP 複製有效 - 但缺少使用者密碼

  • February 25, 2019

我們創建了一個主/從環境,其中一個 ldap 伺服器定期複製另一個。所有條目均已正確複製,但未複製屬性“userPass”。我們假設這是一個 ACL 問題,所以在主控端我們添加了

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {3}to attrs=userPassword by dn.base="cn=syncprov,dc=thedomain,dc=com" read

但 userPass 仍然失去。

要逐步調試,這將很有幫助

  1. 是否有工具可以幫助我檢查 ACL 問題?所以我可以冒充使用者並檢查屬性?
  2. 伺服器端的日誌記錄級別會顯示 ACL 問題嗎?
  3. 每當我們在從屬端嘗試 ldapmodify 更改時,它們都會被“影子上下文”拒絕,這很合乎邏輯,但是我們如何進行更改呢?我們是否必須從複製中排除 cn=config
  4. 既然從機端的任何更改都被拒絕了,那麼我們如何完全停止複制模式呢?

您現在可以通過使用複制使用者的憑據登錄並確認userPassword在查詢其他使用者對象時顯示該憑據來簡單地檢查 ACL 是否正確。

例如用一個簡單的ldapsearch -D "cn=syncprov,dc=thedomain,dc=com" -w secret -p 389 -h server.example.com "cn=Heiner"

如果 ACL 正確,您應該能夠看到 userPassword。

修復 ACL 不會自動開始將缺少的 userPassword 屬性複製到您的從站。

(更改後的 ACL 不會修改原始使用者帳戶對象,儘管 cn=syncprov 現在可以在主伺服器上看到一個額外的屬性,這不是“新”屬性,該帳戶保持不變。而且由於複製只同步具有已更新沒有任何反應。)

您將需要再次完全初始化從站,這次使用userPasswords。

引用自:https://serverfault.com/questions/953723