我试图在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下运行。
任何帮助将不胜感激:)
答案 0 :(得分:-1)
请尝试将LDAPlogin
替换为完整绑定dn
值,例如
"cn=hidden,dc=example,dc=com"