2010-08-12 50 views
0

在我的LDAP目錄一些用戶的UID幾個指定爲這樣:檢索多值屬性DN使用ActiveLdap

dn: uid=user1,ou=People,o=org 
uid: user1 
uid: nick1 

dn: uid=user2,ou=People,o=org 
uid: user2 
uid: nick2 

雖然試圖獲得UID對於這些用戶使用ActiveLdap(如User.uid)我只得到因爲它是DN屬性的第一個使用者屬性。

ActiveLdap可以使用它們兩個嗎?

回答

0

我恰好碰到了這幾個星期前: Query all the users in a system with LDAP

這不是說每一個ActiveLDAP問題。

這是事情,我希望能爲你節省一些時間。與你的ldap模式一樣,你擁有的是每個用戶的唯一dn。所以,實際上,如果您擁有100,000個用戶,那麼您有100,000個文件夾,每個文件夾在頂層被標識爲id唯一。如果您的架構是建立這樣的:

dn: category=active,ou=People,o=org 
    uid: uid1 
    uid: nick1 

,那麼你可以查詢所有重疊UID的活躍用戶,因爲過濾器會向下過濾到活躍用戶,並從該選擇與x的UID屬性的用戶。

事實上,你只能得到頂級的dn,所以每個過濾器都會過濾一個用戶,所以它沒用。我所做的實際上是查詢我的ldap數據庫的平面文件備份,並以這種方式提取信息。我使用基本的ruby,只是在換行符上分割記錄,並且如果我沒有記錯的話,就創建了一個大數組。我們有大約130,000條記錄,並能夠在平面文件約2秒內得到我的查詢。

+0

不,我在這裏有小數據庫(約900個LDAP條目),Ruby-LDAP返回正確的結果,所以它只是ActiveLdap的問題。它似乎從屬性數組中去掉RDN屬性,只留下一個值(取自DN),所以我想知道是否有停止ActiveLdap這樣做的方法。 – timurb 2010-08-13 16:07:57