Добавление и удаление членов в / из группы активных каталогов в python
Я пытаюсь написать программу на python-3, которая могла бы обновлять членов группы активных каталогов ежедневно или около того. Проблема в том, что у меня есть:
Security group : cn=groupName, ou=Groups, ou=department, dc=some, dc=company,dc=com
User group: ou=Users, ou=department, dc=some, dc=company, dc=com
Членство пользователя в группе может истечь на основании определенных критериев. Итак, я должен
- Сначала удаляйте всех участников из группы ежедневно
- Проверьте каждого пользователя в группе пользователей на основе критериев и добавьте в качестве члена группы, если критерии выполнены.
Я прошел учебник по ldap3, но не смог найти ничего подходящего для добавления / удаления участника.
Можете ли вы посоветовать мне любую библиотеку Python, которую я могу использовать, или пример кода был бы очень полезен.
1 ответ
Вам нужно включить LDAP на вашем сервере Active Directory.
Тогда вы должны быть в состоянии использовать ldap3
с Python делать то, что вы хотите, нет проблем.
Посмотри на ldap3.Connection.extend.microsoft
там вы найдете два метода: add_members_to_groups()
а также remove_members_from_groups()
,
Их использование задокументировано здесь.
Что-то, с чего можно начать:
import ldap3
server = ldap3.Server('ldap.example.com')
conn = ldap3.Connection(server, user='user', password='password', auto_bind=True)
conn.add('cn=jsmith,cn=Users,dc=example,dc=com', 'user', {'sAMAccountName': 'jsmith', 'userPrincipalName': 'jsmith', 'givenName': 'John', 'sn': 'Smith'})
conn.extend.microsoft.add_members_to_groups('cn=jsmith,cn=Users,dc=example,dc=com', 'cn=My Group,cn=Users,dc=example,dc=com')
conn.unbind()
Все, что делает, это создает пользователя и добавляет его в группу.
Мне удалось успешно добавить пользователей в группу AD с помощью библиотеки Pyad. Полную документацию можно найти здесь. Ниже приведен пример добавления списка пользователей в группу AD.
from pyad import aduser
from pyad import adgroup
## Set AD Group Values (values derived from CN or Common Name of the AD Group)
test_group = "xxxxx-YYYYY-TEST-ZZZZ"
## Create List of Code IDs to be added
code_list = ["123456", "234567", "345678"]
## Add Users to TEST AD Group using the Pyad library
for user in code_list:
users = aduser.ADUser.from_cn(user)
test_group = adgroup.ADGroup.from_cn(test_group)
test_group.add_members(users)