Управляя распределенной (XA) транзакцией, менеджер транзакций должен иметь возможность связываться со всеми участниками транзакции. Т.е. со всеми серверами и ресурсами в ней участвующими. Коммуникационные каналы настраиваются в зависимости от того, куда направляется транзакция:
Каналы коммуникации для транзакций должны быть защищенными, чтобы предотвращать от атак вида человек посредине. Сервер приложений Oracle WebLogic предоставляет следующие опции для защиты коммуникационных каналов:
Рассмотрим преимущества и недостатки данных режимов.
Cross Domain Security
Security Interoperability Mode
Включение Cross Domain Security
Важно! Такие подсистемы, как JMS, JTA, MDB и глобальная репликация сессии (WAN) поддерживают Cross-Domain Security, однако контейнер EJB - нет.
В настройках домена необходимо поставить галочку Cross Domain Security Enabled. Здесь же можно задать т.н. список исключений (Excluded Domain Names). О чем идет речь? Если есть транзакция, включающая в себя сервера домена А и домена Б, при этом на домене А настроено Cross Domain Security, а на домене Б - нет, то такую транзакцию можно реализовать, добавив домен Б в список исключений домена А. В таком случае для установки соединения между доменами A и Б будет использоваться механизм Security Interoperability Mode.
Если при этом есть другая транзакция между доменами А, В и Г, но домен Б туда не входит, то его необязательно включать в список исключений для доменов В и Г.
На каждом домене, входящем в доверенную пару (домен А доверяет домену Б, а домен Б - домену А), необходимо создать по пользователю, обладающему ролью CrossDomainConnector, т.е. входящему в группу CrossDomainConnectors.
Крест-накрест, на противоположном домене должен быть настроен т.н. Credential Mapping с использованием протокола cross-domain-protocol на этого созданного пользователя в данном домене.
Включение Security Interoperability Mode
Для настройки Security Interoperability Mode нужно выполнить следующие шаги:
Важно! При использовании режима performance не требуется включать доверие между доменами.
Для включения доверия между доменами необходимо установить учетные записи для всех доменов (domain credentials) в одно и то же значение. По умолчанию значение для domain credential генерируется случайным образом при создании домена, таким образом никакие два домена в системе не будут иметь одинаковые значение учетной записи. Необходимо на вкладке domain -> Security -> General, Advanced каждого домена изменить значения полей Credential и Confirm Credential на выбранное значение.
Каждый участвующий в транзакции домен должен установить значение режим Security Interoperability Mode в одно и то же значение:
Установить режим можно так: в дереве выбрать домен и на странице domain -> Security -> General, Advanced выбрать значение свойства Security Interoperability Mode.
После включение Security Interoperability Mode между доменами, в которых присутствуют так же и управляемые сервера, необходимо перезапустить и административные сервера доменов, и все управляемые сервера в этих доменах. Если данный шаг не выполнить, то сервера, которые не были перезапущены, не будут доверять перезапущенным серверам.
Для получения доступа к ресурсам JNDI, требующим административных прав, необходимо, при включенном административном канале - выставить свойство Security Interoperability Mode в значение default и разрешить доверие между доменами. Если административный канал выключен, то выставить свойство Security Interoperability Mode в значение compatibility (т.к. kernel identity должно передаваться) и разрешить доверие между доменами.
Понравилось сообщение - подпишитесь на блог
- Inter-domain - коммуникация между серверами, участвующими в транзакции и расположенными не в одном и том же домене
- Intra-domain - коммуникация между серверами, участвующими в транзакции и расположенными в одном и том же домене.
Каналы коммуникации для транзакций должны быть защищенными, чтобы предотвращать от атак вида человек посредине. Сервер приложений Oracle WebLogic предоставляет следующие опции для защиты коммуникационных каналов:
- Cross Domain Security - используется отображение учетных данных пользователей для настройки совместимого коммуникационного канала между серверами в транзакциях между доменами. Хотя это требует более сложной конфигурации, Cross Domain Security позволяет настроить доверие между отдельными доменами.
- Security Interoperability Mode - устанавливает доверие между всеми доменами, которые участвуют в транзакции, путем
установки для учетных данных всех доменов (domain credentials) совпадающих значений, т.е. principal из одного домена разрешен и в других. Этот режим проще для настройки чем Cross Domain Security, однако некоторые настройки Security Interoperability Mode полагаются на доверие домена и менее безопасны.
Рассмотрим преимущества и недостатки данных режимов.
Cross Domain Security
- Преимущества
- Должны быть настроены отдельные пользователи для установки попарного соединения между доменами.
- При использовании SSL защищает от атак вида "человек посредине".
- Должны быть настроены отдельные пользователи для установки попарного соединения между доменами.
- Недостатки
- Более сложная конфигурация.
- Любые изменения в логике исполнения транзакции, такие как изменение набора участников транзакции, ролей участников (с координатора на ресурс или со-координатора), добавление или удаление домена, изменение маршрута прохождения транзакции требуют соответствующего изменения конфигурации.
- Более сложная конфигурация.
Security Interoperability Mode
- Преимущества
- Очень прост для настройки.
- Не требует понимания логики транзакции при своей настройке.
- Допускает обратную совместимость с WebLogic 8.1 (судя по ситуации с WebSphere Application Server 7 у крупнейших заказчиков IBM, даже в 2017-м году это может быть актуально).
- При использовании режима default, включение административного канала защищает от атак вида "человек посредине".
- Очень прост для настройки.
- Недостатки
- Доверие транзитивно: если домен А доверяет домену Б и домен Б доверяет домену В, то домен А будет доверять домену В.
- При установке режима compatibility, доверие между доменами распространяется также и на административные привилегии. Т.е. администратор домена А будет иметь административные права и в домене Б.
- В некоторых конфигурациях остаются возможности для атак вида "человек посредине".
- Доверие транзитивно: если домен А доверяет домену Б и домен Б доверяет домену В, то домен А будет доверять домену В.
Включение Cross Domain Security
Важно! Такие подсистемы, как JMS, JTA, MDB и глобальная репликация сессии (WAN) поддерживают Cross-Domain Security, однако контейнер EJB - нет.
В настройках домена необходимо поставить галочку Cross Domain Security Enabled. Здесь же можно задать т.н. список исключений (Excluded Domain Names). О чем идет речь? Если есть транзакция, включающая в себя сервера домена А и домена Б, при этом на домене А настроено Cross Domain Security, а на домене Б - нет, то такую транзакцию можно реализовать, добавив домен Б в список исключений домена А. В таком случае для установки соединения между доменами A и Б будет использоваться механизм Security Interoperability Mode.
Если при этом есть другая транзакция между доменами А, В и Г, но домен Б туда не входит, то его необязательно включать в список исключений для доменов В и Г.
На каждом домене, входящем в доверенную пару (домен А доверяет домену Б, а домен Б - домену А), необходимо создать по пользователю, обладающему ролью CrossDomainConnector, т.е. входящему в группу CrossDomainConnectors.
Крест-накрест, на противоположном домене должен быть настроен т.н. Credential Mapping с использованием протокола cross-domain-protocol на этого созданного пользователя в данном домене.
Включение Security Interoperability Mode
Для настройки Security Interoperability Mode нужно выполнить следующие шаги:
- настроить доверие между доменами.
- настроить режим Security Interoperability Mode.
Важно! При использовании режима performance не требуется включать доверие между доменами.
Для включения доверия между доменами необходимо установить учетные записи для всех доменов (domain credentials) в одно и то же значение. По умолчанию значение для domain credential генерируется случайным образом при создании домена, таким образом никакие два домена в системе не будут иметь одинаковые значение учетной записи. Необходимо на вкладке domain -> Security -> General, Advanced каждого домена изменить значения полей Credential и Confirm Credential на выбранное значение.
Каждый участвующий в транзакции домен должен установить значение режим Security Interoperability Mode в одно и то же значение:
- default. Координатор транзакции осуществляет вызовы, передавая т.н. kernel identity через административный канал, если тот включен. Если административный канал не настроен, то поведение Security Interoperability Mode совпадает с режимом performance.
- performance. Координатор транзакции всегда осуществляет вызовы анонимно. Это подразумевает наличие риска нарушения безопасности, т.к. злонамеренная третья сторона может попытаться повлиять на результат выполнения транзакции, проведя атаку вида "человек посредине".
- compatibility. Координатор транзакции осуществляет вызовы, передавая т.н. kernel identity через незащищенный канал. Данный режим требуется при осуществлении взаимодействия с серверами WebLogic, которые не поддерживают Security Interoperability Mode. Существует высокий риск нарушения безопасности, поскольку успешная атака вида "человек посредине" может позволить злоумышленнику получить доступ к административному контролю над обоими доменами. Данный режим должен применяться, только если сеть предприятия надежно защищена.
Установить режим можно так: в дереве выбрать домен и на странице domain -> Security -> General, Advanced выбрать значение свойства Security Interoperability Mode.
После включение Security Interoperability Mode между доменами, в которых присутствуют так же и управляемые сервера, необходимо перезапустить и административные сервера доменов, и все управляемые сервера в этих доменах. Если данный шаг не выполнить, то сервера, которые не были перезапущены, не будут доверять перезапущенным серверам.
Для получения доступа к ресурсам JNDI, требующим административных прав, необходимо, при включенном административном канале - выставить свойство Security Interoperability Mode в значение default и разрешить доверие между доменами. Если административный канал выключен, то выставить свойство Security Interoperability Mode в значение compatibility (т.к. kernel identity должно передаваться) и разрешить доверие между доменами.
Понравилось сообщение - подпишитесь на блог
Комментариев нет:
Отправить комментарий
Любой Ваш комментарий важен для меня, однако, помните, что действует предмодерация. Давайте уважать друг друга!