Oracle Business Intelligence

Источник: easyoraidm
Олег Файницкий

Интеграция Oracle Identity Manager 11g и Oracle ESSO 11.1.1.2

Short introduction: here you can find a short guide, how to integrate OIM 11g & OESSO 11g using connector provided.

Основная статья-гайд по интеграции Oracle Identity Manager и ESSO располагается в лабораторных работах по OIM9.1 & ESSO (работы 12 и 13), здесь же рассмотрим особенности интеграции новых версий - Oracle Identity Manager 11g (11.1.1.3.0.3) и Oracle Enterprise Single Sign-on 11g (11.1.1.2.0). Несмотря на то, что формально коннектор ESSO к OIM версию OIM 11g не поддерживает, интеграция возможна и не существенно отличается от ранее проведенной.



Рассмотрим изменения в продуктах, коснувшиеся технологии интеграции. OIM 11g использует новый Oracle Weblogic Server, с которым уже идут некоторые библиотеки (но других версий), используемые коннектором. И если делать все по инструкции, приведенной в документации к коннектору, то вы получите следующую ошибку:

"The add_credential execution failed. Error: Error in sending instruction from provisioning manager in Api Command (400) Bad Request. Add Credential Command failed to get invoked". При этом на стороне ESSO в Windows Event Viewer вы увидите ошибку:

"Unexpected end tag. Line 6, position 1015", "server cannot clear headers after http headers have been sent".

Если снять пакет, передаваемый клиентом на сервер, то будет видно, что передается некорректный XML, характеризуемый неверным последним закрывающим тэгом "</#document>". Если посмотреть пакет, отправляемый при интеграции с OIM9.1.X, то там этого тэга не будет. По видимому, данная ошибка связана с несовместимостью версий библиотек, используемых Oracle Weblogic 10.3.3 (11g) или OIM 11g с библиотеками, используемыми коннектором ESSO.

Кроме того, в коннекторе, поставляемым с ESSO 11g, реализована функция выноса файла конфигурации PMClientConfiguration.properties  из JAR-файла коннектора на файловую систему. И сигнатура методов поменялась - добавился новый входящий параметр, указывающий на расположение этого файла. Поэтому в инструкции, приведенные в работах 12 и 13, необходимо добавить новый параметр при настройке маппинга коннектора (является последним параметром, передаваемый в методы, следом за Service Password).

Вторую задачу решить несложно - достаточно указать в качестве последнего параметра расположение файла (полный путь - например,  '/home/oracle/PMClientConfiguration.properties' ), но для решения проблемы несовместимости библиотек, необходимо заставить коннектор использовать именно те библиотеки, которые совместимы с коннектором. Один из способов - прописать библиотеки (и jar самого коннектора) в CLASSPATH загрузки сервера приложений. Например, можно вставить следующий фрагмент в скрипте startWeblogic.sh / cmd перед командой запуска сервера приложений:

${JAVA_HOME}/bin/java ${JAVA_VM} -version

CLASSPATH="/home/oracle/Oracle/Middleware/libs/activation.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/axis-1.2.1.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/axis-ant-1.2.1.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/bcprov-jdk13-128.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/com.oracle.ws.orawsdl_1.2.0.0.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/commons-discovery-0.2.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/commons-logging-1.0.4.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/EncryptionTool.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/jaxp-api.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/jaxrpc.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/mail.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/opensampl-1.0.1.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/PMAPIInvoker_6.0.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/PMCLI.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/saaj.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/wss4j.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/xalan.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH="/home/oracle/Oracle/Middleware/libs/xercesImpl.jar:${CLASSPATH}"
export CLASSPATH

CLASSPATH=/home/oracle/Oracle/Middleware/libs/xmlsec-1.3.0.jar:${CLASSPATH}
export CLASSPATH

CLASSPATH=/home/oracle/Oracle/Middleware/libs/OIMConnector6.0.jar:${CLASSPATH}
export CLASSPATH

echo ${CLASSPATH}

if [ "${WLS_REDIRECT_LOG}" = "" ] ; then
….. (запуск сервера приложений)

Предполагается, что указанные библиотеки предварительно были скопированы в '/home/oracle/Oracle/Middleware/libs' ). Кроме того, подобная загрузка заставляет коннектор ESSO искать файл PMClientConfiguration.properties в JAR-файлах загрузки, и самым простым решением оказалось установить параметры соединения в файле PMClientConfiguration.properties внутри JAR-файла OIMConnector6.0.jar (по пути 'com\passlogix\integration\provision\conf\apiclientconf' ), его необходимо распаковать, отредактировать и запаковать обратно. 

Пример установки параметров соединения с ESSO PG:

javaCLI.serviceurl=http://10.10.19.200/v-GO PM Service/UP.asmx
javaCLI.serviceuser=DOMAIN\SSOSERVICES
javaCLI.serviceuserpassword=p@ssw0rd

В итоге интеграция завершилась удачно.

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


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=25890