создание записи в каталог ladp с помощью python

#python #mysql #ldap

#питон #mysql #ldap

Вопрос:

Я пытаюсь создать запись в LDAP с помощью python, это выдает мне ошибку {‘info’: ‘нет глобальных превосходных знаний’, ‘desc’: ‘Сервер не желает выполнять’} ниже приведен мой код для этого

 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. Не могли бы вы, пожалуйста, написать точный вывод ошибки?

Ответ №1:

Как выглядит дерево каталогов в вашем экземпляре 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"
 

И ошибка «нет глобальных превосходных знаний» может быть видна, когда вы пытаетесь добавить запись в часть каталога, которая не существует.

Вы можете создать новый базовый DN dc = somnath, dc = org или попытаться добавить запись в dc = somnath, dc = zanker, dc = org . ПРИМЕЧАНИЕ. попробуйте добавить запись, которая не является cn=admin, поскольку она предположительно уже существует, поскольку вы используете ее для привязки () к сервису.