在LDAP中使用其cn找不到组的成员

问题描述

我对LDAP完全陌生,并且刚刚开始。我已经看到了一些示例,据我所知,这些示例已按照我的方式使用了查询,但就我而言,它似乎无法正常工作。

我有一个这样的层次结构(我正在使用Apache Directory Studio):

enter image description here

如果我用ou=scientists双击对象,则其信息将弹出,如下所示:

enter image description here

因此,这个拥有ou=scientists的小组有一个cn=Scientists(我已经检查过,科学家之后没有空格。

我只想用ou=scientists在小组中找到东西。 有1种方法可以做到: ou=scientists,dc=example,dc=com给出了预期的结果。

enter image description here

但是我希望能够通过ou=scientists而不是其ou值,而是通过cn值来查找组中的内容。所以我对自己想,可以使用:cn=Scientists,dc=com

但这将产生0个结果。我想我在这里没有重点。我该怎么办?

解决方法

@SeanGoudarzi我认为LDAP模型的工作方式存在一些误解。 如果要查找给定条目的子条目,则需要2个搜索。 一种找到基本条目,另一种找到子条目

要查找具有所谓的“相对专有名称” ou=scientists的条目,您需要进行类似的搜索

ldapsearch ... -b dc=example,dc=com -s sub cn=scientists dn

然后

ldapsearch ... -b DN_RESULT_FORM_PREVIOUS_SEARCH -s one objectclass=* dn

这会给你

dn: ou=italians,ou=scientiests,dc=example,dc=com

还是您想要实现其他目标?

,

查询LDAP目录时要考虑很多事情。

在您的情况下,您想从一个分支(在LDAP中调用搜索库dn)中查找,并在该分支的所有子级中应用过滤器以选择所需的子项:

ldapsearch ... -b <search base dn> -s sub "<FILTER>"

所以对于您的DIT:

ldapsearch ... -b dc=example,dc=com -s sub "(&(objectClass=groupOfUniqueNames)(cn=scientists))"

如果您想更深入地使用ldap,请考虑学习搜索请求在LDAP中的工作方式:https://ldapwiki.com/wiki/SearchRequest