добавить пользователя в активный каталог с помощью ldap python - PullRequest
0 голосов
/ 25 мая 2018

Я написал следующий код для добавления пользователя в активный каталог 2012.
Я использую pycharm и python3.5, но я получаю эту ошибку:

{'info': '000020D6: SvcErr: DSID-0310081B, problem 5012 (DIR_ERROR), data 0\n', 'desc': 'Operations error'}

Мой код выглядит следующим образом:

server = 'ldap://31.184.132.39:389'
ldap_pass = 'function92'
ldap_bind = 'ou=DaaSUsers,dc=xaas,dc=local'

def create_user_activedirectory(username , password , name ):
    username = str(username)
    password=str(password)
    name=str(name)
    con = ldap.initialize(server)
    con.simple_bind_s("administrator@xaas.local", "function92")
    dn = "cn="+username+", ou=DaaSUsers, o=XaaS.local"
    mymodlist = {
         "objectClass": ["account".encode('utf-8'), "posixAccount".encode('utf-8'), "shadowAccount" .encode('utf-8')],
        #"objectClass": [str("inetOrgPerson").encode('utf-8')],
        "cn":[str(name).encode('utf-8')],
        "uid": [str(username).encode('utf-8')],
        "uidNumber": [str("5025").encode('utf-8')],
        "gidNumber": [str("30033").encode('utf-8')],
        "homeDirectory": [str("/home/"+name).encode('utf-8')],
        "loginShell": ["/bin/bash".encode('utf-8')],
        "gecos" : [str(username).encode('utf-8')],
        "userPassword": [password.encode('utf-8')] ,
        "shadowLastChange": [str("0").encode('utf-8')],
        "shadowMax": [str("0").encode('utf-8')],
        "shadowWarning": [str("0").encode('utf-8')],
        "sn": ["De Paepe".encode('utf8')],
        "givenName": ["Maarten".encode('utf8')],
        "displayName": ["Maarten De Paepe".encode('utf8')],
    }
    con.add_s(dn,ldap.modlist.addModlist(mymodlist))
    con.unbind_s()

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 25 мая 2018

Эта ошибка обычно означает, что ей не нравятся некоторые значения, которые вы ей даете.Вот пара вещей, которые я замечаю, но это может быть не все:

  1. objectClass.Эти классы действительно действительны в вашем домене?Есть ли у существующих учетных записей пользователей эти классы?Классами по умолчанию для объекта пользователя обычно являются «organizPerson», «person», «top» и «user».В большинстве случаев вам не нужно устанавливать этот атрибут самостоятельно.

  2. Я не вижу, чтобы вы устанавливали sAMAccountName и userPrincipalName.Это обязательные атрибуты.

...