|
Для 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 способами:
- Запустить прямо сам процесс -
odisrv host=dsvolk port=4032 config=1 instance=1 debug=16 refresh=2
maxprofiles=2
- Запустить с помощью oidctl -
oidctl connect=iasdb instance=1 server=odisrv flags="debug=8" start ( или
oidctl server=odisrv instance=1 flags="port=4032" start)
Сразу читать логи, разные для наших двух
случаев:
- %ORACLE_INF_HOME%\ldap\odi\log.
- %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,
в зависимости от того, как Вы его запустили:
- sh.exe %%ORACLE_INF_HOME%\ldap\odi\admin\stopodiserver.sh -LDAPhost dsvolk -bindpass saruman9
-LDAPport 4032 -instance 1
Если это не помогло, добавьте параметр -clean
в эту строчку.
-
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
|