LDAP筛选器-检索给定组中的所有用户

LDAP筛选器-检索给定组中的所有用户,ldap,ldap-client,Ldap,Ldap Client,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,d

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))

但它不起作用。

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

  • 基本对象:
    cn=engineering,ou=Groups,dc=domain,dc=com
  • 经营范围:基地
  • 过滤器:
    (&)
  • 请求的属性:
    成员
来自服务器的响应(假设处理搜索请求的连接的授权状态允许)将是该组中所有
成员
属性值的列表

如果LDAP客户端需要每个成员的完整条目,则为每个成员发送搜索请求。客户机具有DN,因此只需要一个基本级别的作用域,并列出要检索的每个属性

或者:

  • 基本对象:
    ou=users,dc=domain,dc=com
  • 范围:一个(如果所有对象都低于
    ou=users
  • 过滤器:
    (&(objectClass=inetorgPerson)(memberOf=cn=engineering,ou=Groups,dc=domain,dc=com))
  • 请求的属性,例如,
    cn、homeDirectory
来自的响应(假设处理搜索请求的连接的授权状态允许)将是
inetOrgPerson
成员列表,这些成员以其他方式与搜索参数匹配,例如作为该组的成员

另见

谢谢Terry,但我的LDAP服务器上不存在memberOf。我看过这篇文章,问题是我不能添加额外的属性。有人建议我在第一个查询中查找所有uid,然后创建一个字符串,将每个用户名附加在后面,比如(&(ou=Users)(|(uid=user1)(uid=user2)…(uid=userN)))。这很难看,但似乎是唯一的解决办法。遗憾的是,加德纳先生的网站不再承载这些内容,。