Aug 16, 2012

Установка и конфигурирование инфраструктуры Oracle Identity Management для приложений Fusion Applications.

Short intro: here you can find a short article about experience of installing and configuring Oracle IDM for Fusion Applications.

OS: Linux x64
HW: RAM 8GB (достаточно, если не запускать сервер SOA, требующийся до установки Fusion Apps лишь при установке OIM).
Версия дистрибутива Fusion apps: 11.1.1.5 / FMW 11.1.1.6
Использовались дистрибутивы FMW из состава Fusion Apps.
Все устанавливалось на один сервер, видимый изнутри по одному имени (faidm01.fapps.ruora.local), извне – по другому (faidm01.ru.oracle.com), что вызвало ряд неудобств.





В процессе установки активно использовался блог Атула Кумара и документация по установке, а также My Oracle Support и форумы Oracle:

http://onlineappsdba.com/index.php/2011/11/14/fusion-applications-111151-part-i-install-identity-and-access-management-oidoamoim-11g/
http://docs.oracle.com/cd/E15586_01/index.htm
http://support.oracle.com
http://forums.oracle.com

Тем не менее, видимо, версии, которые ставил Атул, отличались от вышеперечисленных и было выявлено множество "нюансов", которым и посвящена данная статья. Также найдены и расхождения с документацией, поэтому кажется целесообразным привести данную статью здесь.

Основные шаги:
-    установка ПО Oracle Fusion Middleware Identity Management
-    конфигурация OID
-    конфигурация Policy & Identity Store
-    конфигурация OIM/OAM
-    интеграция OIM & OAM
-    тестирование.


Установка.

Далее $INST – каталог, где развернуты дистрибутивы Fusion Apps.

1. Ставим БД из $INST/database.

2. Доставляем пакеты Linux до соответствия состава пакетов указанным в статье на My Oracle Support 761566.1 (потребуется установка 32-битных пакетов на Linux x64), иначе не компилируются бинарные файлы OID..

> yum install имя_пакета


3. Ставим OID & OVD из $INST/idm, патч не нужен, в дистрибутиве версия уже 11.1.1.6 (пока не конфигурируем, это сделаем позже).

4. Ставим IAMS из $INST/oam с опцией инстоллера –ignoreSysPrereqs (не конфигурируем). Опция "–ignoreSysPrereqs" потребовалась, так как EL6 не входил в список систем, которые "знал" установщик.

5. Ставим SOA Suite из $INST/soa.

6. Ставим OHS (не конфигурируем) из $INST/webtier.

7. Ставим пакет libXtst-1.0.99.2-3.el6.i686. Данный пакет требуется для утилиты RCU.

8. Создаем схемы в БД через RCU ($INST/fmw_rcu/linux), схемы – OIM, OAM, ODS, ODSS, SOA… Проверяем, пытаясь зайти через SQLPLUS или через любые другие программы (например, через JDeveloper).


Конфигурация OID.

9. Конфигурируем OID ($Oracle_IDM1/bin/config.sh), ставим компоненты OID, ODSM. Итоговая конфигурация:

Type: Configure Only
Middleware Home Location : /u01/app/Middleware
Oracle Instance Location : /u01/app/Middleware/asinst_1
Oracle Instance : asinst_1
Domain Option : Create Domain
Domain Name : IDMDomain
Domain Home : /u01/app/Middleware/user_projects/domains/IDMDomain
Domain Host Name : faidm01.fapps.ruora.local
Domain Port : 7001
Weblogic Console : http://faidm01.fapps.ruora.local:7001/console
Weblogic User Name : weblogic
Automatic Port Detection : true
Enterprise Manager :
http://faidm01.fapps.ruora.local:7001/em
Enterprise Manager Agent
http://faidm01.fapps.ruora.local:5162/emd/main
Oracle Internet Directory
SSL Port : 3131
Non SSL Port : 3060
Database : localhost:1521:idm.fapps.ruora.local
Oracle Directory Services Manager :
http://faidm01.fapps.ruora.local:7005/odsm/faces/odsm.jspx


