JAX-WS, аутентификация и авторизация - как?

Как лучше всего выполнять аутентификацию и авторизацию в веб-службах?

Я разрабатываю набор веб-служб, требующих управления доступом на основе ролей. Используя metro-SOAP, простую Java без EJB.

  • Я хочу аутентифицировать пользователя только один раз, используя имя пользователя и пароль для сопоставления с базой данных. В последующих вызовах.
  • я хотел бы использовать какое-то управление сеансом. Может быть какой-то идентификатор сеанса, полученный клиентом при входе в систему, который будет представлен во всех звонки.

Пока:

  • Чтение аутентификации с использованием базы данных - но мне нужна проверка на уровне приложения;
  • Прочтите аутентификацию приложения с помощью jax-ws - но я не хочу использовать механизм аутентификации каждый раз;

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

РЕДАКТИРОВАТЬ:

У меня все еще есть несколько вопросов:

  • Как узнать имя вызываемого веб-метода?
  • Какой токен мне использовать?
  • Как передать этот токен между вызовами?

РЕДАКТИРОВАТЬ 2

Из-за @ ag112 ответ:

Я использую Glassfish.

Я использую WS-Policy и WS-Security для шифрования и подписи сообщений. Использование взаимной проверки подлинности сертификатов. Я хотел бы дополнить этот уровень безопасности сообщений между приложениями, с аутентификацией и авторизацией для пользователей также на уровне сообщений.

Я просто разрабатываю сервисы, и я почти ничего не знаю о клиентах, просто они могут быть созданы на разных языках.

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

11
задан 17 revs 23 May 2017 в 12:02
поделиться