WebSphere JAX-WS Межсотовая аутентификация - PullRequest
2 голосов
/ 07 июля 2011

Мы хотим создать интерфейсное веб-приложение для использования API-интерфейса HumanTask WPS с использованием JAX-WS.Это веб-приложение должно иметь возможность запрашивать текущие задачи для конкретного пользователя, запрашивать задачи, ранее не заявленные другими пользователями, выполнять задачи и так далее.Это веб-приложение будет развернуто на WAS 7.0 в другой ячейке, отличной от той, которая предоставляет службу HumanTask (в настоящее время мы используем другой экземпляр WPS в качестве WAS, но в конечном итоге это будет простой WAS без функций WPS).Мы синхронизировали ключи генерации LTPA с помощью следующих шагов:

  1. Вход в одну ячейку
  2. Перейдите в «Безопасность»> «Глобальная безопасность».В разделе «Аутентификация» нажмите «LTPA»
  3. В разделе «Единый вход между ячейками»
    1. Установите пароль
    2. Подтвердите пароль
    3. Введитеимя файла, в который будут экспортированы ключи LTPA
    4. Нажмите «Экспорт ключей»
  4. Выйти
  5. Скопируйте созданный файл на другой сервер
  6. Войдите в другую ячейку
  7. Перейдите в «Безопасность»> «Глобальная безопасность».В разделе «Аутентификация» нажмите «LTPA»
  8. В разделе «Единый знак для нескольких ячеек»
    1. Введите предыдущий пароль
    2. Подтвердите пароль
    3. Введите файлимя с экспортированными ключами LTPA
    4. Нажмите «Импортировать ключи»
  9. Перезагрузите сервер

Мы разработали простое веб-приложение с GWT какподтверждение концепции с простым пользовательским интерфейсом и клиентом веб-сервиса, который использует сервис HumanTask JAX-WS.Это веб-приложение защищено аутентификатором Siteminder (при первом входе в веб-приложение агент Siteminder перенаправляет на веб-форму с запросом учетных данных).Клиент веб-сервиса был разработан в соответствии со стандартами JAX-WS, никаких дополнительных зависимостей не было добавлено, мы полагаемся на реализацию WebSphere JAX-WS (Apache Axis2).После развертывания мы безуспешно протестировали два сценария:

Сценарий A :

  • По умолчанию поставщик услуг WPS HumanTask подключен к набору политик «BPC Web Service»с отключенной привязкой набора политик по умолчанию и общим набором политик.
  • Мы настраиваем наш клиент службы HumanTask на использование того же набора политик, что и для поставщика услуг.
  • Войдите в пользовательское веб-приложение.При попытке запроса текущих задач мы получаем следующее исключение:

    com.ibm.wsspi.wssecurity.core.SoapSecurityException: security.wssecurity.WSSContextImpl.s02: com.ibm.websphere.security.WSSecurityException: Exception org.apache.axis2.AxisFault: CWWSS6521E: The Login failed because of an exception: javax.security.auth.login.LoginException: Login Failure: all modules ignored ocurred while running action: com.ibm.ws.wssecurity.handler.WSSecurityGeneratorHandler$2@6fef6fef
    

Нет сообщений об ошибках на стороне поставщика услуг.

Сценарий B :

  • Изменение конфигурации поставщика услуг WPS HumanTask, позволяющей совместно использовать набор политик через HTTP GET.Таким образом, WSDL поставщика услуг содержит информацию о наборе политик.
  • Изменение конфигурации набора политик на клиенте службы для получения набора политик от поставщика с помощью HTTP GET.
  • Войдите в пользовательское веб-приложение.,При попытке выполнить запрос к текущим задачам мы получаем следующее исключение:

    javax.xml.ws.soap.SOAPFaultException: security.wssecurity.WSSContextImpl.s02: com.ibm.websphere.security.WSSecurityException: Exception org.apache.axis2.AxisFault: CWWSS6521E: The Login failed because of an exception: javax.security.auth.login.LoginException: Login module com.ibm.ws.wssecurity.wssapi.token.impl.UNTConsumeLoginModule login() method returned false ocurred while running action: com.ibm.ws.wssecurity.handler.WSSecurityConsumerHandler$1@54a054a0
    

