使用python-ldap添加AD组

时间:2017-06-20 08:37:49

标签: python active-directory python-ldap

我试图在AD中创建组没有成功,下面是我的代码:

import ldap
import ldap.modlist as modlist

LDAPserver = 'hidden'
LDAPlogin = 'hidden'
LDAPpassword = 'hidden'

l = ldap.initialize('ldap://' + LDAPserver)

l.simple_bind_s(LDAPlogin, LDAPpassword)

dn = 'OU=someunit,OU=someunit,OU=someunit,OU=someunit,DC=my-company,DC=local'

attrs = {}
attrs['objectclass'] = ['top','Group']
attrs['cn'] = 'group name to be created'
attrs['description'] = 'Test Group'

ldif = modlist.addModlist(attrs)

l.add_s(dn,ldif)

l.unbind_s()

以下代码段给出了一个错误:

ldap.INSUFFICIENT_ACCESS: {'info': '00000005: SecErr: DSID-031521D0, problem 4003 
(INSUFF_ACCESS_RIGHTS), data 0\n', 'desc': 'Insufficient access'}

但是,使用相同的凭据,我可以使用LDAP Admin

等一些UI工具创建组

所以我认为我有适当的权限来创建组,但是仍然没有成功使用python-ldap。

我还可以查询现有的组并通过脚本获取其成员。

我认为问题出在我的属性中,也许Active Directory需要将一些不同的值插入到 attrs 变量中。 AD在Win Server 2012 R2下运行。

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:-1)

请尝试将LDAPlogin替换为完整绑定dn值,例如

"cn=hidden,dc=example,dc=com"