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

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

Ниже приведены настройки моего сервера:

web.config

<authentication mode="Windows" />

            <ws2007FederationHttpBinding>   
              <binding name="SamlTokenCustomStsBindingConfig">
                <security mode="Message">
                  <message establishSecurityContext="false">
                  </message>
                </security>
              </binding>
           </ws2007FederationHttpBinding>

   <service name="XXX.Server" behaviorConfiguration="ClaimsAwareServiceBehavior">
        <endpoint address="http://serverurl/ServerServices.svc" binding="ws2007FederationHttpBinding" 
                  contract="ServerInterfaces.IServer"  bindingConfiguration="SamlTokenCustomStsBindingConfig"  />

        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>

 <behavior name="ClaimsAwareServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior> 

Ниже представлена ​​моя конфигурация IIS: enter image description here

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

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

В соответствии с ошибкой у нас нет «Transport» или «TransportCredentialOnly» в «ws2007FederationHttpBinding».Поэтому я не могу двигаться дальше.

1 Ответ

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

Вы должны прокомментировать эту строку кода ниже, чтобы избежать упомянутой ошибки в вашем вопросе:

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

, но для реализации ADFS для службы WCF необходимо несколько предварительных условий, которые нельзя опубликовать как ответ, а только дляWindows режим аутентификации, это проще использовать basicHttpBinding с небольшими шагами.

, поэтому для реализации ADFS, пожалуйста, посмотрите:

1- ADFS в решениях для идентификации - ИспользованиеСлужбы федерации Active Directory 2.0 в решениях для идентификации.

2- Федеративная безопасность: как настроить и вызвать службу WCF, защищенную ADFS 2.0

3- ADFS для защиты служб WCF и Workflow, размещенных в Windows Server AppFabric.

...