无法在 LDAP 中使用其 cn 找到组成员

Can't find members of group using its cn in LDAP

我是 LDAP 的新手,才刚刚开始。我看过几个例子,据我所知,它们使用了我所做的查询,但就我而言,它似乎不起作用。

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

如果我用ou=scientists双击对象,它的信息会弹出如下:

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

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

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

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

@SeanGoudarzi 我认为对 LDAP 模型的工作原理存在一些误解。 如果要查找给定条目的 Sub-entries,则需要 2 次搜索。 一个用于查找 base-entry,一个用于查找子条目

要查找带有所谓 'relative distinguished name' 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)并在这个分支的所有子项中应用一个过滤器到 select 你想要的:

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