суббота, 27 апреля 2013 г.

OIM: Замена Lookup на select и локализация названий столбцов


В OIM лукапы используются в двух местах:
  1. На различных формах, например на форме редактирования и на форме просмотра пользователя (список организаций, список руководителей и т.д.)
  2. В дочерних формах - список ролей/прав
Лукап можно заменить на произвольную выборку из базы: из таблицы, из VIEW или из тех же таблиц, на основе которых строится лукап.
 
select lkv.lkv_encoded, lkv.lkv_decoded
from lkv
join lku on lku.lku_key = lkv.lku_key and lku.lku_type_string_key='Имя лукапа';

Для Oracle Identity Manager версии 9.X

Замена на формах

Для того, что бы заменить на формах, нужно отредактировать файл FormMetaData.xml Пример. Атрибут описан как лукап:
<Attribute name="-19" label="global.label.managerid" displayComponentType="LookupField" variantType="long" dataLength="50" map="Users.Manager Login">
<ValidValues lookupMethod="findUsersFiltered" operationClass="Thor.API.Operations.tcUserOperationsIntf" displayColumns="Users.User ID,Users.Last Name,Users.First Name" selectionColumn="Users.User ID"> 
</Attribute>


Атрибут описан как выборка из таблицы:
<Attribute name="-19" label="global.label.managerid" displayComponentType="LookupField" variantType="long" dataLength="50" map="Users.Manager Login">
<ValidValues lookupQuery="select usr_login, usr_last_name from usr" 
selectionColumn="USR_LOGIN"
columnNames="USR_LOGIN"/>
</Attribute>

Замена на дочерних формах


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

1. В файл локализации xlWebAdmin_ru.properties в блок "# ----- LOOKUPFIELD column headers -----" добавляем строку: lookupfield.header.test_lookup_name.CustomField=tname
(в имени лукапа пробелы заменяются знаком "_", название лукапа обязательно записываем маленькими буковками)

2. Создаем лукап:
Название лукапа (Code): Test Lookup Name.CustomField
Поле (Field): SOME_FIELD_ALIAS
Тип лукапа: Field Type
Группа (Group): Lookup Definition
Добавить строку в лукап, в которой: Code Key=CustomField, Decode=Любая строка

3. В Property лукап поля указываем:
Lookup Query=Select SOME_FIELD1 AS SOME_FIELD_ALIAS, SOME_FIELD2 from TABLE
Lookup Column Name = SOME_FIELD2 (поле из селекта, которое будет записано в форму как значение)
Column Names = SOME_FIELD_ALIAS, SOME_FIELD2
Column Captions = ...(тут можно указать что угодно)

Для Oracle Identity Manager версии 11.1.1.X

Проверено на версии 11.1.1.3.8, скорее всего подойдет и для других версий

Замена на формах

См. раздел документации Creating Entity Attributes, в таблице типов атрибутов это LOV Type -> By Query

Замена на дочерних формах

Пункты 1 и 2 см. для версии 9.X

3. В Property лукап поля указываем:
Lookup Query=Select SOME_FIELD1 AS SOME_FIELD_ALIAS, SOME_FIELD2 from TABLE
Lookup Column Name = SOME_FIELD2 (поле из селекта, которое будет записано в форму как значение)
Column Names = SOME_FIELD2
Column Captions = ...(тут можно указать что угодно)



вторник, 23 апреля 2013 г.

Oracle API Gateway. Как создать свой фильтр.


Oracle API Gateway (OAG) это бывший Oracle Enterprise Gateway.
Выполнить свой java код можно следующими способами:
  1. Используя Scripting Language Filtr вызвать нужный метод из javascript, как это делать описано тут.
  2. Написав свой собственный фильтр, который будет иметь свой интерфейс в Policy Studio. Как это сделать описано ниже. 
Как создавать свои фильтры, было хорошо описано для предыдущей версии продукта в документации. В новой версии процесс добавления нового собственного фильтра изменился.

Инструкция для версии Oracle API Gateway 11.1.2.1.0


