Дорогие читатели,
Приятно, что не только мы принимаем участие в формировании содержательной части нашего блога, но и наши коллеги из компаний-партнеров.
Сейчас я с удовольствием хочу представить статью Натальи Семеновой, которая в настоящий момент работает в компании "Астерос". И, пользуясь случаем, хочу попросить всех коллег, работающих в сфере безопасности Oracle: если у вас есть интересный опыт, какие-то уникальные наработки или наблюдения по поводу наших продуктов и их интеграции между собой или с продуктами третьих фирм, - не стесняйтесь, присылайте ваши статьи к нам, мы по мере возможности будем их выкладывать в нашем блоге.
А теперь, собственно, статья.
Использование BI Publisher при разработке отчетов для Oracle Identity Manager
Наталья Семенова
Ведущий консультант-разработчик
Астерос
Введение
В настоящее время система централизованного управления учетными записями Oracle Identity manager (OIM) является одним из наиболее развитых средств аудита и контроля доступов к информационным ресурсам компании. Неотъемлемой частью аудита является система отчетности, позволяющая получить информацию о текущих полномочиях пользователей в информационных системах, а также об истории их изменений.
В OIM существует встроенная система отчетности, с более чем 20 предустановленными отчетами. Помимо стандартных отчетов, OIM предоставляет возможность создания дополнительных отчетов, выполненных в виде PL/SQL процедур. Система отчетности OIM обладает достаточно большим набором функций, но иногда их оказывается недостаточно.
Oracle BI Publisher позволяет расширить функциональность стандартной системы отчетности OIM: увеличить скорость выполнения отчетов, упростить процедуру разработки интерфейса отчета, добавить множество форматов, в которые можно экспортировать результаты их выполнения (MS Office, PDF, HTML и т.д.).
Если, помимо OIM, в компании развернуты другие продукты из стека Oracle Identity Management: Oracle Access manager, Oracle Role Manager или Oracle Adaptive Access Manager, то BI Publisher можно использовать, как единый интерфейс для создания, редактирования и запуска отчетов из всех этих систем.
Для BI Publisher разработано несколько отчетов для OIM, распространяемых по ограниченной лицензии (Oracle Identity Management BI Publisher Reports package), что позволяет использовать их в качестве образца при разработке собственных отчетов.
В данной статье описывается процесс установки BI Publisher на сервер приложений, где развернут OIM, настройки OIM в качестве источника данных для BI, а также показано, как создать несложный аудиторский отчет.
Инсталляция Oracle BI Publisher 10.1.3.3 на Weblogic Server 8.1 sp6
В данной статье предполагается, что установка BI Publisher будет осуществляться на сервер приложений, где ранее был установлен OIM 9.1.0.1, который и будет служить источником данных для создания отчетов.
Далее описаны последовательные шаги по установке BI Publisher и настройке источника данных для отчетности.
1. Заходим в WebLogic Server Administration Console и создаем новый инстанс сервера: Managed Server: Mydomain => Servers => Configure a new server… Указываем имя сервера (например, bipublisher) и порт (например, 8101). Запускаем созданный сервер
2. Распаковываем архив приложения BI Publisher xmlpserver.war, последовательно выполнив следующие команды:
а. mkdir C:\BIPub\xmlpserver.war
b. cd C:\BIPub\xmlpserver.war
c. jar -xvf manual\generic\xmlpserver.war
3. Возвращаемся в административную консоль и выполняем установку приложения: Mydomain => Deployments => Web Application Modules => Deploy a new Web Application Module... На странице Select the archive for this Web application module выбираем путь к директории C:\BIPub\xmlpserver.war.
Ставим галочку, что надо запускать Веб-приложение из ранее выбранной директории - C:\BIPub\xmlpserver.war
Weblogic автоматически выполнит deploy и запустит сервер.
4. Теперь необходимо настроить путь к папке с отчетами
- Копируем папку XMLP в C:\BIPub.
- Открываем файл C:\BIPub\xmlpserver.war\WEB-INF\ xmlp-server-config.xml, в качестве значения параметра file path указано значение %s_Reports_Path%. Меняем это значение на путь к директории XMLP - C:/BIPub/XMLP.
- Копируем шрифты из директории fonts в %JAVA_HOME%\jre\lib\fonts (%JAVA_HOME% - домашняя директория JAVA, на которую поставлен Weblogic domain). Это необходимо для корректной поддержки русских шрифтов.
5. Перезапускаем сервер bipublisher
Настройка OIM в качестве источника данных для отчетов BI Publisher.
1. Заходим в консоль BI Publisher (http:\\localhost:8101\xmlpserver), пользователь по умолчанию - Administrator / Administrator.
2. Переходим на вкладку Admin =>Data Sources=>JDBC Connections=>Add Data Source.
3. Создаём коннект к БД OIM.
- Data Source Name – OIM JDBC
- Connection String - jdbc:oracle:thin:@::
- Username (пользователь БД OIM)
- Password
- Database Driver Class - oracle.jdbc.OracleDriver

4. Создаём пользователей для доступа к отчётам, в соответствии с уровнем доступа, который нужно обеспечить при обращении к БД OIM. Например, пользователь xelsysadm будет иметь доступ ко всем объектам OIM, т.е. в отчётах будет выводиться полная информация. Для пользователей, не являющихся администраторами OIM, в отчётах будет выводиться только информация о доступных им объектах. Если запускать отчеты от имени несуществующего в OIM пользователя, то отчёт будет пуст.
После создания пользователя переходим на вкладку Admin => Security Center => Users=>Assign Role и добавляем ему роль BI Publisher Administrator.

