使用ActiveLdap检索多值DN属性

时间:2010-08-12 11:15:32

标签: ruby

我的LDAP目录中的一些用户有几个指定的uid:

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

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

在尝试使用ActiveLdap(如User.uid)为这些用户获取uid时,我只获得第一个uid attr,因为它是DN属性。

ActiveLdap可以同时获取它们吗?

1 个答案:

答案 0 :(得分: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,因为过滤器会过滤到活动用户并从中选择uid属性为x的用户。

实际上,你只能达到顶级dn,所以每个过滤器都会过滤一个用户,所以它没用。我所做的实际上是查询ldap数据库的flatfile备份并以这种方式提取信息。如果我没记错的话,我使用了基本的红宝石,只是在换行符上拆分记录,并制作了一个大数组。我们有大约130,000条记录,并且能够在平面文件中大约2秒钟内获得我的查询。