OpenLDAP slapo-unique 因 UID 失敗

OpenLDAP slapo-unique 因 UID 失敗

我的 LDAP 目錄中有幾個分支,它們都使用 UID 屬性作為 DN 的一部分。最近,我的任務是確保 UID 屬性全面唯一,以便 UID 無法從一個子樹匹配到另一個子樹。

在某種程度上,使用 slapo-unique 確實有效。當我新增使用者但未在 LDIF 或執行匯入的應用程式中明確定義 UID 屬性時,就會出現問題。

首先,我們假設我定義了以下規則:

olcUniqueURI: ldap:///dc=domain,dc=com?uid?sub?(objectClass=inetOrgPerson)

現在,舉個例子,假設我有一個現有用戶,其 DN 是“uid=userj,ou=People,dc=domain,dc=com”

然後我加入以下 ldif:

dn: uid=userj,ou=OtherPeople,dc=domain,dc=net
givenName: Joe
objectClass: inetOrgPerson
cn: Joe User
sn: User
uid: userj
mail: [email protected]

正如人們所預料的那樣,我收到了有關 uid 唯一性的錯誤。現在,當我沒有明確包含 UID,而是依賴在導入時透過 slapd 設定 UID,因為它被定義為可分辨名稱時,就會出現問題:

dn: uid=userj,ou=OtherPeople,dc=domain,dc=net
givenName: Joe
objectClass: inetOrgPerson
cn: Joe User
sn: User
mail: [email protected]

這是允許的。新增此內容後,使用搜尋篩選器「(uid=userj) 進行搜尋將擷取兩個 DN:

uid=userj,ou=People,dc=domain,dc=com 和 uid=userj,ou=OtherPeople,dc=domain,dc=net

它們都會顯示它們的 UID 屬性設定為“userj”。查看 slapd 的調試日誌,當我沒有在 ldif 中明確設定 UID(這應該不是必需的,因為它是從新 DN 隱含的)時,日誌顯示它從不向 LDAP 查詢該 UID 屬性。

那麼,有人對我如何解決這個問題有建議嗎?顯然,我建議人們始終隱式地定義 UID 屬性,即使它是 DN 的一部分,但有些人很頑固,喜歡尋找違反約束的方法。

提前致謝;

相關內容