Документация на новую версию OAG можно посмотреть тут.
В приведенном примере создается SimpleFilter который можно использовать в качестве шаблона для разработки собственных фильтров.
Для создания кастомного фильтра нужно выполнить следующие шаги:
  1. Создать два xml файла: 
    • SimpleFilter.xml - каждый фильтр имеет XML описание (TypeDoc), содержащее опредеение типов сущностей фильтра (поля, класс фильтра, параметры для логирования). 
    • sampleTypeSet.xml - используется для группировки нескольких TypeDoc. Должел лежать в той же папке, что и TypeDoc-и.
  2. Создать классы фильтра: 
    • SimpleFilter.java - каждый фильтр имеет относящийся к нему класс, который инкапсулирует данные конфигурации для конкретного экземпляра фильтра. Данный класс возвращает соответствующий класс Processor и классы Policy Studio. 
    • SimpleProcessor.java - runtime компонент, отвечающий за обработку сообщения. 
    • SimpleFilterUI.java и SimpleFilterPage.java - классы, для настройки параметров фильтра через интерфейс Polisy Studio. 
    • resources.properties - локализация для интерфейса Polisy Studio. 
    • simple.gif - иконка фильтра. 
  3. Скомпилировать классы в .jar файл, и зарегистрировать его (добавить в Runtime Dependencies в Policy Studio). Для этого:
    • Положите JAR в директорию INSTALL_DIR/ext/lib, где INSTALL_DIR это папка, в которую установлен API Gateway. 
    • В главном меню Policy Studio выберите Window -> Preferences -> Runtime Dependencies, нажмите Add и добавьте .jar в список (сделайте то же самое для всех используемых вашим фильтром сторонних JAR файлов). Перезапустите API Gateway. 
    • Перезапустите Policy Studio с флагом -clean: policystudio -clean
  4. Загрузить TypeDoc в Policy Studio, после этого фильтр станет доступным для добавления его в политику. Для этого в Policy Studio:
    • Нажмите кнопку "Edit Active Configuration".
    • В главном меню выберите Select File->Import Custom Filters
    • Выберите sampleTypeSet.xml



Теперь можно нажать кнопку Deploy, что бы изменения не потерялись после выхода из Policy Studio и использовать фильтр в политиках.

Скачать целиком архив с Netbeans проектом фильтра можно тут. Фильтр только для примера построения на его основе других фильтров и никакой логики не выполнят.

P.S. 
Приведенные в документации примеры классов поменялись. Для того, что бы написать фильтр, нужно смотрить javadoc (например из дистрибутива).
com.vordel.circuit.FilterConfigureContext нужно заменить на com.vordel.precipitate.SolutionPack

Метод setDefaultProperties() больше не используется (Deprecated. There are no global default properties.)

понедельник, 22 апреля 2013 г.

OIM: Выпущен Oracle Identity Manager коннектор для веб-сервисов версии 11.1.1.5

Коннектор позволяет построить интеграцию OIM с целевыми системами, которые предоставляют веб-сервисы и позиционируется для интеграции с облачными приложениями, предоставляющими веб-сервисы.

Коннектор доступен с 19 апреля 2013. Скачать конектор можно со страницы OTN: http://www.oracle.com/technetwork/middleware/id-mgmt/downloads/connectors-101674.html
Дкументация: http://docs.oracle.com/cd/E22999_01/index.htm (см. Connector Guide for Webservices)

Подходит для OIM версий:
Oracle Identity Manager 11g Release 1 (11.1.1.5.6) BP06 (с патчем 15971939) или более поздней
Oracle Identity Manager 11g Release 2 (11.1.2.0.1) BP01 или более поздней

Коннектор использует Identity Connector Framework (ICF). Для интеграции с целевыми веб-сервисами используется SOA (поддерживаются все версии веб-сервисов, которые поддерживаются установленной версией SOA):

Поддерживается множество целевых систем - может быть настроен для любого количества целевых систем, для разных версий одной системы и для нескольких экземпляров одной системы.
Для обеспечения безопасной передачи данных используется SSL, WS Security, специальная обработка паролей и кастомизированные SOAP заголовки

