LDAP 搜索过滤器匹配不相关的域 subRefs?

问题描述

使用带有参数的 python-ldap.search_s() 函数 (https://www.python-ldap.org/en/python-ldap-3.3.0/reference/ldap.html#ldap.LDAPObject.search_s)...

base = DC=myorg,DC=local
filterstr = (&(sAMAccountName={login})(|(memberOf=CN=zone1,OU=zones,OU=datagroups,DC=myorg,DC=local)(memberOf=CN=zone2,DC=local)))

...尝试匹配特定的 AD 用户。 然而,当我查看返回的结果(使用 login = myuser)时,我看到如下内容

[
   (u'CN=zone1,DC=local',{u'sAMAccountName': ['myuser']}),(None,[u'ldap://DomainDnsZones.myorg.local/DC=DomainDnsZones,DC=local']),[u'ldap://ForestDnsZones.myorg.local/DC=ForestDnsZones,[u'ldap://myorg.local/CN=Configuration,DC=local'])
]

带有 {u'sAMAccountName': ['myuser']}元组是我真正想要的元组,但我不知道结果列表中的这些其他元组是什么,因为它们似乎与过滤器字符串加上它们甚至没有过滤器匹配的 sAMAccountName ,甚至这些元组中返回的对象的结构也不同(它们只是 subRefs DC=myorg,DC=local DN)(并且python-ldap docs 并没有真正描述返回的结果实际上是这样的,因此很难仅根据结果推断发生了什么) .

请注意,在 ADExplorer 中查看时我的 AD 结构看起来像...

my AD controller server [myadserver]
    DC=myorg,DC=local
        ...
        CN=zone1,OU=datagroups
        ...
        <location where myuser object is defined>
    CN=Configuration,DC=local
    DC=DomainDnsZones,DC=local
    DC=ForestDnsZones,DC=local

有人知道这里会发生什么吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)