Возникла задачка защитить существующий WCF сервис, защита нужна в смысле авторизации клиентов сервиса, чтобы кто попало не коннектился и не запускал удаленные методы.
Сложность в том, что родной клиент написан на unmanaged C++, с использованием gSoap, поэтому большинство родных примочек WCF отпадает.
Остановился на использовании авторизации с Password Digest и Message Replay Detection, первое без второго бесполезно.
В gSoap основная сложность состоит в том, чтобы в первый раз использовать WSSE plugin. Лично я сильно споткнулся на том, что нужно добавить #import "wsse.h" в генерируемый утилитой wsdl2h заголовок перез запуском soapcpp2.
На уровне WCF service нужен танец (опа) с тремя бубнами:
Сложность в том, что родной клиент написан на unmanaged C++, с использованием gSoap, поэтому большинство родных примочек WCF отпадает.
Остановился на использовании авторизации с Password Digest и Message Replay Detection, первое без второго бесполезно.
В gSoap основная сложность состоит в том, чтобы в первый раз использовать WSSE plugin. Лично я сильно споткнулся на том, что нужно добавить #import "wsse.h" в генерируемый утилитой wsdl2h заголовок перез запуском soapcpp2.
На уровне WCF service нужен танец (опа) с тремя бубнами:
- Роутинг по телу SOAP сообщения, сэмпл
- Проверка Password Digest - нужен кастомный C# код, есть сэмпл.
- Если нужен именно http транспорт, не https, то WCF сделает все, чтобы ваш код не работал, поэтому есть сэмпл от гуру.
Комментариев нет:
Отправить комментарий