OID ($ORACLE_INSTANCE/bin/opmnctl status -l)
Admin Server http://hostname:7001/console
ODSM http://hostname:7005/odsm


Потребовалось "сбросить" в консоли WLS Listen Address в пустое значение, так как он явно был прописан в адрес faidm01.fapps.ruora.local, недоступный извне.



Конфигурация Identity & Policy Store.

10. Ставим патч 12867723 для исправления ошибок в idmConfigTool перед конфигурацией OID для FA.

$FMW/Oracle_IDM2/OPatch/opatch apply из каталога развернутого патча.


11. Конфигурируем Identity & Policy Store. Нужно создать пользователей, группы и корневой контейнер. Для этого создаем файл policystore.props, копируем его в /home/oracle и запускаем /u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool, из /home/oracle с опцией -configPolicyStore input_file=policystore.props.

Содержимое policystore.props:

POLICYSTORE_HOST : faidm01.fapps.ruora.local
POLICYSTORE_PORT : 3060
POLICYSTORE_BINDDN: cn=orcladmin
POLICYSTORE_READONLYUSER: PolicyROUser
POLICYSTORE_READWRITEUSER: PolicyRWUser
POLICYSTORE_SEARCHBASE: dc=fapps,dc=ruora,dc=local
POLICYSTORE_CONTAINER: cn=jpsroot


После этого в ODSM должны появиться пользователи PolicyROUser и PolicyRWUser, а также контейнер cn=jpsroot в корне.


12. Конфигурируем расположение Policy Store в OID.

> /u01/app/Middleware/oracle_common/common/bin/wlst.sh
> connect("weblogic", "password", "t3://localhost:7001")
> reassociateSecurityStore(domain="IDMDomain", admin="cn=orcladmin", password="password", ldapurl="ldap://faidm01.fapps.ruora.local:3060", servertype="OID", jpsroot="cn=jpsroot")
> exit()


Этот шаг мигрирует хранилище политик из XML-файла в OID. После этого в контейнере cn=jpsroot должна появиться конфигурационная информация из сервера приложений. (jpsroot/JPSContext/IDMDomain…).


13. Теперь необходимо расширить схему OID для его интеграции с OIM/OAM. Для этого создаем файл extend.props со следующим содержимым:

IDSTORE_HOST : faidm01.fapps.ruora.local
IDSTORE_PORT : 3060
IDSTORE_BINDDN: cn=orcladmin
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=fapps,dc=ruora,dc=local
IDSTORE_SEARCHBASE: dc=fapps,dc=ruora,dc=local
IDSTORE_SYSTEMIDBASE: cn=systemids,dc=fapps,dc=ruora,dc=local


Копируем файл в /oracle/home и оттуда запускаем команду:

/u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool.sh -preConfigIDStore input_file=extend.props

После этого в консоли ODSM должен появиться контейнер cn=systemids в указанном расположении (dc=fapps,dc=ruora,dc=local).


14. Необходимо сконфигурировать пользователей OAM в OID. Для этого создаем файл oam.props следующего содержания и копируем его в /home/oracle.

IDSTORE_HOST : faidm01.fapps.ruora.local
IDSTORE_PORT : 3060
IDSTORE_BINDDN : cn=orcladmin
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=fapps,dc=ruora,dc=local
IDSTORE_SEARCHBASE: dc=fapps,dc=ruora,dc=local
POLICYSTORE_SHARES_IDSTORE: true
OAM11G_IDSTORE_ROLE_SECURITY_ADMIN:OAMAdministrators
IDSTORE_OAMSOFTWAREUSER:oamLDAP
IDSTORE_OAMADMINUSER:oamadmin


Запускаем команду:

/u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool.sh -prepareIDStore mode=OAM input_file=oam.props

В ODSM после этого должны появиться пользователи, относящиеся к OAM в контейнере Users и группа в контейнере Groups.


15. Необходимо сконфигурировать пользователей OIM в OID. Для этого создаем файл oim.props следующего содержания и копируем его в /home/oracle.

