如何在 Python 中使用 LDAP 将新用户添加到组?
How do I add a new user to a group with LDAP in Python?
我正在尝试使用 Python 3 和 ldap3 通过 LDAP 将用户添加到 Active Directory。
目前我有这行代码可以工作 returns true:
conn.add('cn=' + uid + ',cn=Users,dc=example,dc=com', 'user', {'sAMAccountName': uid, 'userPrincipalName': uid,'givenName': fname, 'sn': sname, 'displayName': name, 'mail': uid + '@example.com'})
所有这一切只是用给定的参数创建一个用户 - 太棒了。
然后我想将我正在创建的用户分配给一个组,所以我将以下内容添加到属性列表中(也尝试使用 member
而不是 memberOf
):
'memberOf': ['cn=My Group,cn=Users,dc=example,dc=com']
但是这个 returns 是错误的,根本不会创建用户。
我以为我做错了什么,所以再次删除了 memberOf
、运行 的第一批代码以重新创建用户。我在 Windows 服务器上使用 Active Directory 用户和计算机工具手动将组添加到用户。我打开 IDLE,设置我的连接和 运行 这个(为简洁起见输出剪切):
>>> conn.search('dc=example,dc=com', '(objectclass=person)', attributes=['memberOf'])
>>> conn.entries
[...
, DN: CN=username,CN=Users,DC=example,DC=com - STATUS: Read - READ TIME: <snip>
memberOf: CN=My Group,CN=Users,DC=example,DC=com
]
除了首字母大写的 CN
和 DC
之外,这正是我所拥有的。我试着把我的资本化,但它也行不通。这真的让我感到困惑,因为我认为我做的一切都是正确的。在过去的一两个小时里,我一直在谷歌搜索和摸不着头脑。
tl;dr 如何在使用 Connection.add()
创建 AD 用户时将其分配给 AD 组
在 ldap3 库中有一种将用户添加到一个或多个组的特定方法。看看 conn.extend.microsoft.add_members_to_groups(members, groups)
方法。
我正在尝试使用 Python 3 和 ldap3 通过 LDAP 将用户添加到 Active Directory。
目前我有这行代码可以工作 returns true:
conn.add('cn=' + uid + ',cn=Users,dc=example,dc=com', 'user', {'sAMAccountName': uid, 'userPrincipalName': uid,'givenName': fname, 'sn': sname, 'displayName': name, 'mail': uid + '@example.com'})
所有这一切只是用给定的参数创建一个用户 - 太棒了。
然后我想将我正在创建的用户分配给一个组,所以我将以下内容添加到属性列表中(也尝试使用 member
而不是 memberOf
):
'memberOf': ['cn=My Group,cn=Users,dc=example,dc=com']
但是这个 returns 是错误的,根本不会创建用户。
我以为我做错了什么,所以再次删除了 memberOf
、运行 的第一批代码以重新创建用户。我在 Windows 服务器上使用 Active Directory 用户和计算机工具手动将组添加到用户。我打开 IDLE,设置我的连接和 运行 这个(为简洁起见输出剪切):
>>> conn.search('dc=example,dc=com', '(objectclass=person)', attributes=['memberOf'])
>>> conn.entries
[...
, DN: CN=username,CN=Users,DC=example,DC=com - STATUS: Read - READ TIME: <snip>
memberOf: CN=My Group,CN=Users,DC=example,DC=com
]
除了首字母大写的 CN
和 DC
之外,这正是我所拥有的。我试着把我的资本化,但它也行不通。这真的让我感到困惑,因为我认为我做的一切都是正确的。在过去的一两个小时里,我一直在谷歌搜索和摸不着头脑。
tl;dr 如何在使用 Connection.add()
在 ldap3 库中有一种将用户添加到一个或多个组的特定方法。看看 conn.extend.microsoft.add_members_to_groups(members, groups)
方法。