Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[WCF安全系列]绑定、安全模式与客户端凭证类型:总结篇

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

作者头像
蒋金楠
发布于 2018-02-07 07:30:47
发布于 2018-02-07 07:30:47
7460
举报
文章被收录于专栏:大内老A大内老A

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

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

下面的表格表示系统预定义绑定对不同安全模式的支持(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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-05-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Write xlsx with Openpyxl
Openpyxl 是一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的开源库
franket
2021/08/11
1.4K0
Auto Generate Command Line
Openpyxl 是一个用来读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的开源库
franket
2021/08/11
3300
ETL CSV to Elasticsearch
当有大量数据要从 CSV 导入到 Elasticsearch 中时一般有两种方式来完成
franket
2021/08/11
2.4K0
Install Cobbler
可以实现 Linux 的自动化部署与初始化配置,在需要安装大量 OS 的场景下,可以极大提升效率
franket
2021/08/11
1.3K0
Centos7使用yum安装 pip 、ipython
仅供学习参考 安装epel扩展源 yum -y install epel-release 执行如下: [root@server01 work]# yum -y install epel-release Loaded plugins: fastestmirror Determining fastest mirrors * base: centos.ustc.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com base
Devops海洋的渔夫
2019/05/31
2.5K0
Install Jumpserver
Jumpserver 基于 Python / Django 进行开发,遵循 Web 2.0 规范,配备了 Web Terminal 解决方案
franket
2021/08/10
1.2K0
x0vncserver 共享桌面
有些场景下,需要进行桌面演示,在 windows 里有很多软件可以满足此类需求,那在 Linux 里该如何实现呢
franket
2021/08/12
3K0
揭开「pip不是内部或外部命令,也不是可运行的程序或批处理文件」的神秘面纱
正如文章标题所说 揭开「pip不是内部或外部命令,也不是可运行的程序或批处理文件」的神秘面纱
AXYZdong
2020/10/29
37.3K2
揭开「pip不是内部或外部命令,也不是可运行的程序或批处理文件」的神秘面纱
Keepalived LVS NAT
LVS 只实现到了四层,Keepalived 可以实现七层的简单检查,Keepalived 可以通过预设的检查逻辑来管理 LVS 配置,从而实现对 LVS 自动且动态的调配,让整个 LB 系统更加灵活且健壮
franket
2021/08/10
1.6K0
Config Client of OpenVPN on linux
OpenVPN 是一款开源的 VPN(Virtual private network) 软件
franket
2021/08/11
5.3K0
LVS NAT
LVS(Linux Virtual Server) 是一款开源的 LB(load balancing) 软件
franket
2021/08/10
3.4K0
LVS DR
LVS(Linux Virtual Server) 是一款开源的 LB(load balancing) 软件
franket
2021/08/10
9790
Install OpenResty
OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项
franket
2021/08/11
1.1K0
Install Saltstack
类似的工具还有 Puppet、Chef、Ansible,他们之间可以相互替代,但是哪一个更好,我就不在此引发圣战了
franket
2021/08/11
6630
CRUD Elasticsearch with Python
这里分享一下 Python Elasticsearch Client 简单的 CRUD API
franket
2021/08/11
7080
Install Tomcat
Tomcat 是一款开源的 Java Servlet 实现,简单来说就是一个 java 应用解析容器
franket
2021/08/11
5380
Install PostgreSQL
PostgreSQL 的影响力越来越大了,虽然长期居于数据库排行榜的第四名(前三分别为 oracle, mysql, sqlserver),不过近三年来(2015-2018年),却是受关注涨幅最大的数据库,并且长期保持稳步增涨的态势,可能与其丰富的特性迎合了现代互联网的发展需求有一定关联
franket
2021/08/11
2.4K0
Install phpMyAdmin
参考 phpMyAdmin文档 和 How to install Apache, PHP 7.2 and MySQL on CentOS 7.4 (LAMP)
franket
2021/08/11
3K0
安装 OpenShift Origin
这两年容器技术太火了,很多大公司后台的应用都完成了容器化的转变,容器化代表了 DevOps 领域的一个未来趋势
franket
2021/08/12
1.4K0
Install LAMP
由 Linux 提供运行环境,Mysql 提供关系型存储,Apache 提供 Web 服务,PHP 完成应用逻辑
franket
2021/08/11
2K0
相关推荐
Write xlsx with Openpyxl
更多 >
LV.9
数篷科技客户端负责人
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档