在python

时间:2017-07-07 18:05:41

标签: python python-3.x ldap ldap3 csvde

我正在尝试编写一个基于python-3的程序,它可以每天刷新一个活动目录组的成员。问题是,我有:

Security group : cn=groupName, ou=Groups, ou=department, dc=some, dc=company,dc=com
User group: ou=Users, ou=department, dc=some, dc=company, dc=com

用户加入群组的成员资格可能会根据特定条件到期。所以,我必须

  1. 每天首先从群组中删除所有成员
  2. 根据条件检查用户组中的每个用户,如果符合条件,则添加为组成员。
  3. 我浏览了ldap3教程,但找不到与成员添加/删除相关的任何内容。

    您能否告诉我任何我可以使用的python库或代码示例都会有很大的帮助。

2 个答案:

答案 0 :(得分:0)

您需要在Active Directory服务器上启用LDAP。

然后你应该可以使用Python ldap3做你想做的事,没问题。

在那里查看ldap3.Connection.extend.microsoft,您会找到两种方法:add_members_to_groups()remove_members_from_groups()

他们的用法记录在案here

让你入门的东西:

import ldap3

server = ldap3.Server('ldap.example.com')
conn = ldap3.Connection(server, user='user', password='password', auto_bind=True)

conn.add('cn=jsmith,cn=Users,dc=example,dc=com', 'user', {'sAMAccountName': 'jsmith', 'userPrincipalName': 'jsmith', 'givenName': 'John', 'sn': 'Smith'})
conn.extend.microsoft.add_members_to_groups('cn=jsmith,cn=Users,dc=example,dc=com', 'cn=My Group,cn=Users,dc=example,dc=com')

conn.unbind()

所有这一切都是创建用户并将其添加到组中。

答案 1 :(得分:0)

我能够使用Pyad库成功将用户添加到AD组。完整的文档可以在here中找到。下面是将用户列表添加到广告组的示例。

from pyad import aduser
from pyad import adgroup

## Set AD Group Values (values derived from CN or Common Name of the AD Group)
test_group = "xxxxx-YYYYY-TEST-ZZZZ"

## Create List of Code IDs to be added
code_list = ["123456", "234567", "345678"]

## Add Users to TEST AD Group using the Pyad library
for user in code_list:  
    users = aduser.ADUser.from_cn(user)
    test_group = adgroup.ADGroup.from_cn(test_group)
    test_group.add_members(users)