Добавление и удаление членов в / из группы активных каталогов в 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

Членство пользователя в группе может истечь на основании определенных критериев. Итак, я должен

  1. Сначала удаляйте всех участников из группы ежедневно
  2. Проверьте каждого пользователя в группе пользователей на основе критериев и добавьте в качестве члена группы, если критерии выполнены.

Я прошел учебник по 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)
Другие вопросы по тегам