LINUX.ORG.RU
ФорумAdmin

Утилиты для синхронизации LDAP - какие?


0

2

Задача такая - синхронизировать OpenLDAP с Active Directory в одностороннем порядке, т.е. иметь что-то вроде локального кеша AD. Причем т.к. схема AD отличается от нормальной, хотелось бы иметь возможность преобразовывать имена аттрибутов (TelephoneNumber -> Phone и т.п.).

Сейчас оно делается самописным скриптом на перле, в котором через пару лет после его написания я сам не разбираюсь :)

Может есть какие-то более красивые решения?

Например под виндой сделать снапшот, затем dsamain представить снапшот как данные ldap, затем экспортировать в cvs или ldif, затем экспортировать в openldap.

http://www.petri.co.il/using-csvde-ldifde-export-active-directory-snapshots-w...

zgen, заверь?

Ну и с таким на винфак надо. Или ты удалённо хочешь сделать?

anonymous ()

А смысл этого действа? Т.е. как планируется использовать в дальнейшем покореженный «кэш» AD? Ведь AD-enabled приложение все равно с этим без ошибок работать не сможет.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

AD-enabled мне не нужно, у меня туда будет обращаться почтовая система, прокси и т.п., чтобы лишний раз не дёргать AD, ибо ему бывало плохело в момент пиковых нагрузок, а OpenLDAP это нормально переносит.

blind_oracle ★★★★★ ()
Ответ на: комментарий от anonymous

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

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

Вам нужно нечто вроде AD proxy. Сам я подобное не делал (не было необходимости), но ссылку на обсуждение, как сделать это из openldap с автоподменой атрибутов я дам:

http://www.openldap.org/lists/openldap-software/200510/msg00256.html

Надеюсь, что прочитав это и поняв ключевые слова вы сможете найти нужное и сделать из openldap AD proxy.

И, самое главное, поделитесь результатом тут.

На разумные, правильно сформулированные вопросы (а не «у меня ничего не работает») я постараюсь ответить.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Спасибо, в общем-то подобное решение (скрипт синхронизации) у меня и так есть, я думал есть какие-то универсальные утилиты готовые, а патчить OpenLDAP мне не очень охота :)

blind_oracle ★★★★★ ()

попробуй apatar. не знаю, жив ли он, но в какой-то версии это работало

vostrik ★★★☆ ()

ну и попробуй гуглить ldap+etl, что-то должно быть, если апатар не осилит

vostrik ★★★☆ ()
Ответ на: комментарий от zgen

Подобное в плане колхозности и необходимости пилить готовый продукт под свои цели. И что из него получится еще не ясно, а скрипт уже работает :)

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

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

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Ну, в общем вроде бы действительно работает из коробки через бэкенд LDAP + оверлей pcache. Тестовый конфиг:

include /opt/openldap/etc/openldap/schema/core.schema
include /opt/openldap/etc/openldap/schema/cosine.schema
include /opt/openldap/etc/openldap/schema/inetorgperson.schema
include /opt/openldap/etc/openldap/schema/nis.schema

pidfile /opt/openldap/var/run/slapd.pid
argsfile /opt/openldap/var/run/slapd.args

idletimeout 60

access to * by * read

#loglevel 256

database        ldap
rootdn          dc=doman,dc=ru
suffix          dc=domain,dc=ru
uri             ldap://10.1.0.10
chase-referrals yes
acl-bind        bindmethod=simple binddn="CN=user,DC=domain,DC=ru" credentials=pwd
idassert-bind   bindmethod=simple binddn="CN=user,DC=domain,DC=ru" credentials=pwd

overlay                 pcache
pcache                  hdb 1000000 1 1000 600
pcacheAttrset           0 mail
pcacheMaxQueries        100000
pcacheTemplate          (mail=) 0 3600 120

cachesize       20
directory       /opt/openldap/var/openldap-data/ad-proxy
index           default pres,eq,sub
threads         32
cachesize       131072
cachefree       1
idlcachesize    131072
lockdetect      random
mode            0600

dbconfig        set_cachesize 0 134217728 1
dbconfig        set_data_dir db
dbconfig        set_lg_dir logs
dbconfig        set_lg_regionmax 262144
dbconfig        set_lg_bsize 2097152
dbconfig        set_flags DB_LOG_AUTOREMOVE

Неизвестные аттрибуты оно со схемой не сверяет, а просто проксирует:

4f350afd PROXIED attributeDescription "INSTANCETYPE" inserted.
4f350afd PROXIED attributeDescription "WHENCREATED" inserted.
4f350afd PROXIED attributeDescription "WHENCHANGED" inserted.
4f350afd PROXIED attributeDescription "USNCREATED" inserted.
4f350afd PROXIED attributeDescription "USNCHANGED" inserted.
4f350afd PROXIED attributeDescription "DEPARTMENT" inserted.
4f350afd PROXIED attributeDescription "COMPANY" inserted.
4f350afd PROXIED attributeDescription "OBJECTGUID" inserted.
4f350afd PROXIED attributeDescription "URL" inserted.
4f350afd PROXIED attributeDescription "OBJECTCATEGORY" inserted.
4f350afd PROXIED attributeDescription "DSCOREPROPAGATIONDATA" inserted.
Насчёт того, как оно складывает в кеш неизвестные аттрибуты пока непонятно, буду разбираться и гонять под нагрузкой.

Спасибо за наводку!

blind_oracle ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.