【问题标题】:LDAP filter - retrieve all users in a given groupLDAP 过滤器 - 检索给定组中的所有用户
【发布时间】:2013-11-06 15:19:56
【问题描述】:

我在 LDAP 中的过滤器有问题。我想检索指定 LDAP 组中的所有用户。 LDIF 是这样的:

dn: cn=engineering,ou=Groups,dc=domain,dc=com
objectClass: groupOfNames
cn: engineering
member: uid=alex,ou=Users,dc=domain,dc=com
member: uid=amy,ou=Users,dc=domain,dc=com
...

dn: uid=alex,ou=Users,dc=domain,dc=com
objectClass: posixAccount
objectClass: inetOrgPerson
cn: Alex Ander
gidNumber: 5000
homeDirectory: /home/alex
...

我试过了

(&(objectClass=user)
  (memberof=cn=engineering,OU=Users,DC=domain,DC=com))

但它不起作用。

【问题讨论】:

    标签: ldap ldap-client


    【解决方案1】:

    要检索组的所有成员,请在搜索请求中使用以下参数:

    • 基础对象:cn=engineering,ou=Groups,dc=domain,dc=com
    • 范围:基础
    • 过滤器:(&)
    • 请求的属性:member

    来自服务器的响应(假设处理搜索请求的连接的授权状态允许)将是该组中所有member 属性值的列表。

    如果 LDAP 客户端需要每个成员的完整条目,则为每个成员传输一个搜索搜索请求。客户端有 DN,因此只需要一个基本级别的范围,并列出要检索的每个属性。

    或者:

    • 基础对象:ou=users,dc=domain,dc=com
    • 范围:一(如果所有对象都比ou=users低一级)
    • 过滤器:(&(objectClass=inetorgPerson)(memberOf=cn=engineering,ou=Groups,dc=domain,dc=com))
    • 请求的属性,例如cn, homeDirectory

    来自(假设处理搜索请求的连接的授权状态允许)的响应将是inetOrgPerson 成员的列表,这些成员在其他方面与搜索参数匹配,例如是该组的成员。

    另见

    【讨论】:

    • 谢谢特里,但 memberOf 不在我的 LDAP 服务器上。我看到这篇文章blog.oddbit.com/post/…,问题是我不能添加额外的属性。一个人建议我在第一个查询中找到所有的 UID,然后创建附加每个用户名的字符串,例如 (& (ou=Users) (| (uid=user1)(uid=user2) ... (uid=userN) ))。这非常难看,但它似乎是唯一的解决方案。
    • 遗憾的是,加德纳先生的网站不再托管此内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多