В последнее время в тех. поддержке поднимается много вопросов связанных с импортом пользователей и групп пользователей из AD: у одних клиентов не импортируются пользователи, у других выгружаются "не те" подразделения, у третьих проблемы с авторизацией и т.д.
Я задался целью написать скрипт, который будет из API продукта, но по тем же алгоритмом, выполнять фильтрацию данных в AD по произвольному фильтру.[spoiler]
Запустив скрипт в браузере Вы увидите следующую не сложную форму:
Заполняем поля "Хост", "Логин", "Пароль", а также BaseDN (возможные варианты для Вашего сервера можно получить нажав на кнопку "Получить BaseDN"), указываем заранее заданный или свой фильтр, жмём "Запросить".
Получаем результаты выборки. Выбираются только поля указанные в поле "Выводимые поля". Хочу отметить, что если оставить поле "Выводимые поля" пустым, то будут выведены все возвращаемые из AD поля.
Итак, для чего этот скрипт нужен. Например, надо чтобы в выгрузке на сайт учавствовали только пользователи, принадлежащие к одной группе, например:
CN=Guests,CN=Builtin,DC=office,DC=bitrix,DC=ru |
Для этого составляем фильтр:
(&(&(objectClass=user)(objectCategory=PERSON))(memberof=CN=Guests,CN=Builtin,DC=office,DC=bitrix,DC=ru)) |
вводим его в поле и получаем:
Теперь переносим наши наработки в продукт:
Теперь при выгрузке пользователей, продукт будет использовать новый фильтр для выборки пользователей из AD.
Скрипт лежит
Пользуйтесь на здоровье
(&(!extensionAttribute11=en)(objectCategory=PERSON)(objectClass=user))
у пользователя в поле "extensionAttribute11" стоит значение "en".
???
Единственный минус, кириллицу не понимает.