如何使用Python LDAP3列出自己的Active Directory组成员身份?

问题描述

登录到Active Directory,然后要使用Python ldap3库列出我自己的组成员身份。

server = Server('server.company.local',get_info=ALL)
conn = Connection(server,user="company\\user",password="password",authentication=NTLM,auto_bind=True)
print(conn.extend.standard.who_am_i())

代码显示用户名(如whoami cmd命令),但我想列出我的组(如whoami /groups命令)。 不幸的是,我无权在域控制器上进行不同的搜索,这就是为什么(也许)以下代码返回空字符串的原因:

conn.search("dc=name,dc=company,dc=local","(&(sAMAccountName={}))".format("company\\myusername"),attributes=['memberOf'])

我如何像whoami /groups一样列出自己的组成员身份?

解决方法

Active Directory通常允许所有经过身份验证的用户读取很多属性,包括memberOf。检查为您的搜索返回的记录数。我希望您通过该搜索找到零记录。 sAMAccountName值通常不包含“ company \”组件,而仅仅是“ myusername”。

,

问题是我的搜索基础:我将"dc=name,dc=company,dc=local"替换为"dc=company,dc=local",它很好用。