Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 629 / 31 | Оценка: 4.83 / 5.00 | Длительность: 42:11:00
Дополнительный материал 3:

Советы и рекомендации по использованию подключаемого модуля Domino 6 HTTP

< Дополнительный материал 2 || Дополнительный материал 3: 1234
Ключевые слова: приложение, HTTP, WSC, CFG, CML, sticky-notes, affinity

Это приложение содержит дополнительные сведения и рекомендации по успешному использованию новой архитектуры подключаемого модуля Domino 6 HTTP, описанного в разделе 11.2.2, "Подключаемые модули HTTP-сервера".

Определение специальных HTTP-заголовков

Как говорилось ранее в этом курсе, параметр HTTPEnableConnectorHeaders в файле Notes.ini включает задачу Domino HTTP для обработки специальных заголовков, добавляемых к запросам архитектурой подключаемого модуля Web-Sphere, установленного на Web-серверах переднего плана.

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

Параметр HTTPEnableConnectorHeaders поддерживает следующие значения:

  • 0. Задача Domino HTTP не обрабатывает специальные заголовки. В целях безопасности задача HTTP игнорирует эти заголовки, если не включен соответствующий параметр.
  • 1. Задача Domino HTTP обрабатывает специальные заголовки.

Ограничение. При включении этого значения предполагается, что вы знаете о возможном риске, а также знаете, как защитить прямой доступ к порту, прослушиваемому встроенным http.

После включения параметра в файл notes.ini HTTP-стек Domino осуществляет поиск следующих специальных заголовков в получаемых им HTTP-запросах.

Не забудьте перезапустить HTTP после установки значения параметра HTTPEnableConnectorHeaders=1

увеличить изображение
Рис. c.1a. Не забудьте перезапустить HTTP после установки значения параметра HTTPEnableConnectorHeaders=1

Примечание. При установке в параметре LogLevel значения TRACE в XML-файле конфигурации подключаемого модуля можно увидеть, какие заголовки были фактически добавлены для данного запроса.

$WSAT. Тип аутентификации, используемый для этого запроса.

$WSCC. Сертификат клиента, применяемый для этого запроса. Если значение не зашифровано Web-сервером с использованием кодировки base64, подключаемый модуль выполнит его шифрование с применением кодировки base64, прежде чем пересылать его на сервер приложений.

$WSCS. Набор шифров, согласованных между Web-сервером и клиентом. Может не соответствовать набору шифров, используемых подключаемым модулем для отправки запроса на сервер приложений.

$WSIS. Этому заголовку устанавливается значение True или False, в зависимости от того, защищен ли запрос (поступил ли он через SSL/TLS).

$WSSC. Схема, используемая для запроса. Этому заголовку обычно устанавливается значение http или https.

$WSPR. Уровень HTTP-протокола, используемый для этого запроса. В настоящее время подключаемый модуль поддерживает запросы до HTTP/1.1.

$WSRA. IP-адрес удаленного компьютера, на котором запущен клиент.

$WSRH. Имя хоста удаленного компьютера, на котором запущен клиент. Если имя хоста не может быть разрешено, в этом заголовке может быть задан IP-адрес.

$WSRU. Удаленный пользователь, определенный для данного запроса.

$WSSN. Имя сервера, используемое для данного запроса. Должно соответствовать значению, заданному в заголовке HOST входящего запроса.

$WSSP. Порт сервера, по которому был получен запрос. Соответствует значению порта, используемому при определении маршрута.

$WSSI. Идентификатор SSL-сеанса, используемый для этого запроса. Если значение не зашифровано Web-сервером с применением кодировки base64, подключаемый модуль выполнит его шифрование с использованием кодировки base64, прежде чем пересылать его на сервер приложений

Следует обязательно защитить среду

При использовании новой модели подключаемого модуля важно подчеркнуть тот факт, что Domino "полностью" доверяет информации, передаваемой в этих специальных HTTP-заголовках. Например, вместо того чтобы использовать IP-адрес клиента, записанный HTTP-стеком Domino во время HTTP-запроса, Domino доверяет IP-адресу, заданному в специальном заголовке $WSRA. Другой пример: вместо того чтобы определять имена пользователей и другие параметры самостоятельно, Domino доверяет имени пользователя, заданному в специальном заголовке $WSRU, так как Domino предполагает, что пользователь был должным образом аутентифицирован и проверен сервером переднего плана!

