Как добавить нового пользователя в группу с LDAP в Python?

Я пытаюсь добавить пользователя в Active Directory через LDAP, используя Python 3 с ldap3.

В настоящее время у меня есть эта строка кода, которая работает и возвращает true:

conn.add('cn=' + uid + ',cn=Users,dc=example,dc=com', 'user', {'sAMAccountName': uid, 'userPrincipalName': uid,'givenName': fname, 'sn': sname, 'displayName': name, 'mail': uid + '@example.com'})

Все это просто создает пользователя с заданными параметрами - отлично.

Затем я хотел назначить пользователя, которого я создаю, группе, поэтому я добавил следующее в список атрибутов (также пытался с member вместо memberOf):

'memberOf': ['cn=My Group,cn=Users,dc=example,dc=com']

Но это возвращает false и не создает пользователя вообще.

Я предположил, что сделал что-то не так, поэтому удалил memberOf, снова запустил первую партию кода, чтобы воссоздать пользователя. Я использовал инструмент "Active Directory - пользователи и компьютеры" на моем Windows Server, чтобы вручную добавить группу к пользователю. Я открыл IDLE, настроил свое соединение и запустил это (сокращение выходных данных для краткости):

>>> conn.search('dc=example,dc=com', '(objectclass=person)', attributes=['memberOf'])
>>> conn.entries
[...
, DN: CN=username,CN=Users,DC=example,DC=com - STATUS: Read - READ TIME: <snip>
    memberOf: CN=My Group,CN=Users,DC=example,DC=com
]

Который кроме заглавной CN а также DC было именно то, что я имел. Я попытался использовать заглавные буквы, но тогда это тоже не сработало. Это действительно озадачило меня, так как я думал, что все делаю правильно. Я гуглил и чесал голову последние час или два.

tl; dr Как назначить и группу AD пользователю AD при создании с помощью Connection.add()

1 ответ

Решение

В библиотеке ldap3 есть особый метод добавления пользователей в одну или несколько групп. Посмотрите на conn.extend.microsoft.add_members_to_groups(members, groups) метод.

Другие вопросы по тегам