Перед достижением точки, где сообщается о предыдущем исключении, мы видим следующее предупреждение в журналах клиента службы:

CWWSS7053W: No web services security custom bindings were found. Default bindings will be used.

В журналах поставщика услуг мы видим следующую ошибку:

CWWSS5514E: An exception while processing WS-Security message.

И генерируется набор FFDC, сообщающих о том же исключении, которое мы получили на стороне клиента службы.

Кто-то, кто мог бы помочьнам было бы здорово!

1 Ответ

2 голосов
/ 13 октября 2011

У нас была та же проблема, но нам удалось решить ее с помощью следующих шагов.По сути, вам нужно изменить набор политик по умолчанию, применяемый к HTM JAXWS API (по умолчанию это просто пример), и использовать привязку настраиваемого поставщика, которая может извлекать идентификационные данные, содержащиеся в маркере LTPA, через «вызывающего».Шаги ниже:

Создание привязок настраиваемого набора политик

1) Нажмите «Службы»> «Наборы политик»> «Общие привязки набора политик поставщика» 2) Выберите «Образец привязки провайдера и нажмите «Копировать ...» 3) Введите имя как «Аутентифицированный вызывающий абонент LTPA» и нажмите OK. 4) Нажмите «Аутентифицированный вызывающий абонент LTPA» в списке привязок. 5) Нажмите «WS-Security»,затем «Звонящий» 6) Нажмите «Новый» и введите следующие данные (оставьте другие поля пустыми) Имя: auth_ltpa Локальная часть идентификатора вызывающего абонента: URI пространства имен идентификатора вызывающего абонента: http://www.ibm.com/websphere/appserver/tokentype Нажмите OK

Назначение набора политик и привязок

1) Разверните «Службы», нажмите «Поставщики услуг» 2) Нажмите «HTMJAXWSService» 3) Установите флажок, чтобы выбрать службу HTMJAXWSService в приложениях набора политикзатем щелкните «LTPA WSSecurity default» в раскрывающемся списке «Набор политик подключения». 4) Установите флажок, чтобы выбрать службу HTMJAXWSService в списке «Наборы политик», затем нажмите «LTPA Authenticated Caller »в раскрывающемся списке« Назначить привязку »5) Сохранить все изменения в основной конфигурации.

Назначить набор политик и привязки

1) Развернуть« Службы »нажмите «Служба клиентов». 2) Нажмите ссылку «HTMJAXWSService», где столбец «Развернутый ресурс» соответствует модулю, содержащему клиент, которого вы хотите настроить. 3) Установите флажок, чтобы выбрать службу HTMJAXWSService в списке «Вложения набора политик», затемнажмите «LTPA WSSecurity default» в раскрывающемся списке «Набор политик подключения».Убедитесь, что этот параметр наследуется всеми дочерними уровнями (т. Е. Портом и всеми методами). 4) Установите флажок, чтобы выбрать службу HTMJAXWSService в списке вложений набора политик, затем нажмите «По умолчанию» в раскрывающемся списке «Назначить привязку». 5) Сохраните все изменения в основной конфигурации

Заключение

Теперь должна быть возможность звонить с вашего клиента через HTM API с использованием аутентификации LTPA.Для этого клиентское приложение должно быть настроено так, чтобы оно требовало либо аутентификации, либо обеспечения аутентификации для неаутентифицированных URL-адресов (последний подходил бы для приложений, которые ожидают, что TAI SiteMinder предварительно заполнит аутентифицированную идентификационную информацию пользователя).

Надеюсь, это поможет!

...