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, данная статья будет дополнена (или написана новая, в зависимости от объема "нюансов").
Пожалуйста, сообщите мне, если вы нашли ошибки и несоответствия, или в вашем случае процедура установки отличалась от приведенной.
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