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

Can';在LDAP中找不到使用其cn的组成员,ldap,ldap-query,Ldap,Ldap Query,我对LDAP完全陌生,而且刚刚开始。我已经看到了几个例子,据我所知,它们和我一样使用了这个查询,但在我的例子中,它似乎不起作用 我有这样的层次结构(我使用的是Apache Directory Studio): 如果我用ou=scientists双击对象,则其信息将弹出,如下所示: 所以这组有ou=scientists的人有一个cn=scientists(我已经检查过了,在scientists后面没有空格 我只想在组内找到ou=scientists的内容。 有一种方法可以这样做: ou=sci

我对LDAP完全陌生,而且刚刚开始。我已经看到了几个例子,据我所知,它们和我一样使用了这个查询,但在我的例子中,它似乎不起作用

我有这样的层次结构(我使用的是Apache Directory Studio):

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

所以这组有
ou=scientists
的人有一个
cn=scientists
(我已经检查过了,在scientists后面没有空格

我只想在组内找到
ou=scientists
的内容。 有一种方法可以这样做:
ou=scientists,dc=example,dc=com
,给出预期结果。

但是我希望能够通过
ou=scientists
找到组内的内容,而不是通过
ou
值,而是通过
cn
值。所以我想,好吧,我可以用这个:
cn=scientists,dc=example,dc=com


但是这会产生0个结果。我想我遗漏了一个关键点。我应该怎么做呢?

@SeanGoudarzi我认为对LDAP模型的工作原理存在一些误解。 如果要查找给定条目的子条目,需要进行2次搜索。 一个用于查找基本条目,另一个用于查找子条目

要查找具有所谓“相对可分辨名称”的条目,您需要进行如下搜索

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中调用search base dn),并在此分支的所有子级中应用筛选器,以选择所需的子级:

ldapsearch…-b-s sub”“

因此,对于您的DIT:

ldapsearch…-bdc=example,dc=com-s sub“(&(objectClass=groupOfUniqueNames)(cn=scientists))”


如果您想更深入地使用LDAP,请考虑学习搜索请求在LDAP中的工作方式:

我正在使用此处提到的服务器:对象的可分辨名称是
ou=scienties,dc=example,dc=com
。这是您无需搜索即可引用它的唯一方法。要根据其
commonName
值查找它,您需要您需要执行LDAP搜索操作。