Защита Oracle E-Business Suite

ОГЛАВЛЕНИЕ

"Договорившись" о наборе криптоалгоритмов в рамках "рукопожатия", SSL-клиент и сервер устанавливают защищенное соединение. Учитывая, что в Oracle E-Business Suite в качестве HTTP-сервера используется Oracle HTTP Server (OHS), реализованный на базе Apache, все было бы достаточно просто - если бы настройка SSL сводилась только к настройке Oracle HTTP Server. Однако это не так: Oracle E-Business Suite имеет многозвенную архитектуру, и в ней, помимо Oracle HTTP Server, для взаимодействия с пользователями применяется также служба Oracle Forms. Соответственно необходимо настраивать SSL и в данной службе.

Для настройки Oracle E-Business Suite рекомендуется утилита AutoConfig, которая использует для целей централизованной настройки всех приложений Oracle E-Business Suite файл контекста. Данный файл представляет собой перечень переменных OeBS и их значений в формате XML. Таким образом, вместо внесения изменений непосредственно в конфигурационные файлы служб Oracle (Oracle HTTP Server, Oracle Forms) эти изменения следует вносить в файл контекста и далее с помощью утилиты AutoConfig распространять их на сервисы OeBS.

В принципе процесс настройки SSL для служб OeBS описан в документе Oracle Note 123718.1 A Guide to Understanding and Implementing SSL with Oracle Applications, но, как показала практика, данный документ не полностью отражает все тонкости настройки SSL. Кроме того, в нем сделано много допущений, которые совсем не обязательно применимы к конечной системе. Например, в части настройки SSL для Oracle Forms предполагается, что корневой сертификат удостоверяющего центра уже содержится в дистрибутиве виртуальной машины Java от Oracle (JInitiator), однако это справедливо только в том случае, если корневой сертификат для Oracle Forms приобретен у одного из доверенных удостоверяющих центров (Verisign, Thawte и т. д.), что, очевидно, не всегда соответствует действительности.

Ради точности отметим, что наш экземпляр Oracle E-Business Suite устанавливался на платформе Red Hat Linux ES3 x86. Таким образом, команды, приведенные ниже, справедливы для этой платформы и других Unix-платформ и будут отличаться (главным образом в части путей и синтаксиса) для платформы Windows.

Итак, конфигурирование контекста можно выполнить тремя способами:

  • непосредственно редактируя файл контекста (он размещен на пути, равном значению переменной $CONTEXT_FILE );
  • используя утилиту командной строки txkrun.pl ;
  • используя Web- интерфейс Oracle Applications Manager.

Мы рекомендуем пользоваться вторым и третьим способами, так как при непосредственном внесении изменений в файл контекста велик риск ошибки. Естественно, мы рекомендуем сделать резервную копию файла контекста перед внесением каких-либо изменений.

Конфигурация, которую мы хотим реализовать, выглядит следующим образом:

  • пользователь обращается по HTTPS на URL начальной страницы Oracle E-Business Suite;
  • сервер аутентифицирует себя для пользователя, предъявляя сертификат;
  • пользователь подтверждает аутентификацию сервера и аутентифицирует себя по имени и паролю;
  • сервер допускает пользователя на рабочую страницу, генерируемую с учетом роли пользователя в системе;
  • пользователь обращается по гиперссылке для загрузки требуемого ему апплета Java;
  • сервер возвращает пользователю апплет Java по протоколу HTTPS;
  • пользователь запускает апплет посредством виртуальной машины Java от Oracle (JInitiator);
  • апплет взаимодействует с сервером Forms по протоколу HTTPS, используя для этого сервлет, запускаемый на стороне сервера.

В конфигурации по умолчанию взаимодействие ведется по протоколу HTTP. Взаимодействие апплета Java с сервером Forms происходит через выделенный порт на сервере Oracle E-Business Suite (TCP/9000); следовательно, данное взаимодействие потребует сформировать дополнительное разрешительное правило на межсетевом экране.

Таким образом, необходимо выполнить следующие общие шаги:

  • генерация ключевого материала;
  • перевод сервера Oracle HTTP Server в режим HTTPS;
  • перевод сервера Forms в режим взаимодействия через сервлет;
  • настройка рабочего места пользователя.