[WCF安全系列]绑定、安全模式与客户端凭证类型:总结篇

对于常用的几种绑定类型,它们都支持怎样的安全模式,以及针对各种安全模式可以采用怎样的认证方式(通过客户端凭证类型决定),这些都在前面的一系列文章中进行了详细的介绍。接下来我们通过表格的形式对不同类型的系统预定义对不同的安全模式进行一下总结。

一、系统预定义绑定对不同安全模式的支持

下面的表格表示系统预定义绑定对不同安全模式的支持(WSHttpBinding与WS2007HttpBinding具有相同的安全模式支持策略,这里仅仅列出了WSHttpBinding)。

BasicHttpBinding WSHttpBinding WSDualHttpBinding NetNamedPipeBinding NetTcpBinding NetMsmqBinding
None Default Yes Yes Yes Yes Yes
Transport Yes Yes No Default Default Default
Message Yes Default Default No Yes Yes
Mixed Yes Yes Yes No Yes No
Both No No No No No Yes
TransportCredentialOnly Yes No No No No No

针对这个表格,我们可以看出:

  • 所有的绑定都可以不采用任何的安全传输机制,即支持None安全模式;
  • BasicHttpBinding的默认模式为None,WS相关的绑定默认模式为Message,而局域网相关绑定的模式模式为Transport;
  • 除了NetNamedPipeBinding,所有的绑定都支持Message安全模式;
  • 对于所有支持Message模式的绑定,除了NetMsmqBinding都支持Mixed模式;
  • 除了WSDualHttpBinding,所有的绑定都支持Transport模式;
  • 只有BasicHttpBinding支持TransportCredentialOnly模式;
  • 只有NetMsmqBinding支持Both安全模式。

二、系统预定义绑定对不同Transport客户端凭证的支持

接下来我们来比较一下对应我们之前介绍的这些常用的系统定义绑定在采用Transport安全模式下,对客户端凭证类型集的支持有何不同。

BasicHttpBinding WSHttpBinding WSDualHttpBinding NetNamedPipeBinding NetTcpBinding NetMsmqBinding
None Default Yes - No Yes No
Basic Yes Yes - No No No
Digest Yes Yes - No No No
Windows Yes Default - Default Default Default
Ntlm Yes Yes - No No No
Certificate Yes Yes - No Yes No

从下面的表格反映的数据我们可以看出:

  • 三种基于HTTP的绑定(不包括不支持Transport安全模式的WSDualHttpBinding)支持所有类型的客户端凭证(实际上客户端凭证类型都是通过枚举HttpClientCredentialType表示);
  • 除了BasicHttpBinding在默认的情况下None作为客户端凭证类型(匿名客户端)之外,其它绑定的默认客户端凭证类型都是Windows;
  • NetTcpBinding支持三种客户端凭证类型None、Windows和Certificate;

  • NetNamedPipeBinding和NetMsmqBinding支持唯一的客户端凭证类型Windows。

三、系统预定义绑定对不同Message客户端凭证的支持

而不同的绑定针对于Message模式(或者Mixed模式)下的客户端凭证类型的支持就非常清晰了。因为除了BasicHttpBinding采用BasicHttpMessageCredentialType枚举表示其支持的客户端凭证类型之外,其它所有的绑定(不包括不支持Message安全模式的NetNamedPipeBinding)都使用MessageCredentialType表示客户端凭证类型,并且。在Message模式下,不同类型的绑定对不同客户端凭证类型集的支持反映在下面的表格中。

BasicHttpBinding WSHttpBinding WSDualHttpBinding NetNamedPipeBinding NetTcpBinding NetMsmqBinding
None No Yes Yes - Yes Yes
User Name Default Yes Yes - Yes Yes
Windows No Default Default - Default Default
Certificate Yes Yes Yes - Yes Yes
IssuedToken No Yes Yes - Yes Yes
posted @ 2011-05-28 11:17  Artech  阅读(7187)  评论(13编辑  收藏  举报