WCF wsHttpBinding与传输安全性

时间:2012-08-11 12:07:07

标签: wcf security wcf-binding

MSDN上的

Here以及here表示在处理wsHttpBinding时,传输安全性是通过SSL处理的。

MSDN page about SSL and WCF上,它指出当ServiceHost在IIS中托管时,ServiceHost会让SSL由IIS处理。

这是否意味着如果binding/securityMode="Transport",则会忽略任何wsHttpBinding/binding/security/transport/clientCredentialType值,因为设置SSL传输不需要任何选项?

当它陈述

时,它甚至可以说出这种效果here
  

“将安全模式设置为TransportWithMessageCredential时,   transport确定了提供的实际机制   运输级安全。例如,HTTP协议使用Secure   HTTP上的套接字层(SSL)(HTTPS)。因此,设置   任何传输安全对象的ClientCredentialType属性(例如   如HttpTransportSecurity)被忽略。换句话说,你只能设置   消息安全对象的ClientCredentialType(用于   WSHttpBinding绑定,NonDualMessageSecurityOverHttp对象)。“

然而basicHttpBindingwsHttpBinding的{​​{3}},他们都明确强调了如果安全模式设置为传输的示例,请将binding / transport / clientCredentialType设置为某个(例如:Windows)。

TransportTransportWithMessageCredential之间的确切区别是什么?

我是否有错误的结尾,SecurityType枚举(None|Message|Transport|Mixed)不仅仅是为了隐私,而是为了对服务器进行身份验证?

如果通过SSL加密提供传输安全性,身份验证/授权如何融入此阶段?

非常感谢您帮助我更好地了解这一切是如何融合在一起的。

1 个答案:

答案 0 :(得分:0)

据我所知,TransportWithMessageCredential是“两全其美”。通道在传输层上是安全的,因此客户端和服务之间存在安全连接(可以非常快速,在硬件中实现),此外,消息使用消息凭证进行签名,以便在到达服务之前可以存活多个跃点(在WCF中验证。)

当然,您可以使用传输层不支持的邮件凭据,例如用户名/密码。