Поэтому не устанавливайте значение HttpEnableConnectorHeaders =1 в файле notes.ini, если вы не имеете стопроцентной уверенности в том, что на ваш сервер Domino может поступать только трафик, сгенерированный поддерживаемым подключаемым модулем HTTP переднего плана. В противном случае хакеры могут создавать запросы, имеющие вид аутентифицированных запросов, используя специальные HTTP-заголовки.

Убедитесь в том, что ваш брандмауэр и сетевая среда ограничивают трафик между серверами переднего и заднего плана и что Domino принимает трафик только с IP-адреса подключаемого модуля Web-сервера благодаря новым возможностям IP-фильтрации в Domino 6.

Установка подключаемого модуля на IIS-сервере

Важно! В более ранних версиях документации по возможностям этого подключаемого модуля в слове "PlugIn" присутствовал дополнительный дефис ("Plug-In") в имени нового создаваемого текстового параметра ("Plugin Config") на этапе работы с редактором реестра. На этом этапе в подключаемом модуле задается имя файла конфигурации, который, в свою очередь, содержит имя создаваемого файла журнала. Пожалуйста, обратите на это особое внимание, так как, если в текстовом значении NAME будут опечатки, подключаемый модуль не загрузится и единственный ключ (сообщение в EventViewer) является довольно неопределенным.

