问题描述
使用带有参数的 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 (将#修改为@)