IDSTORE_HOST : faidm01.fapps.ruora.local
IDSTORE_PORT : 3060
IDSTORE_BINDDN : cn=orcladmin
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=fapps,dc=ruora,dc=local
IDSTORE_SEARCHBASE: dc=fapps,dc=ruora,dc=local
POLICYSTORE_SHARES_IDSTORE: true
IDSTORE_SYSTEMIDBASE: cn=systemids,dc=fapps,dc=ruora,dc=local
IDSTORE_OIMADMINUSER: oimadmin
IDSTORE_OIMADMINGROUP:OIMAdministrators


Запускаем команду:

/u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool.sh -prepareIDStore mode=OIM input_file=oim.props

Указываем пользователю XELSYSADM пароль, начинающийся с большой буквы и с цифрой (это впоследствии будет требованием OIM, предъявляемым парольными политиками по умолчанию), например, "Password1". В ODSM после этого должны появиться пользователи, относящиеся к OIM в контейнере Users, systemids и группа в контейнере Groups.


16. Необходимо сконфигурировать пользователей Weblogic Server в OID. Для этого создаем файл wls.props следующего содержания и копируем его в /home/oracle.

IDSTORE_HOST : faidm01.fapps.ruora.local
IDSTORE_PORT : 3060
IDSTORE_BINDDN : cn=orcladmin
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=fapps,dc=ruora,dc=local
IDSTORE_SEARCHBASE: dc=fapps,dc=ruora,dc=local
POLICYSTORE_SHARES_IDSTORE: true


Запускаем команду:

/u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool.sh -prepareIDStore mode=WLS input_file=wls.props

В ODSM после этого должны появиться пользователи, относящиеся к WLS в контейнере Users, и группа IDM Administrators в контейнере Groups.


17. Необходимо сконфигурировать пользователей Fusion Applications в OID. Для этого создаем файл fusion.props следующего содержания и копируем его в /home/oracle.

IDSTORE_HOST : faidm01.fapps.ruora.local
IDSTORE_PORT : 3060
IDSTORE_BINDDN : cn=orcladmin
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=fapps,dc=ruora,dc=local
IDSTORE_SEARCHBASE: dc=fapps,dc=ruora,dc=local
POLICYSTORE_SHARES_IDSTORE: true


Запускаем команду:

/u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool.sh -prepareIDStore mode=fusion input_file=fusion.props

В ODSM после этого должны появиться пользователи weblogic_fa (FA Superuser), IDROUser (FA Read Only), IDRWUser (FA Read/Write user).


18. В итоге должен в /home/oracle сформироваться файл idmDomainConfig.param, используемый при конфигурации. Его содержимое получилось следующее:

IDSTORE_SUPERUSER: cn=weblogic_fa,cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=fapps,dc=ruora,dc=local
IDSTORE_READWRITEUSER: cn=IDRWUser,cn=Users,dc=fapps,dc=ruora,dc=local
POLICYSTORE_PORT: 3060
IDSTORE_LOGINATTRIBUTE: uid
OAM_POLICYSTORE_HOST: faidm01.fapps.ruora.local
OAM_POLICYSTORE_PORT: 3060
IDSTORE_READONLYUSER: cn=IDROUser,cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_USERSEARCHBASE: cn=Users,dc=fapps,dc=ruora,dc=local
POLICYSTORE_READWRITE_USERNAME: cn=PolicyRWUser,cn=users,dc=fapps,dc=ruora,dc=local
IDSTORE_HOST: faidm01.fapps.ruora.local
IDSTORE_PORT: 3060
POLICYSTORE_CONTAINER: cn=jpsroot
OAM_RUNTIME_ROOT_DN: cn=oamLDAP,cn=Users,dc=fapps,dc=ruora,dc=local
POLICYSTORE_HOST: faidm01.fapps.ruora.local
OAM_USERNAME: cn=oamLDAP,cn=Users,dc=fapps,dc=ruora,dc=local


Перезапускаем сервера домена.


19. Конфигурируем домен OIM/OAM/SOA скриптом $MW_HOME/oracle_common/common/bin/config.sh (он отличается от $OIM_HOME/bin/config.sh). Нужно выбрать "Extend existing domain", затем домен (IDMDomain) и указать продукты (не обращаем внимания на номера версий, они там указаны неверно):

