У меня возникла некоторая проблема.
У нас есть централизованный интерфейсный движок, который будет взаимодействовать с веб-службой, которая предоставит информационное дополнение и позволит отправить запрос во внешние системы.Все это хорошо и хорошо, пока мы не интегрируем это с требуемой безопасностью от этого провайдера.
Они выпускают сертификаты, распространяемые через смарт-карты (USB-ключ), которые конечный пользователь должен использовать для взаимодействия программного обеспечения с указаннымсистема (веб-сервисы).Они настаивают на том, чтобы (иногда множественная) подпись делалась на сертификате конечного пользователя на его USB-ключе.Закрытый ключ, конечно же, защищен паролем.
Как подключить Axis2, который в конечном итоге будет обрабатывать все это, к сертификатам на компьютере конечного пользователя.
Система в основном является устаревшим толстым клиентским приложением в Delphi 5, механизм интерфейса взаимодействует в основном с базой данных.Теперь нам удалось подключить фрагмент кода, который эффективно соединяет станцию конечного пользователя с интерфейсным сервером через простой TCP-сокет.
---- EDIT ----
Мы внедрили решение с настраиваемым перехватчиком подписи в CXF (мы изменили с Axis), который пересылал содержимое сообщения на прокси-сервер подписи, который, в свою очередь, находил и подключал подходящую службу подписи, работающую в сеансе взаимодействия с пользователем.откуда исходный запрос пришел.
Я принял ответ Юджина, потому что, хотя мы не использовали указанные им компоненты, мы реализовали решение, которое следовало общим руководящим принципам его предложения.
Невозможно избежать того факта, что подпись должнабыть сделано в интерактивном сеансе пользователя из-за USB-токена.Дополнительные ограничения были наложены из-за того, что мы использовали устаревшие системы и из-за необходимости заставить систему работать в общей среде (сервер удаленного рабочего стола).Хотя это возможно, оно не поддерживается естественным образом фреймворками веб-служб или криптографическими библиотеками.