我必须在服务器上托管的服务上实施“ 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>
尽管进行了所有配置,但我仍无法访问我的服务。谁能通知我在哪里出错或错过任何配置。
根据每个错误,我们在“ ws2007FederationHttpBinding”中没有“ Transport”或“ TransportCredentialOnly”。
所以我无法继续前进。
答案 0 :(得分:0)
您应该在下面的代码行中注释此语句,以避免在您的问题中提及该错误:
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
但要为WCF服务实现ADFS,需要几个前提条件,这些前提条件不能发布为答案,而仅对于Windows
身份验证模式,只需一步就可以更轻松地使用basicHttpBinding
。
因此对于ADFS实施,请查看:
1- ADFS in Identity Solutions - Using Active Directory Federation Services 2.0 in Identity Solutions.
2- Federated Security: How to setup and call a WCF service secured by ADFS 2.0
3- ADFS to secure WCF and Workflow Services hosted in Windows Server AppFabric.