|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Slava Alpatov 2:5020/194.500 27 Jul 2007 10:15:55 To : Andrew V Scherbacov Subject : Односторонняя синхронизация AD c OpenLDAP -------------------------------------------------------------------------------- дорогой... 25 Jul 07 12:44, Andrew V Scherbacov wrote to Slava Alpatov: SA>> пол-часа, чтобы разобратся где openldap'овским тулзам не хватает SA>> пробелов и символов новой строки и пол-часа на "вспомнить perl)". SA>> Учитывая, что убил уже 2 недели на кучу всевозможный SA>> "необходимых" подготовительных действий (от апргрейда и SA>> пересборки openldap через апгрейд Линукса и еще хрен знает что) SA>> все-таки это был самый простой путь :-( AS> можно поделиться ? пару месяцев назад пытался решить аналогичную AS> проблему, но не осилил... Я все радикально упростил (и как потом оказалось был прав ибо убогие xerox,например, умеют выдергивать инфу только из одного уровня иерархии LDAP, ничего не знают про те же OU, а также не могут привязатся к search base) slupd.conf. Тут все просто - разве я включил inetorgperson.schema и добавил defaultsearchbase (для тупых Xerox'ов) ====================slupd.conf================== include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/inetorgperson.schema defaultsearchbase "dc=vbleasing,dc=intra" ####################################################################### # BDB database definitions ####################################################################### database bdb suffix "dc=vbleasing,dc=intra" rootdn "cn=Manager,dc=vbleasing,dc=intra" # Cleartext passwords, especially for the rootdn, should # be avoid. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd and slap tools. # Mode 700 recommended. directory /var/db/openldap-data # Indices to maintain index objectClass eq ========================================= основной скрипт - тащим данные из AD (только юзера),скармливаем перлу на обработку, и льем в локальный openldap, забивая на ошибки. ===============ad2openldap.sh==================== /usr/local/bin/ldapsearch -x -h datasrv -D"CN=ftp,OU=admins,dc=vbleasing,dc=intra" -w durak123 -b dc=vbleasing,dc=intra "(ProxyAddresses=SMTP*ru)" cn mail sn > /tmp/ldap_for_scanner if test -s /tmp/ldap_for_scanner then cat /tmp/ldap_for_scanner|/usr/local/bin/for_ldap.pl|/usr/local/bin/ldap add -x -c -D "cn=Manager,dc=vbleasing,dc=intra" -w secret else echo "Alarm!LDAP is down"|mail -s "LDAP is down" root fi ======================================================= Перловый скрипт рисует из многоранговой структуры одноранговую и льет в ldif файл. ================for_ldap.pl================== #!/usr/bin/perl # Little traintment script for normalization data from AD to opneldap while(<>){ if ($_=~m/^cn/){ chop $_; $name=substr($_, 4); print '#',"\n"; print "dn: CN=",$name,",DC=vbleasing,DC=intra\n"; print "objectClass: inetOrgPerson\n"; print $_,"\n"; } if ($_=~m/^sn/){print $_;} if ($_=~m/^mail/){print $_,"\n";} } ================================================= Все. Postfix к этой системе не цепляю ибо обработку удаленных юзеров я не сделал ибо мне надо было срочно сносить Lotus Domino (который до этого работал LDAP сервером) и переключать сканеры на что-то другое. Если кто найдет более красивый вариант - welcome - я перелопатил тонны документации, но работоспособных инструкций не нашел. С глубочайшим уважением, Слава --------mailto:oldchild@mail.ru---------------- --- Я сказал (С) Г.Е.Жеглов * Origin: Жизнь прекрасна и удивительна! (2:5020/194.500) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/454046a99c03.html, оценка из 5, голосов 10
|