[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

作者:蒋金楠
微信公众账号:大内老A
微博: www.weibo.com/artech
如果你想及时得到个人撰写文章以及著作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注个人公众号(原来公众帐号 蒋金楠的自媒体将会停用)。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章
|
网络协议 安全 Windows
WCF如何绑定netTcpBinding寄宿到控制台应用程序详解
新建一个WCF服务类库项目,在其中添加两个WCF服务:GameService,PlayerService
WCF如何绑定netTcpBinding寄宿到控制台应用程序详解
|
安全 网络协议 网络安全
WCF安全3-Transport与Message安全模式
WCF安全3-Transport与Message安全模式
128 0
WCF安全3-Transport与Message安全模式
|
存储 算法 安全
WCF安全2-非对称加密
WCF安全2-非对称加密
158 0
WCF安全2-非对称加密
|
安全 数据安全/隐私保护
WCF安全1-开篇
WCF安全1-开篇
130 0
WCF安全1-开篇
|
网络协议
WCF绑定的选择
版权声明:欢迎评论和转载,转载请注明来源。 https://blog.csdn.net/zy332719794/article/details/8593924 格式与编码 每种标准绑定使用的传输协议与编码格式都不相同,如表1-1 所示。
616 0
|
监控
Wcf通讯基础框架方案(三)——客户端
假设定义了一个服务契约: [ServiceContract(Namespace = "WcfExtension.Services.Interface")] public interface ITestService { [OperationContract] ...
715 0
|
XML 安全 网络协议
WCF入门(一)——终结点,地址,绑定(1)
运行WCF服务 这里通过自宿主方式self-host来运行wcf服务。 公开终结点Endpoint,终结点由ServiceEndpoint 类来实现。它有很多的成员。其中要用到的是所说的ABC。 Address,Binding,Contract,地址,绑定,契约。
1034 0
WCF绑定细节(2)——绑定,绑定元素
绑定这块引出了很多细节。绑定解决了消息交换中的传输协议,传输,编码等问题。如果要公开WCF服务,就要公开终结点Endpoint,WCF服务信息交换就是Endpoint之间的信息交换。终结点三大元素:ABC。
881 0
|
安全 网络架构
消息(7)——WCF编程模型中控制消息(1)绑定,契约
WCF服务要通过终结点来进行通信,终结点三大构成元素:ABC,其中的B,binding是重中之重,它解决了在消息交换过程中的编码,传输协议,安全等问题。 绑定是分层的,一个绑定对象对应一组有序的绑定元素的集合。
768 0