У меня есть служба WCF, которая предоставляется с использованием одной конечной точки с netTcpBinding, которая находится на сервере A , размещенном на IIS7.5 / WAS в нашей внутренней локальной сети в нашем домене.
Затем эта служба используется приложением веб-клиента ASP.NET, расположенным на сервере B , также размещенным на IIS7.5 у внешнего хостинг-провайдера за пределами нашего домена и связанным с нашей локальной сетью через VPN, защищенную дляразрешить только трафик между Сервером A и Сервером B .
Во время разработки, когда я тестировал концепцию, я запустил приложение веб-клиента на другом сервере IIS внутри нашего доменас использованием защиты привязки mode="Transport"
и транспорта clientCredentialType="Windows"
, который работал нормально.
Затем я переместил приложение веб-клиента на внешний Сервер B для дальнейшего тестирования концепции, устанавливающего привязкуsecurity mode="None"
, так как очевидно, что этот сервер находится за пределами нашего домена, я не могу использовать проверку подлинности Windows, и она все еще работает нормально.
ЧтоМне нужно сделать сейчас, чтобы переключиться обратно на использование безопасности транспорта, чтобы установить clientCredentialType="Certificate"
, так как вы не можете иметь безопасность транспорта с clientCredentialType="None"
.
Это то место, где я начал отклеиваться.Я, кажется, иду по кругу относительно того, где в web.config
службы и клиенте web.config
определить сертификат и где хранить какие биты сертификата.
По сути, что япопытка сделать это - проверить, что Сервер B действительно Сервер B , вызывающий службу на Сервер A , что предотвращает любые проблемы с подделкой или подрывной работой DNS, которые могут привести кслужба на сервере A незаконно доступна.
Я думаю, что мне нужно создать сертификат для сервера B , к которому сервер A имеет открытый ключ для проверкиЭто?В этом случае На сервере B уже установлен сертификат SSL с подстановочным знаком, так как он обслуживает различные наши приложения в качестве поддоменов.Можно ли использовать этот сертификат для аутентификации WCF?
Ни один из вопросов SO, которые я обнаружил, кажется, не покрывает это, и все различные веб-сайты и примеры книг, которые я обнаружил, не так ясны.Похоже, что конфигурация WCF - это нечто черное.
Все это построено с использованием .NET 4 и Visual Basic.Любая помощь будет принята с благодарностью.