在一次搜索中搜索LDAP上的用户和相关组

时间:2018-11-30 16:31:16

标签: ldap username usergroups

LDAP的新功能。 LDAP的排列方式是人员和组。人们拥有用户信息,例如姓名,uid和邮件。这些组具有组名和多个成员字段,其值类似于cn = First Last,cn = people,dc = comic,dc = com,列出了属于该组成员的人员。

当前以用户名和密码开头,进行两次搜索: 1)通过在uid = value上的People基础域上搜索来获取用户。然后从用户那里获得名字和姓氏。 2)根据member = cn = First Last,cn = People,dc = comic,dc = com搜索Groups基本域,然后遍历返回到组名字段的组对象列表。

我只是想知道是否可以通过一次搜索完成所有这些操作,还是必须进行两次搜索?

2 个答案:

答案 0 :(得分:0)

不幸的是,您无法一次完成想要做的事情。

此外,您正在做的事情并不总是有效。与其检索用户的姓氏和名字,不如检索他们的专有名称(dn属性),然后根据该名称进行组搜索。姓氏和名字可以在LDAP中修改,并且可能由于结婚/离婚/其他原因而发生。

答案 1 :(得分:0)

只要您实现了Reverse Group Membership Maintenance Overlay,就有可能。

要确定某个条目所属的组而无需执行额外的搜索, memberOf 覆盖正是您需要的。

  

memberof叠加层会更新属性(默认情况下,memberOf)   每当成员资格属性发生更改时(默认情况下为member)   配置为的对象类(默认为groupOfNames)条目数   触发更新。因此,它可以维护组列表   条目是其中的成员,通常由   修改组条目上的成员。

您可能会发现此Server Fault post对于操作方法很有用。

一旦您准备好使用memberOf属性,就可能必须在每个组条目上手动运行ldapmodify,但只能运行一次,以便可以配置所有member的条目在其各自的memberOf属性中具有对应的组dn。

最后,要对给定用户执行组成员资格搜索,您只需搜索用户条目并迭代memberOf属性即可获得组dn。