Советы и рекомендации по использованию подключаемого модуля Domino 6 HTTP
Это приложение содержит дополнительные сведения и рекомендации по успешному использованию новой архитектуры подключаемого модуля 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-запросах.
увеличить изображение
Рис. 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.
- Создайте следующую структуру каталогов на компьютере IIS (можно использовать любой диск) и скопируйте файл минимальной конфигурации с сервера Domino на IIS-сервер:
Скопируйте data/domino/plug-ins/plugin-cfg.xml в c:\WebSphere\AppServer\config.
- Запустите 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).
- '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).
- Скопируйте файлы data/domino/plug-ins/w32/iisWASPlugin_http.dll и plug-in_common. dll (с компьютера, на котором установлен Domino) в каталог c:\WebSphere\AppServer\bin на IIS-компьютере переднего плана.
- Запустите приложение Internet Service Manager на IIS-сервере. Если вы используете IIS, вы должны быть знакомы с инструментом конфигурирования Internet Service Manager. В Windows NT доступ к этому инструменту осуществляется через Microsoft Management Console (Консоль управления MMC), в XP этот инструмент также доступен в группе Administrative Tools (Администрирование).
- Создайте новый виртуальный каталог для экземпляра Web-сайта, из которого вы хотите работать с WebSphere. В стандартной инсталляции для этого нужно раскрыть структуру на левой панели, пока не появится элемент Default Web Site (Веб-узел по умолчанию). Щелкните правой кнопкой мыши по элементу Default Web Site (Веб-узел по умолчанию) и выберите пункт New (Создать) -> Virtual Directory (Виртуальный каталог).
Важно! Если ваша служба IIS будет использоваться в качестве службы переднего плана на сервере Domino, можно не создавать виртуальный каталог, используя Web-узел по умолчанию вместо виртуального каталога.
- Введите в поле Alias (Синоним) значение "sePlugins" (мы настоятельно рекомендуем использовать это имя).
- В поле Directory (Каталог) перейдите в каталог WebSphere bin (C:\WebSphere\AppServer\bin).
- В списке разрешений доступа установите разрешение Execute (Выполнение) и отключите все остальные разрешения.
- Нажмите Finish (Готово). В сайт добавляется виртуальный каталог "sePlugins".
- Откройте окно свойств (щелчком правой кнопкой мыши) для Web-узла по умолчанию.
- Выберите вкладку ISAPI Filters (Фильтры ISAPI). Нажмите кнопку Add (Добавить) и введите iisWASPlugin в поле Filter Name (Имя фильтра). Перейдите в поле Executable (Исполняемый файл), нажмите Browse (Обзор), откройте каталог WebSphere bin и выберите файл iisWASPlugin_http.dll.
Внимание! Будьте внимательны, чтобы не выбрать общий код подключаемого модуля; вам нужен ISAPI-интерфейс для общего кода подключаемого модуля.
- Закройте все открытые окна, нажав OK. Важно! Если при нажатии OK ISAPI был только "объявлен", столбец Priority (Приоритет) в списке ISAPI-фильтров может содержать значение *Unknown*. Это вполне нормально, так как IIS загрузит ISAPI-фильтр по требованию при первом его вызове, поэтому до первого вызова он не загружается.
- Если после нажатия OK вам требуется вернуться и проверить, что было сделано, помните о том, что будет выводиться *Unknown* и предупреждающая красная стрелка, как показано на рис. C.13. Это нормально.
На данном этапе происходит загрузка подключаемого модуля при поступлении первого запроса для сайтов, защищенных прокси-сервером, с предварительно настроенной конфигурацией по умолчанию. Одно из преимуществ конфигурации по умолчанию состоит в том, что она сообщает коду о необходимости выполнять перезагрузку файла конфигурации каждую минуту, поэтому помните о том, что любые изменения в конфигурации подключаемого модуля начинают работать автоматически, не сообщая вам о необходимости перезагрузить файл конфигурации.
После завершения отладки следует изменить этот интервал обновления с одной минуты на более подходящее значение.
- Выберите вкладку ISAPI Filters (Фильтры ISAPI). Нажмите кнопку Add (Добавить) и введите iisWASPlugin в поле Filter Name (Имя фильтра). Перейдите в поле Executable (Исполняемый файл), нажмите Browse (Обзор), откройте каталог WebSphere bin и выберите файл iisWASPlugin_http.dll.
Редактирование XML для настройки общего кода подключаемого модуля
Файл конфигурации WebSphere\AppServer\config\plugin-cfg.xml контролирует работу подключаемого модуля. Для того чтобы подключаемый модуль осуществлял ретрансляцию запросов на целевой сервер Domino, необходимо добавить директивы в файл plugin-cfg.xml, чтобы определить транспортный маршрут к серверу и шаблонные правила для пространств имен URL, определяющих запросы, подлежащие ретрансляции в Domino.
Подключаемый модуль осуществляет ретрансляцию только для запросов, соответствующих правилу пространства имен. Все остальные запросы обрабатываются Web-сервером переднего плана.
Ограничение. Пространства имен чувствительны к регистру даже на платформах Windows!
Для конфигурирования файла plugin-cfg.xml:
- Откройте plugin-cfg.xml в Notepad (Блокнот) или в любом XML-редакторе.
- Измените элемент <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>
- Добавьте следующие директивы в начало раздела <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-разделитель.