AbishekAlva Ответов: 1

C# - передача сертификатов с использованием SOAP и WS-TRUST для генерации токенов авторизации


Я работаю над проектом, который потреблял бы сторонний веб-сервис для определенной функциональности. У нас есть 2 файла WSDL 1) файл WSDL, связанный с сервисом токенов безопасности 2) файл WSDL, связанный с определенной функциональностью, которую использует наше приложение. Нам также предоставляется клиентский сертификат в формате PKCS-12, который, как они говорят, используется системой службы токенов безопасности для генерации токенов времени выполнения для доступа к их сервису.

Нам также сообщили, что во время выполнения токен авторизации, выданный системой Security Token Service system, должен быть запрошен нашим приложением с использованием библиотек SOAP и протоколов WS-TRUST, а также они упоминают, что некоторые библиотеки SOAP автоматически запросят этот токен и передадут его службе с использованием протоколов WS-TRUST.

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

1) согласно их документации, существует ли какая-либо библиотека SOAP, которая может автоматически запрашивать сервисный токен и переходить в фактический сервис? 2) Как следует передавать сертификат с помощью SOAP для генерации токена безопасности?

Что я уже пробовал:

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

1 Ответов

Рейтинг:
2

anup.bhunia

Надеюсь, что вы вызываете стороннюю веб-службу со стороны вашего сервера, ваша интеграция должна выглядеть следующим образом;

[Браузер] - - - [ваш сервер] - - - когда токен отсутствует- - - [сторонняя служба безопасности toke]
[Браузер] - - - [ваш сервер] - - - когда токен присутствует- - - [сторонний сервис]

ваш сервер должен использовать http-клиент для вызова сторонней службы, куда вы должны добавить сертификат при вызове службы маркеров безопасности. Это должно вернуть токен, который должен быть установлен в файлах cookie Вашего браузера.

фрагмент кода:

WebRequestHandler handler = new WebRequestHandler();
X509Certificate2 certificate = GetMyX509Certificate();
handler.ClientCertificates.Add(certificate);
HttpClient client = new HttpClient(handler);


AbishekAlva

Спасибо Вам за ваш ответ Ануп. Мое приложение - это приложение на базе windows, которое интегрировано с сторонним приложением для определенной функциональности. Поскольку третья сторона придумала размещенный сервис, нам нужно изменить наш дизайн, чтобы справиться с этим размещенным сервисом. Поэтому нам нужно передать предоставленный ими сертификат, который установлен в нашей системе, чтобы получить токен авторизации, который, в свою очередь, используется для доступа к их сервису для желаемой функциональности.

anup.bhunia

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