В этом разделе приведены некоторые инструкции по успешной установке подключаемого модуля WebSphere Application Server на сервере Microsoft IIS.

  1. Создайте следующую структуру каталогов на компьютере IIS (можно использовать любой диск) и скопируйте файл минимальной конфигурации с сервера Domino на IIS-сервер:

    Скопируйте data/domino/plug-ins/plugin-cfg.xml в c:\WebSphere\AppServer\config.

    Структура каталогов, которую требуется создать на диске C на IIS-сервере

    Рис. c.1. Структура каталогов, которую требуется создать на диске C на IIS-сервере
  2. Запустите RegEdit.exe (откройте файл реестра Windows) и создайте следующий путь ключа: HKEY_LOCAL_MACHINE - SOFTWARE - IBM - WebSphere Application Server - 4.0.

    Выберите 4.0 и создайте новый текстовый параметр "Plugin Config". В качестве значения для этого параметра задайте расположение файла plugin-cfg.xml (C:\WebSphere\AppServer\config\plugin-cfg.xml).

    При установке подключаемых модулей версии WAS5.x необходимо также создать следующие записи (с использованием RegEdit):

    • 'HKEY_LOCAL_MACHINE' - 'SOFTWARE' - 'IBM' - 'WebSphere Application Server' - '5.0'. Выберите '5.0' и создайте новый текстовый параметр 'BinPath'. В качестве значения для этого параметра задайте расположение, в которое скопирован подключаемый модуль (C:\WebSphere\AppServer\bin).
      Точное, исправленное имя параметра для редактирования реестра!

      Рис. c.2. Точное, исправленное имя параметра для редактирования реестра!
    • 'HKEY_LOCAL_MACHINE' - 'SOFTWARE' - 'IBM' - 'WebSphere Application Server' - '5.0'. Выберите '5.0' и создайте новый текстовый параметр 'InstallLocation'. В качестве значения для этого параметра задайте расположение, соответствующее корневому каталогу WAS (C:\WebSphere\AppServer).
    • 'HKEY_LOCAL_MACHINE' - 'SOFTWARE' - 'IBM' - 'WebSphere Application Server' - '5.0'. Выберите '5.0' и создайте новый текстовый параметр 'LibPath'. Установите значение этого параметра (C:\WebSphere\AppServer\lib).
    • 'HKEY_LOCAL_MACHINE' - 'SOFTWARE' - 'IBM' - 'WebSphere Application Server' - '5.0'. Выберите '5.0' и создайте новый текстовый параметр 'MajorVersion'. Установите значение этого параметра (5).
    • 'HKEY_LOCAL_MACHINE' - 'SOFTWARE' - 'IBM' - 'WebSphere Application Server' - '5.0'. Выберите '5.0' и создайте новый текстовый параметр ' plug - in Config'. В качестве значения для этого параметра задайте расположение файла plug-in-cfg.xml (C:\WebSphere\AppServer\config\plug-in-cfg.xml).
    Библиотеки (DLL), копируемые в каталог bin в IIS

    Рис. c.3. Библиотеки (DLL), копируемые в каталог bin в IIS
  3. Скопируйте файлы data/domino/plug-ins/w32/iisWASPlugin_http.dll и plug-in_common. dll (с компьютера, на котором установлен Domino) в каталог c:\WebSphere\AppServer\bin на IIS-компьютере переднего плана.
  4. Запустите приложение Internet Service Manager на IIS-сервере. Если вы используете IIS, вы должны быть знакомы с инструментом конфигурирования Internet Service Manager. В Windows NT доступ к этому инструменту осуществляется через Microsoft Management Console (Консоль управления MMC), в XP этот инструмент также доступен в группе Administrative Tools (Администрирование).
    Основной экран IIS Manager

    увеличить изображение
    Рис. c.4. Основной экран IIS Manager
  5. Создайте новый виртуальный каталог для экземпляра Web-сайта, из которого вы хотите работать с WebSphere. В стандартной инсталляции для этого нужно раскрыть структуру на левой панели, пока не появится элемент Default Web Site (Веб-узел по умолчанию). Щелкните правой кнопкой мыши по элементу Default Web Site (Веб-узел по умолчанию) и выберите пункт New (Создать) -> Virtual Directory (Виртуальный каталог).

    Важно! Если ваша служба IIS будет использоваться в качестве службы переднего плана на сервере Domino, можно не создавать виртуальный каталог, используя Web-узел по умолчанию вместо виртуального каталога.

    1. Введите в поле Alias (Синоним) значение "sePlugins" (мы настоятельно рекомендуем использовать это имя).
    2. В поле Directory (Каталог) перейдите в каталог WebSphere bin (C:\WebSphere\AppServer\bin).
    3. В списке разрешений доступа установите разрешение Execute (Выполнение) и отключите все остальные разрешения.
    4. Нажмите Finish (Готово). В сайт добавляется виртуальный каталог "sePlugins".
    Вызов мастера создания виртуального каталога

    увеличить изображение
    Рис. c.5. Вызов мастера создания виртуального каталога
    Назначение имени виртуального каталога

    Рис. c.6. Назначение имени виртуального каталога
  6. Откройте окно свойств (щелчком правой кнопкой мыши) для Web-узла по умолчанию.
    1. Выберите вкладку ISAPI Filters (Фильтры ISAPI). Нажмите кнопку Add (Добавить) и введите iisWASPlugin в поле Filter Name (Имя фильтра). Перейдите в поле Executable (Исполняемый файл), нажмите Browse (Обзор), откройте каталог WebSphere bin и выберите файл iisWASPlugin_http.dll.
      Выбор каталога, инициирующего подключаемые модули

      Рис. c.7. Выбор каталога, инициирующего подключаемые модули
      Назначение разрешений для каталога sePlugIns

      Рис. c.8. Назначение разрешений для каталога sePlugIns
      Подтверждение в мастере виртуального каталога

      Рис. c.9. Подтверждение в мастере виртуального каталога
      Свойства Web-узла по умолчанию

      Рис. c.10. Свойства Web-узла по умолчанию

      Внимание! Будьте внимательны, чтобы не выбрать общий код подключаемого модуля; вам нужен ISAPI-интерфейс для общего кода подключаемого модуля.

    2. Закройте все открытые окна, нажав OK. Важно! Если при нажатии OK ISAPI был только "объявлен", столбец Priority (Приоритет) в списке ISAPI-фильтров может содержать значение *Unknown*. Это вполне нормально, так как IIS загрузит ISAPI-фильтр по требованию при первом его вызове, поэтому до первого вызова он не загружается.
    3. Если после нажатия OK вам требуется вернуться и проверить, что было сделано, помните о том, что будет выводиться *Unknown* и предупреждающая красная стрелка, как показано на рис. C.13. Это нормально.
      Добавление ISAPI-интерфейса в общий код подключаемого модуля

      Рис. c.11. Добавление ISAPI-интерфейса в общий код подключаемого модуля
      Нажмите OK два раза

      Рис. c.12. Нажмите OK два раза
      До выполнения первой транзакции такое содержание окна является нормальным

      Рис. c.13. До выполнения первой транзакции такое содержание окна является нормальным
      Подключаемый модуль все еще требует конфигурирования!

      Рис. c.14. Подключаемый модуль все еще требует конфигурирования!

      На данном этапе происходит загрузка подключаемого модуля при поступлении первого запроса для сайтов, защищенных прокси-сервером, с предварительно настроенной конфигурацией по умолчанию. Одно из преимуществ конфигурации по умолчанию состоит в том, что она сообщает коду о необходимости выполнять перезагрузку файла конфигурации каждую минуту, поэтому помните о том, что любые изменения в конфигурации подключаемого модуля начинают работать автоматически, не сообщая вам о необходимости перезагрузить файл конфигурации.

      После завершения отладки следует изменить этот интервал обновления с одной минуты на более подходящее значение.

