Количество опций и их комбинаций действительно ошеломляет, поэтому и Microsoft, и известный гуру WCF Джувал Лоуи придумали «сценарии безопасности», которые должны помочь вам сосредоточиться на нескольких управляемых сценариях, которые могут оказаться полезными.
Смотрите это сообщение в блоге J.D. Meier для подхода Microsoft, и идеи Ювала лучше всего изложены в серии статей в блоге Дэвида Сакштейна .
Для внутреннего межсетевого брандмауэра лучше всего подойдет netTcpBinding
с защитой транспортного уровня и учетными данными Windows.
ОБНОВЛЕНИЕ: К сожалению, netTcpBinding можно использовать только на IIS7 / WAS (с Vista, Win Srv 2008), и не поддерживается на IIS6 :-(
Для этого сценария вам потребуется либо использовать одну из привязок HTTP, либо создать хост для своей службы на основе NetTCP (консольное приложение, служба NT).
Марк
Обновление:
если вы хотите убедиться, что только локальные пользователи, являющиеся членами вашего домена Active Directory, могут получить доступ к вашему сервису, лучше всего использовать учетные данные Windows в качестве механизма аутентификации. В этом случае внешний пользователь, не имеющий учетной записи Windows в вашем домене, не сможет использовать эту службу и будет отклонен.
Возможно, вы могли бы настроить basicHttpBinding или wsHttpBinding с защитой транспорта, используя учетные данные Windows, для вашей службы. Если вы используете безопасность транспорта, вы будете использовать адреса https: //, и в вашей сети должен быть включен адрес SSL, но, с другой стороны, вам не нужно идентифицировать службу с помощью сертификата.
Ваш сервисный конфиг будет выглядеть примерно так:
<bindings>
<basicHttpBinding>
<binding name="securedBasicHttp">
<security mode="Transport">
<transport clientCredentialType="Windows"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="MyService">
<endpoint name="Default"
address="MyService"
binding="basicHttpBinding"
bindingConfiguration="securedBasicHttp"
contract="IMyService" />
</service>
</services>
Хорошим ресурсом для получения дополнительной информации, а также с видео-инструкциями, могут служить Шаблоны и практика. Руководство по безопасности WCF для Codeplex - отлично, хотя иногда и немного подавляюще.
Вы также можете проверить этот список статей с инструкциями по MSDN :