Oracle Identity Manager
Oracle SOA Suite
Oracle Access Manager with Database Policy Store


Перезапускаем сервера приложений для AdminServer и ODSM без старта серверов OIM/OAM/SOA.


20. Конфигурация OIM. Сконфигурируем OIM скриптом $OIM_HOME/bin/config.sh, где $OIM_HOME - /u01/app/Middleware/Oracle_IDM2/, где установлена IAMS Suite. Указываем опции LDAPSync и выбираем конфигурацию Design Console, не указываем URL для BI Publisher, это можно сделать потом.

Указываем:
LDAP RoleContainer:         cn=Groups,dc=fapps,dc=ruora,dc=local   
LDAP UserContainer:         cn=Users,dc=fapps,dc=ruora,dc=local
User Reservation Container:     cn=reserve,dc=fapps,dc=ruora,dc=local



Получаем ошибку:
NoSuchMethodError: oracle/jdbc/OracleConnection.setApplicationContext: Error During the Running of <IAM_Home>/bin/config.sh [My Oracle Support ID 1454994.1]

По поводу этой ошибки на MOS есть соответствующая нота: NoSuchMethodError: oracle/jdbc/OracleConnection.setApplicationContext: Error During the Running of <IAM_Home>/bin/config.sh [ID 1454994.1] и баг 13036545. Впрочем, приводимое там решение не помогло. Помогло скопировать библиотеку ojdbc6.jar из $DB_ORACLE_HOME/jdbc/lib в каталог $OIM_ORACLE_HOME/inventory/Scripts/ext/jlib и переименовать ее в ojdbc6dms.jar. Имеющаяся там библиотека, используемая конфигуратором при загрузке данных в MDS, почему то устаревшая и не содержит метода OracleConnection.setApplicationContext.

Перезапускаем AdminServer и запускаем все Managed сервера:
oim_server1
oam_server1
soa_server1
wls_ods1


21. OAM при установке прописывает адреса как HOSTNAME, который не виден из внешней сети, его можно поменять на faidm01.ru.oracle.com. Для этого необходимо зайти на  http://faidm01.ru.oracle.com:7001/oamconsole (weblogic / password), для URL входа исправить на faidm01.ru.oracle.com, там перейти System Configuration -> Access Manager Settings и исправить OAM Server host на faidm01.ru.oracle.com. Кроме того, можно перейти в SSO Agents -> OAM Agents -> IAMSuiteAgent и исправить атрибут Primary Cookie Domain на .ru.oracle.com. Перезагрузить сервер oam_server1 и убедиться, что можно нормально зайти в oamconsole.


Конфигурируем OIM/OAM.

22. Создаем файл config_oam2.props следующего содержимого и копируем его в /home/oracle.

WLSHOST: faidm01.fapps.ruora.local
WLSPORT: 7001
WLSADMIN: weblogic
WLSPASSWD: password
IDSTORE_HOST: faidm01.fapps.ruora.local
IDSTORE_PORT: 3060
IDSTORE_BINDDN: cn=orcladmin
IDSTORE_USERNAMEATTRIBUTE: cn
IDSTORE_LOGINATTRIBUTE: uid
IDSTORE_USERSEARCHBASE: cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_SEARCHBASE: dc=fapps,dc=ruora,dc=local
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=fapps,dc=ruora,dc=local
IDSTORE_OAMSOFTWAREUSER: oamLDAP
IDSTORE_OAMADMINUSER: oamadmin
PRIMARY_OAM_SERVERS: faidm01.fapps.ruora.local:5575
WEBGATE_TYPE: ohsWebgate10g
ACCESS_GATE_ID: Webgate_IDM
OAM11G_IDM_DOMAIN_OHS_HOST:faidm01.ru.oracle.com
OAM11G_IDM_DOMAIN_OHS_PORT:7777
OAM11G_IDM_DOMAIN_OHS_PROTOCOL:http
OAM11G_WG_DENY_ON_NOT_PROTECTED: false
OAM_TRANSFER_MODE: OPEN
OAM11G_OAM_SERVER_TRANSFER_MODE:OPEN
OAM11G_IDM_DOMAIN_LOGOUT_URLS: /console/jsp/common/logout.jsp,/em/targetauth/emaslogout.jsp
OAM11G_OIM_WEBGATE_PASSWD: webgate password
OAM11G_SERVER_LOGIN_ATTRIBUTE: uid
COOKIE_DOMAIN: .ru.oracle.com
OAM11G_IDSTORE_ROLE_SECURITY_ADMIN: OAMAdministrators
OAM11G_SSO_ONLY_FLAG: true
OAM11G_OIM_INTEGRATION_REQ: true
OAM11G_IMPERSONATION_FLAG:true
OAM11G_SERVER_LBR_HOST:faidm01.ru.oracle.com
OAM11G_SERVER_LBR_PORT:7777
OAM11G_SERVER_LBR_PROTOCOL:http
COOKIE_EXPIRY_INTERVAL: 120
OAM11G_OIM_OHS_URL:http://faidm01.ru.oracle.com:7777/