Так же поддерживаются следующие виды реконсиляции:
  • доверенная (например, для источника кадровых данных) и целевая реконсиляции
  • полная и инкриментальная реконсиляции
  • ограниченная и пакетная реконсиляции
Веб-сервис клиент коннектора вызывает ICF операции на SOA-композите. Далее запускается BPEL процесс для конкретного типа операции, например "создание", который в свою очередь вызывает операцию на целевом веб-сервисе:
 Результат выполнения операции возвращается в SOA-композит, который опционально может использовать XSLT-преобразование, для приведения структуры к формату, используемому ICF.  Такое преобразование выполняется в SOA композите и настраивается вручную.


суббота, 20 апреля 2013 г.

OIM 11G R1: Как остановить или запустить выполнение задач по расписанию в Oracle Identity Manager 11G

Oracle Identity Manager 11G R1 для выполнения задач по расписанию использует Quartz Scheduler.
Quartz это опен сорсный, полнофункциональный сервис для запуска задач по расписанию. Полную информацию о проекте, список возможных настроек и исходный код можно найти на сайте http://quartz-scheduler.org/.

В базе данных OIM можно увидеть 12 таблиц, имена которых начинаются на QRTZ... (например, QRTZ92_TRIGGERS).

Временная остановка/запуск задач по расписанию

Выполнение задач по расписанию можно остановить или запустить на одной из нод OIM, используя web интерфейс. Но после рестарта серсера OIM выполнение задач по расписанию будет зависеть от настроек, указанных в файле oim-config.xml, который хранится в MDS репозитории базы данных.

Для остановки нужно:
  1. Пройти в браузере по адресу http://OIM_HOST:OIM_PORT/SchedulerService-web/status
  2. Залогиниться от имени XELSYSADM (либо пользователя с ролью Scheduler Admin) и нажать кнопку STOP. Остановится scheduler и все зависимые триггеры не будут выполняться, но все уже запущенные job-ы продолжат выполняться.



Остановка запуска задач по расписанию на одной из нод кластера

Для остановки запуска задач на одной из нод нужно:

  1. зайти в консоль weblogic (http://HOST:7001/console)
  2. перейти в раздел Deployments
  3. выбрать в списке компонент oim(11.1.1.3.0), зайти во внутрь по ссылке-названию
  4. Выбрать в списке компонент SchedulerService-web, поставить около него галку и нажать кнопку "Change Targets"
  5. в открывшемся окне перейти на вкладку Targets и в появившемся списке кластеров и их нод снять галки с нод, на которых не должны запускаться задачи по расписанию. Нажать кнопку Save 
  6. Теперь при попытке зайти на ноду, на которой остановлен компонент SchedulerService-web, и запустить задачу - можно увидеть сообщение об ошибке: 



Глобальный запуск/остановка задач по расписанию при старте сервера

В файле oim-config.xml есть параметр startOnDeploy, его значение нужно выставить в false, что бы при старте сервера OIM не запускался сервис задач по расписанию. Подробнее описано в документации, в разделе Managing Scheduled Tasks.



пятница, 19 апреля 2013 г.

Получен новый сертификат ФСТЭК для Oracle Database 11gR2 EE c Oracle Database Vault


Выполняя обязательства перед Российскими заказчиками, желающими использовать сертифицированные средства защиты информации, Московское Представительство компании Oracle вместе с ООО "ФОРС-Центр разработки" завершило испытания ПО Oracle Database 11g R2 Enterprise Edition с установленным опциональным компонентом Oracle Database Vault и получило сертификат ФСТЭК №2858 сроком действия до 27 марта 2016 г.

Испытания проведены сразу на трех платформах - Oracle Solaris 11 SPARC, Oracle Enterprise Linux v5.8 64-bit, Microsoft Windows 2008 R2 Enterprise Edition 64-bit SP1 - для СУБД Oracle версии 11.2.0.3. Общее число дистрибутивов - 120 экземпляров.


Регламент получения сертифицированных дистрибутивов опубликован в сообщении от 28 декабря 2012 г.