Способ, которым я занимался в прошлом, заключается в использовании стандартных функций WS- *.
Вместо использования функции аутентификации мы включаем функцию целостности заголовка сообщения. Это требует, чтобы обе стороны диалога имели доступ к паре открытого / закрытого ключа и обнаруживали любое изменение поля имени пользователя в заголовке. Таким образом, вы можете быть уверены, что тот, кто отправил сообщение и установил идентификатор пользователя, имеет доступ к закрытому ключу.
Это обеспечивает разумный уровень целостности при правильном управлении ключами.