我正在使用带有Python的ldap3模块,并且需要能够递归地查找多个AD域中的对象的所有成员。
我们有以下域名:
我需要获取成员的组在DOMAIN.COM中,但这些组中的用户和组可以来自任何域。我可以看到DOMAIN.COM中的用户/组的组成员,我也可以列出DOMAIN.COM中组内任何域中的用户,但我的问题是我们将拥有来自UK.DOMAIN的组/用户.COM等是DOMAIN.COM中其中一个组的成员,我似乎无法使其正常工作。
我正在使用以下内容:
from ldap3 import Server, Connection, ALL_ATTRIBUTES, SUBTREE
import getpass
USERNAME = 'DOMAIN\User'
PASSWORD=getpass.getpass('Enter Password: ') # For testing only
GROUPS = [
'CN=MyGroup,OU=Security Groups,DC=DOMAIN,DC=COM',
]
server = Server('DOMAIN.COM', use_ssl=True)
with Connection(server,
read_only=True,
check_names=True,
lazy=False,
raise_exceptions=True,
user=USERNAME, password=PASSWORD) as c:
for group in GROUPS:
c.search(
search_base='dc=DOMAIN,dc=COM',
search_filter='(&(memberOf=%s)(objectCategory=*))' % group,
search_scope=SUBTREE,
attributes=ALL_ATTRIBUTES,
get_operational_attributes=True)
print(c.response[0])