0

我必须在服务器上托管的服务上实现“Windows 身份验证”。
我正在使用“ws2007FederationHttpBinding”。
我正在使用“ws2007FederationHttpBinding”绑定,因为我从我的 ADFS 服务器接收令牌。

以下是我的服务器配置:

网络配置

<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 配置: 在此处输入图像描述

尽管进行了所有配置,但我无法访问我的服务。任何人都可以通知我在哪里犯错或者我错过了任何配置。

当我尝试访问我的服务时收到以下错误。 在此处输入图像描述

根据错误,我们在“ws2007FederationHttpBinding”中没有“Transport”或“TransportCredentialOnly”。
所以我无法更进一步。

4

1 回答 1

0

您应该在下面的代码行中对此进行注释,以避免您的问题中提到的错误:

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

但是对于为 WCF 服务实现 ADFS 需要几个先决条件,这些先决条件不能作为答案发布,但仅用于Windows身份验证模式,这更容易basicHttpBinding通过小步骤使用。

所以对于 ADFS 的实施,请看一下:

1-身份解决方案中的 ADFS - 在身份解决方案中使用 Active Directory 联合服务 2.0。

2-联合安全性:如何设置和调用受 ADFS 2.0 保护的 WCF 服务

3- ADFS 以保护 Windows Server AppFabric 中托管的 WCF 和工作流服务。

于 2018-11-26T10:56:03.150 回答