Редактирование XML для настройки общего кода подключаемого модуля

Файл конфигурации WebSphere\AppServer\config\plugin-cfg.xml контролирует работу подключаемого модуля. Для того чтобы подключаемый модуль осуществлял ретрансляцию запросов на целевой сервер Domino, необходимо добавить директивы в файл plugin-cfg.xml, чтобы определить транспортный маршрут к серверу и шаблонные правила для пространств имен URL, определяющих запросы, подлежащие ретрансляции в Domino.

Подключаемый модуль осуществляет ретрансляцию только для запросов, соответствующих правилу пространства имен. Все остальные запросы обрабатываются Web-сервером переднего плана.

Ограничение. Пространства имен чувствительны к регистру даже на платформах Windows!

Для конфигурирования файла plugin-cfg.xml:

  1. Откройте plugin-cfg.xml в Notepad (Блокнот) или в любом XML-редакторе.
  2. Измените элемент <Transport> таким образом, чтобы он указывал на требуемый сервер Domino. Для этого измените параметры Hostname и Port на значения, необходимые для того, чтобы подключаемый модуль мог получить доступ к задаче HTTP на сервере заднего плана.

    Например:

    <!-- Server groups provide a mechanism of grouping servers together.
    -->
    <ServerGroup Name="default_group">
    <Server Name="default_server">
    < T r a n s p o r t H o s t n a m e = " m y d o m i n o . s e r v e r . c o m " P o r t = " 8 1 "
    Protocol="http"/>
    </Server>
    </ServerGroup>
  3. Добавьте следующие директивы в начало раздела <UriGroup>. Эти директивы определяют общие URL-шаблоны, необходимые для доступа к Web-приложениям Domino.
    <UriGroup Name="default_host_URIs">
    <Uri Name="*/icons/*">
    <Uri Name="*/domjava/*">
    <Uri Name="*/.nsf*">

    Ограничение. Имена URI чувствительны к регистру.

    Все подключаемые модули WebSphere Application Server автоматически считывают файл конфигурации каждую минуту (или в соответствии с параметрами, заданными в самом файле конфигурации) для приема изменений. Если вы не хотите ждать столько времени, необходимо остановить и перезапустить Web-сервер переднего плана. В случае подключаемого модуля IIS необходимо остановить службу World Wide Web Publishing Service в панели управления службами Windows и затем перезапустить веб-сайт из Internet Services Manager. Простая остановка и перезапуск Web-сайта не сработают, так как динамическая библиотека подключаемого модуля не будет перезагружена. Так как при запуске службы Web-публикации IIS происходит запуск службы администратора IIS, может потребоваться остановить обе эти службы.

    Если ваше приложение Domino требует использования дополнительных пространств имен, можно также создать директивы <Uri> для этих шаблонов.

    Внимание! Если не ясно, почему не работает определенная конфигурация, проверьте правильность синтаксиса XML. Чрезвычайно простой, но эффективный способ проверки соответствия количества открывающих и закрывающих угловых скобок ( < и > ) состоит в том, чтобы открыть файл plugin-cfg.cml в Internet Explorer (локально). IE укажет лишний или пропущенный XML-разделитель.

< Дополнительный материал 2 || Дополнительный материал 3: 1234