UsernameToken и SSL в веб-сервисе WCF 4 - PullRequest
1 голос
/ 12 января 2012

Я создаю веб-сервис, который будет использоваться одним клиентом в другой части мира. У меня нет никаких знаний или контроля над технологией, которую они используют, но меня попросили

"использовать SSL для шифрования сообщения во время транспортировки и использовать UsernameToken для аутентификации клиента "

Я планирую использовать WCF4 для создания службы и знаю, как все это настроить. Однако я изо всех сил пытаюсь найти правильную конфигурацию для привязок и т. Д. Google дает мне много результатов относительно WSE 3.0, но я почти уверен (пожалуйста, исправьте меня, если я ошибаюсь), что я не должен использовать WSE для WCF сервис.

Эта статья изначально предлагает мне использовать пользовательскую привязку, но затем также говорит, что я должен "рассмотреть возможность использования системных привязок WCF с соответствующими настройками безопасности вместо создания настраиваемой привязки". Однако я не вижу примеров того, что это должно быть.

Буду признателен, если кто-нибудь укажет мне правильное направление.

tl; dr : Какие параметры конфигурации WCF4 поддерживают SSL и UsernameToken?

1 Ответ

4 голосов
/ 12 января 2012

Посмотрите на WsHttpBinding.Вы можете использовать режим безопасности TransportWithMessageCredential, чтобы использовать SSL и учетные данные сообщения UserName.Если вы размещаете в IIS настройку SSL там.

Вы можете настроить привязку в конфигурации следующим образом.

<bindings>
  <wsHttpBinding>
    <binding name="secureBinding">
      <security mode="TransportWithMessageCredential">
        <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
        <message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="false" />
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

Затем можно использовать эту конфигурацию привязки следующим образом

<services>
  <service name="ServiceName">
    <endpoint address="" binding="wsHttpBinding" contract="ContractType" bindingConfiguration="secureBinding" />
  </service>
</services>

Оба эти элемента являются дочерними элементами элемента system.serviceModel в config.

...