Запускаем скрипт:
/u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool.sh -configOAM input_file=config_oam2.props

Перезагружаем AdminServer.


23. Создаем файл user.props следующего содержимого и копируем его в /home/oracle.

IDSTORE_HOST: faidm01.fapps.ruora.local
IDSTORE_PORT: 3060
IDSTORE_ADMIN_USER: cn=orcladmin
IDSTORE_USERSEARCHBASE: cn=Users,dc=mycompany,dc=com
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=mycompany,dc=com
PASSWORD_EXPIRY_PERIOD: 7300


Запускаем скрипт:
/u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool.sh -upgradeLDAPUsersForSSO input_file=user.props

Перезагружаем AdminServer.


24. Документация требует удалить существующие Security Provider'ы в консоли Weblogic Server, как показано тут
http://docs.oracle.com/cd/E25054_01/fusionapps.1111/e21032/wiring.htm#CEGFJJGJ

(в моей конфигурации указанных в гайде провайдеров не оказалось)


25. Создаем файл oimitg.props следующего содержимого и копируем его в /home/oracle.

LOGINURI: /${app.context}/adfAuthentication
LOGOUTURI: /oamsso/logout.html
AUTOLOGINURI: None
ACCESS_SERVER_HOST: faidm01.fapps.ruora.local
ACCESS_SERVER_PORT: 5575
ACCESS_GATE_ID: Webgate_IDM
COOKIE_DOMAIN: .ru.oracle.com
COOKIE_EXPIRY_INTERVAL: 120
OAM_TRANSFER_MODE: OPEN
WEBGATE_TYPE: ohsWebgate11g
SSO_ENABLED_FLAG: true
IDSTORE_PORT: 3060
IDSTORE_HOST: faidm01.fapps.ruora.local
IDSTORE_DIRECTORYTYPE: OID 
IDSTORE_ADMIN_USER: cn=oamLDAP,cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_USERSEARCHBASE: cn=Users,dc=fapps,dc=ruora,dc=local
IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=fapps,dc=ruora,dc=local
MDS_DB_URL: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(protocol=tcp)(host=faidm01.fapps.ruora.local)(port=1521))(ADDRESS=(protocol=tcp)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=idm.fapps.ruora.local)))
MDS_DB_SCHEMA_USERNAME: dev_mds
WLSHOST: faidm01.fapps.ruora.local
WLSPORT: 7001
WLSADMIN: weblogic
DOMAIN_NAME: IDMDomain
OIM_MANAGED_SERVER_NAME: oim_server1
DOMAIN_LOCATION: /u01/app/Middleware/user_projects/domains/IDMDomain


Запускаем скрипт:
/u01/app/Middleware/Oracle_IDM2/idmtools/bin/idmConfigTool.sh -configOIM input_file=oimitg.props

Перезапускаем сервера. С этого момента в oamconsole можно зайти пользователем oamadmin.

Не получается? Ошибки? У меня были следующие. Но в итоге удалось провести скрипт без ошибок.