Создание отчета о событиях реконсиляции за период
В терминологии OIM под процессом реконсиляции (reconciliation) понимается процесс загрузки данных из подключенной информационной системы. Чаще всего загружаются данные о пользователях и информационных ролях. Изучение данных о реконсиляции, проведенной из информационной системы, позволяет выявить несоответствия между информацией о текущих доступах пользователей, хранящейся в OIM, и фактическими доступами пользователей. Например, если в информационной системе имеется учетная запись, о которой «не знает» OIM, это может означать, что данная учетная запись была создана администратором системы в обход OIM, возможно, с нарушением действующих регламентов информационной безопасности.
Среди стандартных отчетов OIM отсутствует отчет, позволяющий анализировать данные о событиях реконсиляции.
Ниже описаны шаги по созданию в BI Publisher отчета, выводящего данные о событиях реконсиляции. Результаты отчета можно отфильтровать по информационным системам или по периоду их генерации.
1. Заходим в консоль BI Publisher (пользователь xelsysadm, либо любой другой пользователь с правом создания отчетов и просмотра данных в БД OIM).
2. Переходим на вкладку Reports – Shared Folders – Create New folder и создаем папку, куда мы будем помещать все созданные для OIM отчеты. Например, OIM Reports.
3. Выбираем пункт «Create a new report» и вводим его имя – Recon Events. Выбираем пункт Edit рядом с заголовком созданного отчета. Откроется окно редактирования свойств отчета.

4. Необходимо убедиться, что источником данных для отчета выступает созданный нами источник OIM JDBC.
5. Определим значения, которые могут принимать параметры отчета, имеющие тип «Выпадающий список». Таких параметров будет 3: «Имя объекта», «Статус событий», «Тип отчета».
- Для поля «Тип отчета» зададим просто ограничение, состоящее из двух значений

- Для поля «Имя объекта» зададим ограничение, допускающее выбор любой информационной системы, зарегистрированной в OIM, для которой есть хотя бы одно событие реконсиляции.

- Для поля «Статус событий» зададим ограничение LOV_EVSTATUS на выбор любого статуса, в котором находится хотя бы одно событие реконсиляции.
В поле SQL Query введем следующий запрос:
select r.RCE_STATUS
from RCE r
group by r.RCE_STATUS
6. Определим входные параметры отчета. Данный отчет имеет 5 входных параметров: «Дата С», «Дата По» (задают временной диапазон событий), «Имя объекта» (ограничивает выводимые события по объекту), «Статус событий» (выводить события только в определенном статусе), «Тип отчета» (полный или краткий)
- Параметр «Дата С»: Identifier=p_DateFrom, Data Type = String, Parameter Type=Text, Display Label = «Дата С»
- Параметр «Дата По»: Identifier=p_DateTo, Data Type = String, Parameter Type=Text, Display Label = «Дата По»
- Параметр «Тип отчета»: Identifier=p_Full, Data Type = String, Default Value = SUMM, Parameter Type=Menu, Display Label = «Тип отчета», List of Values = LOV_FULL
- Параметр «Имя объекта»: Identifier=p_ObjectName, Data Type = String, Parameter Type=Menu, Display Label = «Имя объекта», List of Values = LOV_OBJNAME, Can select All = true
- Параметр «Статус событий»: Identifier=p_status, Data Type = String, Parameter Type=Menu, Display Label = «Статус событий», List of Values = LOV_EVSTATUS, Can select All = true
7. Создадим модель данных для нашего отчета. Для этого нужно выбрать пункт меню Data Model и нажать кнопку New.
- Выбираем тип модели – Data Template. В поле Data Template отобразится заготовка для шаблона.
- опишем входные параметры отчета

11. После сохранения всех внесенных изменений отчет готов к запуску.
Дополнительные материалы к отчету
Готовый отчет, созданный при выполнении описанных в статье шагов, доступен для загрузки по адресу: http://sites.google.com/site/russianoraclesecurityteam/file-cabinet/rce.rar?attredirects=0&d=1
Для того чтобы разработанный отчет стал доступен через BI Publisher, достаточно извлечь архив в папку C:\BIPub\XMLP\Reports.
Заключение.
Перевод отчетности Identity Management-приложений в BI Publisher не несет в себе множество дополнительных возможностей, как для централизованного аудита информационной безопасности, так и для контроля числа учетных записей пользователей в различных информационных системах. Последнее очень актуально в случае, когда лицензии на программное обеспечение приобретаются на каждого пользователя, и помогает выявить «мертвые» учетные записи, которым уже не требуется лицензирование.
Как показано в статье, разработка отчета для OIM в BI Publisher является менее трудоемкой, чем с помощью стандартной системы отчетности OIM, так как выполняется полностью через web-интерфейс (за исключением, может быть, написания и отладки sql-запроса). Для переноса готового отчета в BI Publisher достаточно скопировать их в соответствующую папку, в то время как в OIM процедура переноса состоит из импорта PL/SQL-процедуры, и выполнения ряда запросов к БД OIM. Учитывая, что Oracle выпустила набор готовых Identity Management-отчетов для BI, думается, что перевод отчетности на платформу BI Publisher станет тенденцией в будущих внедрениях IDM-продуктов.