无法在 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
我是 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