Dsvolk > > Oracle > > Oid > > IPlanet Sync My Blog | Search | About
(Not Logged In)
[ welcome! ] [ news ] [ install ] [ jump-jet ] [ app ] [ rac ] [ papers ] [ dba ] [ dvp ] [ racdd4d ] [ oem ] [ statspack ] [ education ] [ tuning ] [ ias ] [ backup ] [ dataprotection ] [ security ] [ oid ] [ options ] [ integration ] [ sales ] [ sun ] [ linux ] [ consulting ] [ faq ]

Синхронизация с IPlanet

Соглашение о материалах на этом сайте

Мой oracle blog
true dsvolk!
Как глобализовать пользователей
в масштабах предприятия
 
Для OID из состава IAS 9.0.2 - cинхронизируемся с IPlanet 5.1, точнее импортируем изменения сделанные в IPlanet в OID. Это можно использовать для 2 целей - для автоматизированного заведения пользователей в БД (если БД настроена на внешнюю авторизацию) и заведения пользователей в Portal.  Но пока мы рассмотрим синхронизацию пользователей некоторого домена: spain.jet

Далее используются следующие условия:

  • dsvolk - host на котором установлен OID. 
  • saruman9 - административный пароль
  • %ORACLE_INF_HOME% - директория где установлена OID
  • saruman - host где установлен IPlanet. Домен spain.jet

В соответствии с документацией убедимся что включен changelog в OID.

Проверим что LDAP вообще работает:

ldapbind -h dsvolk -p 4032 -D "cn=orcladmin" -w saruman9

Если нет - стартуем его:

oidmon start

oidctl server=oidldapd instance=1 start

Проерим настроен ли changelog:

 ldapsearch -v -p 4032 -h dsvolk -D cn=orcladmin -w saruman9 -b "" -s base "objectclass=*" lastchangenumber

 

ldap_open( dsvolk, 4032 )
filter pattern: objectclass=*
returning: lastchangenumber
filter is: (objectclass=*)

lastchangenumber=262
1 matches

Также необходимо разрешить (Enable) Retro Changelog Plugin в IPlanet ! Иначе ничего не выйдет !

Запускаем Directory Manager, настраиваем Intergation Profile. Выбираем Server Manager ->Integration Server. Далее выбираем IplanetImport 

нажимаем "Edit". Выставляем Profile Status = 'ENABLE' . Указываем информацию для подключения в IPlanet. Указанный пользователь должен иметь право на чтение change log !

 

Теперь надо загрузить Mapping Rules. Для этого на windows нужно поставить Cygwin
Я сделал так: Установил базовый пакет + sh. Далее добавил в  путь (%PATH%) директорию с c:\cygwin\bin.

Запустил sh.exe и создал директорию /ldap/log. 

Исправил файл iplanet.map.master с Mapping Rules на следующий:

DomainRules
dc=spain,dc=jet::
AttributeRules
uid
sn
dc
cn
mail
employeenumber
c
l
o
ou
telephonenumber
#userpassword
#uid:::::modifiersname:uid
# userpassword: :base64:userpassword: :binary:

Запустил процедуру загрузки правил:

sh.exe %ORACLE_INF_HOME%/ldap/odi/admin/ldapUploadAgentFile.sh -name IPlanetImport -config 1 -LDAPhost dsvolk -LDAPport 4032 -binddn "cn=orcladmin" -bindpass saruman9 -attrtype "MAP" -filename <полный путь к файлу>iplanet.map.master

Без параметров ldapUploadAgentFile.sh показывает свои ключи. Полный путь к файлу - это очень важно !. После этой команды Mapping 

должен выглядеть так:

 

Необходимо дать права да модификацию нашего домена:

ldapmodify -p 4032 -h dsvolk -D cn=orcladmin -w saruman9 -f dsvolk.ldif

где dsvolk.ldif:

 

dn:dc=spain,dc=jet
changetype: modify
replace: orclaci
orclaci: access to entry by dn="orclodipagentname=iPlanetImport,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory" (browse,add,delete)
orclaci: access to attr=(*) by dn="orclodipagentname=iPlanetImport,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory" (read,search,write,compare)


Теперь можно запустить Oracle Directory Integration Server (OIDS). Но сначала его надо зарегистрировать:

odisrvreg.bat -h dsvolk -p 4032 -D "cn=orcladmin" -w saruman9

Теперь можно запустить OIDS. В документации написано что сделать это можно 2 способами:

  1. Запустить прямо сам процесс - 
    odisrv host=dsvolk port=4032 config=1 instance=1 debug=16 refresh=2 maxprofiles=2 
  2. Запустить с помощью oidctl - 
    oidctl connect=iasdb instance=1 server=odisrv flags="debug=8" start ( или oidctl server=odisrv instance=1 flags="port=4032" start)
     

Сразу читать логи, разные для наших двух случаев: 

  1. %ORACLE_INF_HOME%\ldap\odi\log. 
  2. %ORACLE_INF_HOME%\ldap\log. Если нет связи с ldap проверьте порты и доступность обоих ldap'ов ! 

Проверить, запустился ли odisrv можно так:

ldapsearch -p 4032 -h dsvolk -b cn=instance1,cn=odisrv,cn=subregistrysubentry -s base -v "objectclass=*"

Вот так выглядит успешное прохождение синхронизации (см. Last Applied CN):

 

Если вы запускали процесс с  debug то наблюдать за процессом преобразования ваших данных можно с помощью 

sh

$ tail -f  %ORACLE_INF_HOME%\ldap\odi\log\IPLanetImport.trc 

Остановить odisrv можно с помощью stopodiserver.sh или с помошью odictl, в зависимости от того, как Вы его запустили: 

  1. sh.exe %%ORACLE_INF_HOME%\ldap\odi\admin\stopodiserver.sh -LDAPhost dsvolk -bindpass saruman9 -LDAPport 4032 -instance 1
    Если это не помогло, добавьте параметр -clean в эту строчку.
  2. oidctl connect=iasdb instance=1 server=odisrv flags="debug=8" stop

 

Написано по мотивам документации 

Что дальше: Синхронизация пользователей прямо в дерево БД и заведение пользователей  в Portal'е (на основе стандартной процедуры).

P.S.

Выгрузить ldap в файл :))

ldapsearch -p 4032 -h dsvolk -D cn=orcladmin -w saruman9 -b "" "objectclass=*" > 1.lst

Dsvolk > > Oracle > > Oid > > IPlanet Sync Last Modified: 28-03-2003 10:45