- ClassNotFoundException (jdbc, jps) – скопируйте библиотеки ojdbc6.jar из $DB_HOME/jdbc/lib, jps-api.jar, jps-se.jar, jps-wls.jar из $MW_HOME/oracle_common/modules/oracle.jps_11.1.1 в какое-нибудь расположение (например /home/oracle/lib и перед запуском скрипта явно установите переменную окружения CLASSPATH, указывающую на эти jar-файлы).

- java.security.AccessControlException: access denied (javax.management.MBeanTrustPermission register) – на My Oracle Support нашлась статья " Error while registering Oracle JDBC Diagnosability MBean. java.security.AccessControlException: access denied (javax.management.MBeanTrustPermission register) " When Using JDBC Driver 11g [ID 1229803.1]. Сделайте, как там написано, укажите следующее разрешение в $JAVA_HOME/jre/lib/security/java.policy и повторно запустите скрипт.

grant {
// JMX Java Management eXtensions
permission javax.management.MBeanTrustPermission "register";
};

Также убедитесь, что конфигурация Weblogic Server не была взята на редактирование (освободите ее, если это так).


26. Сконфигурируем Oracle Web Tier (OHS), ранее установленный в каталог $MW_HOME/Oracle_WT1/ командой $MW_HOME/Oracle_WT1/bin/config.sh в соответствии с документацией, которую можно найти тут:

http://docs.oracle.com/cd/E25054_01/fusionapps.1111/e21032/webtier_im.htm#CHDICJID

Сконфигурируем порты статически. Содержимое staticports.ini было следующее:

[OPMN]
#This port indicates the OPMN Local Port
OPMN Local Port = 6710

[OHS]
#The http_main port for ohs component
OHS Port = 7777
#This port indicates the OHS Proxy Port
OHS Proxy Port = 7778
#This port indicates the OHS SSL Port
OHS SSL Port = 4443


.
27. Добавляем роль "IDM Administrators" в административные группы Weblogic Server, как показано в п. 18.2 гайда установки и убеждаемся, что мы можем зайти в консоль WLS пользователем weblogic_idm.


28. Устанавливаем Oracle Access Manager WebGate из $INST/webgate. WebGate требует место расположения двух GCC-библиотек (libstdc++.so.6 и libgcc_s.so.1), как описано тут:

http://www.oracle.com/technetwork/middleware/ias/downloads/10gr3-webgates-integrations-readme-154689.pdf

У меня они нашлись по адресу, полученному через следующие команды:

> gcc --print-file-name= libstdc++.so.6
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../lib64/libstdc++.so.6

> gcc --print-file-name= libgcc_s.so.1
/lib/../lib64/libgcc_s.so.1



29. Сконфигурируем WebGate 11g (в документации указана процедура для 10g) через oamconsole. Для этого временно останавливаем oam_server1 и заходим в oamconsole по 7001 порту пользователем oamadmin.

System Configuration -> Access Manager Settings -> SSO Agents -> OAM Agents -> Weblogic_IDM (убедитесь, что тип – 11g). Нужно убедиться, что Logout Redirect URL установлен в правильное значение.

Для агента IAMSuiteAgent в User Defined Parameters устанавливаем:

logoutRedirectUrl=http://faidm01.ru.oracle.com:7777/oam/server/logout


30. Сконфигурируем URL, перенаправляемые через OHS. Для этого найдем файл от WebTier:
$MW_HOME/Oracle_WT1/instances/instance1/config/OHS/ohs1/mod_wl_ohs.conf и добавим следующие хэндлеры:

<Location />
      SetHandler weblogic-handler
      WebLogicHost faidm01.fapps.ruora.local
      WebLogicPort 7001
</Location>

<Location /oim>
      SetHandler weblogic-handler
      WebLogicHost faidm01.fapps.ruora.local
      WebLogicPort 14000
</Location>

<Location /admin>
      SetHandler weblogic-handler
      WebLogicHost faidm01.fapps.ruora.local
      WebLogicPort 14000
</Location>

