Конфигурация сервера WCF для аутентификации Windows для wsHttpBinding - PullRequest
0 голосов
/ 26 ноября 2018

Я должен реализовать «Аутентификацию Windows» в службе, размещенной на сервере.Я использую "wsHttpBinding".В нем «Сообщение» является режимом безопасности по умолчанию.Ниже приведены настройки моего сервера:

web.config

<authentication mode="Windows" />

    <services>
          <service name="WCFWsHttpBindingHttps.Service1" behaviorConfiguration="WCFWsHttpBindingHttps.Service1Behavior">
            <!-- Service Endpoints -->
            <endpoint address="" binding="wsHttpBinding" contract="WCFWsHttpBindingHttps.IService1">
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
          </service>
        </services>
    <behaviors>
          <serviceBehaviors>
            <behavior name="WCFWsHttpBindingHttps.Service1Behavior">
              <serviceMetadata httpGetEnabled="true" />
              <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
          </serviceBehaviors>
        </behaviors>

Ниже приведены настройки IIS: enter image description here

Несмотря на все настройки, я не могу получить доступ к своему сервису.Кто-нибудь может сообщить, где я делаю ошибку, или я пропустил какую-либо конфигурацию.

Я получаю сообщение об ошибке ниже, когда пытаюсь получить доступ к своему сервису.enter image description here

1 Ответ

0 голосов
/ 26 ноября 2018

Когда вы используете wsHttpBinding, режим безопасности должен быть Transport для использования проверки подлинности Windows на IIS, с другой стороны потребителям должен быть настроен сертификат сервера.

Если вы используетедругой режим безопасности, за которым вы перейдете, за исключением:

Для настроек безопасности этой службы требуется «анонимная» аутентификация, но она не включена для приложения IIS, в котором размещена эта служба.

, поэтому вам нужно wsHttpBinding, как показано ниже:

<wsHttpBinding>
    <binding>
      <security mode="Transport">
        <transport clientCredentialType="Windows"/>
      </security>
    </binding>
</wsHttpBinding>

Если вы используете режим безопасности Message, это означает, что вы будете отправлять зашифрованное сообщение через незащищенный транспорт и шифроватьсообщение о том, что вам придется использовать свой собственный сертификат, с другой стороны вам также необходимо настроить способ проверки сертификата клиентом, что обеспечит согласование потребителями правильной услуги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...