【问题标题】:WCF wsHttpBinding with Transport Security具有传输安全性的 WCF wsHttpBinding
【发布时间】:2012-08-08 12:25:20
【问题描述】:

MSDN 上的Herehere 声明在处理wsHttpBinding 时,传输安全性通过SSL 处理。

MSDN page about SSL and WCF 中指出,当 ServiceHost 托管在 IIS 中时,ServiceHost 会将 SSL 留给 IIS 处理。

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

here 在声明时甚至似乎表达了这种意思

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

然而here 对于basicHttpBindingwsHttpBinding,他们都明确强调如果安全模式设置为传输,请将绑定/传输/clientCredentialType 设置为某些东西(例如:Windows)。

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

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

如果传输安全性是由 SSL 加密提供的,那么身份验证/授权是如何陷入这个阶段的?

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

【问题讨论】:

  • 好问题。糟糕的是没有答案。

标签: wcf security wcf-binding


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    相关资源
    最近更新 更多