<Location /oam>
      SetHandler weblogic-handler
      WebLogicHost faidm01.fapps.ruora.local
      WebLogicPort 14100
</Location>

<Location /xlWebApp>
      SetHandler weblogic-handler
      WebLogicHost faidm01.fapps.ruora.local
      WebLogicPort 14000
</Location>


Перестартуйте OHS. Для этого переходим $MW_HOME/Oracle_WT1/instances/instance1/bin и выполняем следующие команды:

>./opmnctl stopall
>./opmnctl startall


Статус веб-сервера можно посмотреть:
>./opmnctl status


30. После этого SSO считается подключенным и пользователь, вошедший, например, в OIM (http://host:7777/oim) перенаправится на SSO-страницу, и, при успешной аутентификации, пройдет в приложение OIM. Если потом в том же браузере пройти в приложение OAMCONSOLE (http://host:7777/oamconsole), то будет получена ошибка, что пользователь xelsysadm не имеет достаточных привилегий для работы с OAMCONSOLE. При нажатии на Log Out система должна перенаправить на страницу SSO-входа.


31. Необходимо добавить дополнительные поля LDAP-схемы существующим в OID пользователям. Это можно сделать утилитой oimcfgtool.jar из $OIM_HOME/server/ssointg. Перед этим нужно создать файл wlfullclient.jar, как указано в документации.

> java -jar oimcfgtool.jar upgrade-ldap-users



32. LDAP-синхронизация между OIM и OID предполагает, что пользователь, созданный в OIM, автоматически создастся в OID. Попробуйте создать пользователя в OIM. У меня возникали следующие ошибки:

- oracle.iam.platform.entitymgr.vo.ConnectivityException: java.lang.NullPointerException при попытке создания LDAP-соединения. Оказалось, что нужно для IT Resource'а типа Directory Server указать "Connection pooling supported=false".

- …Name Not Found… - был неверно заведен User Search Base и Role Search Base. OIM LDAP Sync берет значения из MDS по пути /db/LDAPContainerRules.xml. Создайте файл с таким же именем, например, в $OIM_HOME/server/customMetadata/ под папкой db, скопируйте содержимое текущего LDAPContainerRules.xml из MDS (это можно сделать, подключив в JDeveloper'е MDS Connection (Resource Palette -> IDE Connections -> New…).

Содержимое моего файла LDAPContainerRules.xml:

<?xml version='1.0' encoding='UTF-8'?>
<container-rules>
<user>
<rule>
<expression>Default</expression>
<container>cn=Users,dc=fapps,dc=ruora,dc=local</container>
<description>Users</description>
</rule>
</user>
<role>
<rule>
<expression>Default</expression>
<container>cn=Groups,dc=fapps,dc=ruora,dc=local</container>
<description>Groups</description>
</rule>
</role>
</container-rules>


- java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key IAM-0080062 – наведенная ошибка, вызванная следующей.

- Caused By: javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - Failed to find orclpwdexpirationdate in mandatory or optional attribute list.]; remaining name 'cn=Test User01,cn=Users,dc=fapps,dc=ruora,dc=local'

и/или

- Caused By: javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - Failed to find orclpwdchangerequired in mandatory or optional attribute list.]; remaining name 'cn=Test User01,cn=Users,dc=fapps,dc=ruora,dc=local'

Это вызвано тем, что атрибуты orclpwdchangerequired и orclpwdexpirationdate не входят в схему OID и являются виртуальными атрибутами OVD (Oracle Virtual Directory). В моем случае был в IT Resource'е для Directory Server указан явно Server URL как ldap://host:3060. Значение было сброшено в пустое и все заработало.

Все просто, не так ли? =)


Установка и конфигурирование Oracle Identity Management 4 Fusion Apps завершены. В скором времени будут установлены сами приложения Fusion Apps и, если выяснятся новые нюансы относительно IDM, данная статья будет дополнена (или написана новая, в зависимости от объема "нюансов").

Пожалуйста, сообщите мне, если вы нашли ошибки и несоответствия, или в вашем случае процедура установки отличалась от приведенной.



No comments:

Post a Comment