假设您有两组用户:
OU=IT Dept,OU=Groups,DC=mycompany,DC=com
OU=XYZ Corp,OU=Temp Accounts,OU=Groups,DC=mycompany,DC=com
您如何表达查询?我尝试了OU=Groups,DC=mycompany,DC=com
的搜索基础和(|(OU=IT Dept)(OU=XYZ Corp,OU=Temp Accounts))
的过滤器,但是没有用。
从来没有对LDAP做过多,所以请原谅这个有点开放的问题。
答案 0 :(得分:1)
假设您有两组用户:
OU = IT部门,OU =组,DC = mycompany,DC = com
OU = XYZ Corp,OU =临时账户,OU =组,DC = mycompany,DC = com
这些不是用户对象的有效distinguishedName。
用户对象存储在某个父容器(如OU)中,其distinguishedName以CN开头。 OU是顶级容器,包含用户,计算机,子OU等子对象。
我尝试了OU = Groups,DC = mycompany,DC = com和过滤器的搜索基础 (|(OU = IT部门)(OU = XYZ Corp,OU =临时账户))并且没有用。
您的过滤器无法正常工作,因为您没有选择适当的过滤条件。您需要为(objectCategory=person)
或(objectCategory=user)
应用过滤器。您还可以使用objectClass
作为过滤参数而不是objectCategory。请查看链接Filter on objectCategory and objectClass
以了解详情。
您如何表达查询?
假设您的用户如下:
CN =名字姓氏,OU = IT部门,OU =组,DC = mycompany,DC = com CN =名字姓氏,OU = XYZ Corp,OU =临时账户,OU =组,DC = mycompany,DC = com
然后,您的LDAP查询应将SearchBase
设置为您当前拥有的内容(OU=Groups,DC=mycompany,DC=com
),并过滤(|(objectCategory=person)(objectCategory=user))
以及任何其他过滤器,如果您愿意,例如,您可能想要通过sAMAccountName,名称等进行搜索。
如第二段所述,您还可以使用objectClass
作为过滤器类型来获得所需的结果。