使用python创建进入ladp目录的入口

时间:2014-06-27 07:03:39

标签: python mysql ldap

我正在尝试使用python创建LDAP入口,它给了我错误{' info':'没有全球优越的知识',' desc':&# 39;服务器不愿意执行'} 以下是我的代码

import ldap
import ldap.modlist as modlist
fname="dayanand"
lname="dayanand"
username="dayanand"
employee_num='102'
domain="gmail.com"
base_dn="xyz"
l = ldap.initialize("ldap://localhost")
l.simple_bind_s("cn=admin,dc=somnath,dc=zankar,dc=org","zankar")
user_dn = "cn=admin,dc=somnath,dc=org"
user_attrs = {}
#user_attrs['objectClass'] = \
#          ['top', 'person', 'organizationalPerson', 'user']
user_attrs['cn'] = fname + ' ' + lname
#user_attrs['userPrincipalName'] = username + '@' + domain
#user_attrs['sAMAccountName'] = username
user_attrs['givenName'] = fname
user_attrs['sn'] = lname
user_attrs['displayName'] = fname + ' ' + lname
#user_attrs['userAccountControl'] = '514'
user_attrs['mail'] = username + '@host.com'
#user_attrs['employeeID'] = employee_num
user_attrs['homeDirectory'] = '\\\\server\\' + username
#user_attrs['homeDrive'] = 'H:'
#user_attrs['scriptPath'] = 'logon.vbs'
user_ldif = modlist.addModlist(user_attrs)

# Convert our dict to nice syntax for the add-function using modlist-module
ldif = modlist.addModlist(user_attrs)

# Do the actual synchronous add-operation to the ldapserver
try:
   l.add_s(user_dn,ldif)
except ldap.LDAPError, error_message:
    print "Error adding new user: %s" % error_message

1 个答案:

答案 0 :(得分:0)

目录树在LDAP实例中的样子是什么?我问,因为你试图绑定到dc = somnath,dc = zankar,dc = org:

l.simple_bind_s("cn=admin,dc=somnath,dc=zankar,dc=org","zankar")

但是你正试图在dc = somnath,dc = org:

上添加一些东西
user_dn = "cn=admin,dc=somnath,dc=org"

当您尝试将条目添加到不存在的目录的一部分时,可以看到错误“没有全局高级知识”。

您可以创建dc = somnath,dc = org的新基本DN,或尝试将条目添加到dc = somnath,dc = zanker,dc = org。 注意尝试添加一个非cn = admin的条目,因为这可能已经存在,因为您正在使用它来绑定()到服务。