使用Python访问AD域中的对象

时间:2016-03-05 15:41:05

标签: python python-3.x active-directory ldap

我正在使用带有Python的ldap3模块,并且需要能够递归地查找多个AD域中的对象的所有成员。

我们有以下域名:

  • DOMAIN.COM
  • UK.DOMAIN.COM
  • US.DOMAIN.COM

我需要获取成员的组在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])

0 个答案:

没有答案