Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Общий раздел => Тема начата: Max от 30 Январь 2013, 15:28:23
-
Добрый день,
Буду благодарен любой информации по следующей проблеме:
Работаю над тулой для синхронизации с LDAP серверами.
Существует проблема с производительностью.
Для ускорения синхронизации с AD был использован аттрибут uSNChanged. При первом запуске мы берем все объекты сервера и получаем максимальный uSNChanged. При следующем запуске берем все объекты с uSNChanged больше исходного. Т.е. фактически берем только изменившиеся объекты.
Необходимо сделать подобное с Open LDAP. Но насколько я понял аттрибут uSNChanged может отсутствовать или вообще не поддерживаться. И это зависит от конфигурации конкретного Open LDAP сервера.
Вопросы:
Зависит ли uSNChanged в Open LDAP от конфигурации сервера или всегда есть?
Можно ли заменить uSNChanged в Open LDAP, чем либо другим?
Какие варианты версионирования есть в Open LDAP?
Дополнительный вопрос:
Помогите настроить тестовый Open LDAP сервер. Какой free софт можно заюзать? Как это лучше сделать? смотрел в сторону Amazon EC2 но нифига не разобрался еще.
ЗЫ Работаю под винду.
-
Здравствуйте!
Работаю над тулой для синхронизации с LDAP серверами.
Существует проблема с производительностью.
В Opensource LDAP-серверах (по крайней мере, в OpenLDAP и ApacheDS) проблема синхронизации (репликации) решается применением технологии SyncRepl, описанной в RFC4533 (http://pro-ldap.ru/tr/rfc/rfc4533.html). Скорее всего лучшим решением для Вас будет сразу браться за реализацию этой технологии, чем изобретать велосипед (как, например, Вы собираетесь отслеживать удалённые из каталога записи?), тем более в Интернет можно найти уже написанные кем-то реализации на разных языках.
Зависит ли uSNChanged в Open LDAP от конфигурации сервера или всегда есть?
В OpenLDAP такого атрибута нет, это майкросовтовская схема данных.
Можно ли заменить uSNChanged в Open LDAP, чем либо другим?
Какие варианты версионирования есть в Open LDAP?
Отметки времени изменения в OpenLDAP помещаются в атрибуты entryCSN (для каждой записи) и contextCSN (для всего DIT, атрибут находит в корневой записи DIT). Концепция Change Sequence Number (CSN) описана в том же RFC4533 (http://pro-ldap.ru/tr/rfc/rfc4533.html#appendix-A).
Помогите настроить тестовый Open LDAP сервер. Какой free софт можно заюзать? Как это лучше сделать? смотрел в сторону Amazon EC2 но нифига не разобрался еще.
ЗЫ Работаю под винду.
Если Вы хотите развернуть OpenSource сервер каталогов под Windows, то, наверное, Вам больше подойдёт ApacheDS (http://pro-ldap.ru/tr/zytrax/ch4/apacheds.html), поскольку OpenLDAP установить под Windows не так просто (http://pro-ldap.ru/tr/zytrax/ch4/win2k.html#win2k), да и версии будут староваты (многие возможности нереализованы).
Егор
-
В OpenLDAP такого атрибута нет, это майкросовтовская схема данных.
Admin guide (http://www.openldap.org/doc/admin24/OpenLDAP-Admin-Guide.pdf), стр 222. “USN” overlay (plugin) используемый для “Maintain usnCreated and usnChanged attrs similar to Microsoft AD”.
Что это тогда за USN плагин? Зачем он нужен? Можно ли его юзать для поддержки usnChanged?
В Opensource LDAP-серверах (по крайней мере, в OpenLDAP и ApacheDS) проблема синхронизации (репликации) решается применением технологии SyncRepl, описанной в RFC4533.
Спасибо, смотрю.
-
Здравствуйте!
Admin guide (http://www.openldap.org/doc/admin24/OpenLDAP-Admin-Guide.pdf), стр 222. “USN” overlay (plugin) используемый для “Maintain usnCreated and usnChanged attrs similar to Microsoft AD”.
Что это тогда за USN плагин? Зачем он нужен? Можно ли его юзать для поддержки usnChanged?
Этот модуль помечен как "not yet released", ни в одном официальном релизе его не было. Если интересно, можете скачать с git-репозитория, собрать и поэкспериментировать.
Егор
-
... тем более в Интернет можно найти уже написанные кем-то реализации на разных языках.
А не подскажете какие-нибудь варианты, кроме http://lsc-project.org
-
Добрый день.
Вообщем начал попытки реализации LDAP Sync for Open directory. Пишу на .net. Накопал, что для Open LDAP при запросе синхронизации используется LDAP control с OID "1.3.6.1.4.1.4203.1.9.1.1" http://www.oid-info.com/get/1.3.6.1.4.1.4203.1.9.1.1 (http://www.oid-info.com/get/1.3.6.1.4.1.4203.1.9.1.1). Пытаюсь сделать реквест и получаю след ошибку: "The server does not support the control. The control is critical.". Может кто то подскажет чего ...
Пока нашел то, что на моем тестовом сервере в списке supported controls только это:
LDAP Proxied Authorization Control
ManageDsaIT Control
Subentries in LDAP
Simple Paged Results Manipulation Control Extension
Matched Values Control
Post-Read Controls
Pre-Read Controls
Assertion Control
Следовательно, надо найти и доставить что ли ...
-
Last news:
Подскажите плиз, как мне включить этот контрол?
-
Здравствуйте!
А не подскажете какие-нибудь варианты, кроме http://lsc-project.org
Точно знаю, что есть API для python (http://www.python-ldap.org/doc/html/ldap-syncrepl.html), наверняка есть и реализации, надо поискать, а на этой странице (http://blog.normation.com/tag/apacheds/) представлена реализация на Java и ссылки на два разных Java-API. А вообще, google знает всё =) .
Подскажите плиз, как мне включить этот контрол?
В OpenLDAP нужно применить наложение syncprov к той БД, которую Вы собираетесь синхронизировать (http://pro-ldap.ru/tr/admin24/replication.html#Set%20up%20the%20provider%20slapd) (возможно, придётся ещё подгрузить модуль syncprov.la (http://pro-ldap.ru/tr/zytrax/ch6/#moduleload)). Если Вы настраиваете через динамическую конфигурацию, то посмотрите здесь (http://pro-ldap.ru/tr/zytrax/ch6/slapd-config.html#use-overlays).
Егор
-
Большое спасибо за советы. Модуль подключил, Sync Request Control виден в списке supportedControls. К сожалению пока получаю exceptions "A protocol error occured". Копаю дальше ... Если можете подсказать, то было бы неплохо понять, как включить логирование для Open LDAP.
-
В целом я начал потихоньку разбираться, где собственно находится конфигурация а как можно ее менять. Честно скажу, это дикий ад ... :)
-
Весь наш сайт так или иначе посвящён проблеме настройки OpenLDAP =) . Если коротко, есть конфигурация динамическая и статическая, вторая -- проще и понятнее для новичков, но в целом обе не так сложны, как кажется на первый взгляд. Описание почти всех директив конфигурации можно найти на этой странице (http://pro-ldap.ru/tr/zytrax/ch6/), конкретно про журналирование -- здесь (http://pro-ldap.ru/tr/zytrax/ch6/#loglevel).
Егор
-
Егор, большое спасибо.
Я включил LDAP Sync Control для своего сервера. Все вроде ок, но при отправке запроса с контролом 1.3.6.1.4.1.4203.1.9.1.1 я получаю exception "A protocol error occured". И собственно пока не совсем понятно откуда ноги растут.
-
Здравствуйте! Ошибка протокола -- она, как говорится, и в Африке ошибка протокола. Значит Ваш запрос неправильно сформирован. Самому, правда, не приходилось писать такие низкоуровневые вещи, и с API для .net я не знаком, поэтому могу лишь высказать теоретическое предложение. Поскольку syncrepl -- расширение операции Search, неплохо было бы для начала отработать простой поисковый запрос, без элементов управления. А когда сервер будет возвращать данные, можно навесить на SearchRequest Message элемент управления Sync Request Control.
Егор.