2012-01-24 2 views
0

У нас есть служба, которая в настоящее время использует basicHttpBinding. У нас есть возможность конвертировать его в netTCPBinding. При развертывании в IIS 7 мы используем аутентификацию как анонимный. Доступ к службе осуществляется на веб-сайте, размещенном в IIS, в той же сети.WCF Security - Https и анонимная аутентификация

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

Пусть я использую Транспорт Credential Тип как «сертификат», будет ли он удовлетворить мое требование? Т.е. только пользователи, имеющие сертификат клиента, могут получить доступ к этой услуге? Можете ли вы направить меня к любой статье, в которой объясняется, как ее внедрить?

<endpoint address="" 
binding="basicHttpBinding" 

я упомянул следующее http://msdn.microsoft.com/en-us/library/ms731092.aspx

Примечание: потребляя сайт в IIS использует проверку подлинности Windows: Enabled, ASP.NET олицетворения: Enabled

Благодарности

ответ

1

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

http://www.codeproject.com/Articles/36683/9-simple-steps-to-enable-X-509-certificates-on-WCF

+0

Итак, вы говорите, что https с certifcate будет соответствовать требованию, не так ли? – Lijo

+1

нет. Я предложил netTCP с сертификатом, так как ваш потребитель является веб-сайтом .net. Если вы используете https, я думаю, что кто-то может нажать на этот URL и загрузить сертификат. –

+0

Предположим, что я использую «Тип транспортного сертификата» как «Сертификат», соответствует ли он моим требованиям? Т.е. только пользователи, имеющие сертификат клиента, могут получить доступ к этой услуге? – Lijo

1

Самое простое решение может если вы используете Http Headers и поместите некоторый ключ авторизации в заголовках, когда клиент делает запрос. На сервере проверьте заголовки запроса для ключа auth. Если ключ не найден, обратитесь в сервисную службу. Отметьте this сообщение, в котором объясняется, как добавлять заголовки при создании прокси-сервера.

Предложение

Вы можете удалить мета данных конечной точки (MEX), установите httpGetEnabled в false, таким образом, никто не будет в состоянии создать прокси-сервер службы.

Надеюсь, это вам поможет.

+0

Попробуйте изменить режим безопасности для транспортировки в конфигурации. Проверьте [this] (http://msdn.microsoft.com/en-us/library/ms729700.aspx). Создавая 'https', вы закрепляете транспортный уровень. Думаю, это сработает для вас. –

+0

Также проверьте это [привязки WCF, необходимые для HTTPS] (http://weblogs.asp.net/srkirkland/archive/2008/02/20/wcf-bindings-needed-for-https.aspx) –

+0

Даже если мы сделаем безопасный транспортный слой, неназванные люди в той же сети могут его потреблять, не так ли? – Lijo

Смежные вопросы