WCF分布式安全开发实践(0):文章和代码结构规划介绍
2009-08-12 00:47
351 查看
继WCF分布式开发步步为赢(14):WCF安全编程--基本概念 概念介绍了简单的WCF安全编程的基本概念之后,我决定正式推出下一个系列:《WCF分布式安全开发实践》。之所以去此名,就是因为侧重点在WCF安全模式的实践编程上,我会给出每种安全模式的实现的Demo代码。本文就是讲解这个系列文章的组织和规划的情况,作为系列的开篇,也就是从0开始:WCF分布式安全开发实践(0):文章和代码结构规划介绍。内容主要涉及WCF安全验证内容的简要回顾,代码组织结构介绍,文章结构介绍,最后就只总结。
WCF安全概念涉及到很多知识,完全超出我个人的预期。我最近一直在关注这个方面的内容,最大的感受就是WCF安全机制非常的复杂,或者说安全机制强大。WCF安全编程一直是一个重要的领域,因为安全的问题不单单针对WCF服务,还要客户端的配合。
【1】安全验证模式:
我们先来简单回顾一下WCF身份验证机制,WCF支持的6种身份验证机制可以参考下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/200908/8f069ee39d37f3e64747a5df9a7e243a.gif)
【1.1】Transport安全模式与客户端验证方式:
绑定协议和客户端验证方式在transport模式下的对应关系:
【1.2】消息安全模式与客户端验证方式:
以上就是WCF在不同的安全模式下,不同的绑定协议所支持的身份验证方式之间的关系。这样的组合多达数十种之多。而我们不能对每种情况都做实现。这里一方面为了学习,另外也是为了结合公司项目的实际情况,我们实现比较常见的WCF安全机制。方面大家的学习和项目实际应用的参考。
【2】代码结构概要:
这里我把代码整体上按照安全模式和消息模式来分,然后是客户端身份验证方式,在就是绑定协议,做个分类的依据。这里我给出主要的是无身份验证模式None,Basic,自定义用户名密码,和自定义X509证书,Window,Certificate验证方式的Demo代码结构。目前给出的是大概的结构如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/200908/206eebe7b24c8ac0ce9a6051f00b4eab.gif)
【3】文章结构概要:
文章基本的组织接口是介绍每种Demo代码的具体的实现原理和过程,每个文章会详细介绍关键的实现步骤,和应该注意的细节。对代码进行讲解,最后会给出可执行代码供大家参考。应该在10篇左右,因为针对一种安全机制,我就只实现一个绑定协议,例如是WSHTTPBinding的实现,basicHTTPBinding和NetTcpBinding我就不给出了,大家有兴趣的可以拓展,根据实际学习或者项目需要自己实现。代码文章的初步规划如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/200908/b626dddb577d3f7ed8d38f9e72ac178a.gif)
【4】总结
(1)《WCF分布式安全开发实践》主要针对的是一些常见的验证方式的介绍,并给出可以执行的实例代码。
(2)应用相对较少的方式,如IssuedToken方式,我在这个系列里就不给出介绍了,如果需要可以再对这个系列文章做个调整。代码结构和文章结构是作个参考,实际可能根据大家的意见做个修改。
(3)文章的顺序也只是个参考,总体是先从Transport开始,然后介绍Message安全模式下的各种应用。
但是由于时间关系,我今天的第一个实例代码会先从基于Message安全模式的用户名密码验证方式开始,因为已经写好很久了,传输安全模式相对复杂,下一篇会在介绍,时间紧迫我抓紧时间把基于Message安全模式的用户名密码验证方式文章写完,发布出来。不然没法睡觉~这个介绍文章我就分类到首页的新手区。
有兴趣学习WCF安全编程的朋友,可以关注这个系列,留言一起交流~
参考文章:
1.WCF分布式开发步步为赢(14):WCF安全编程--基本概念
WCF安全概念涉及到很多知识,完全超出我个人的预期。我最近一直在关注这个方面的内容,最大的感受就是WCF安全机制非常的复杂,或者说安全机制强大。WCF安全编程一直是一个重要的领域,因为安全的问题不单单针对WCF服务,还要客户端的配合。
【1】安全验证模式:
我们先来简单回顾一下WCF身份验证机制,WCF支持的6种身份验证机制可以参考下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/200908/8f069ee39d37f3e64747a5df9a7e243a.gif)
【1.1】Transport安全模式与客户端验证方式:
绑定协议和客户端验证方式在transport模式下的对应关系:
绑定\客户端凭据 | None | Windows | Username | Certificate |
---|---|---|---|---|
BasicHttpBinding | Yes (Default) | Yes | Yes | Yes |
NetTcpBinding | Yes | Yes (Default) | No | Yes |
NetPeerTcpBinding | No | No | Yes (Default) | Yes |
NetNamedPipeBinding | No | Yes (Default) | No | No |
WSHttpBinding | Yes | Yes (Default) | Yes | Yes |
WSFederationHttpBinding | N/A | N/A | N/A | N/A |
WSDualHttpBinding | N/A | N/A | N/A | N/A |
NetMsmqBinding | Yes | Yes (Default) | No | Yes |
绑定\客户端凭据 | None | Windows | Username | Certificate | Issued token |
---|---|---|---|---|---|
BasicHttpBinding | No | No | Yes | Yes | No |
NetTcpBinding | Yes | Yes (Default) | Yes | Yes | Yes |
NetPeerTcpBinding | N/A | N/A | N/A | N/A | N/A |
NetNamedPipeBinding | N/A | N/A | N/A | N/A | N/A |
WSHttpBinding | Yes | Yes (Default) | Yes | Yes | Yes |
WSFederationHttpBinding | N/A | N/A | N/A | N/A | N/A |
WSDualHttpBinding | Yes | Yes (Default) | Yes | Yes | Yes |
NetMsmqBinding | Yes | Yes (Default) | Yes | Yes | Yes |
【2】代码结构概要:
这里我把代码整体上按照安全模式和消息模式来分,然后是客户端身份验证方式,在就是绑定协议,做个分类的依据。这里我给出主要的是无身份验证模式None,Basic,自定义用户名密码,和自定义X509证书,Window,Certificate验证方式的Demo代码结构。目前给出的是大概的结构如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/200908/206eebe7b24c8ac0ce9a6051f00b4eab.gif)
【3】文章结构概要:
文章基本的组织接口是介绍每种Demo代码的具体的实现原理和过程,每个文章会详细介绍关键的实现步骤,和应该注意的细节。对代码进行讲解,最后会给出可执行代码供大家参考。应该在10篇左右,因为针对一种安全机制,我就只实现一个绑定协议,例如是WSHTTPBinding的实现,basicHTTPBinding和NetTcpBinding我就不给出了,大家有兴趣的可以拓展,根据实际学习或者项目需要自己实现。代码文章的初步规划如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/200908/b626dddb577d3f7ed8d38f9e72ac178a.gif)
【4】总结
(1)《WCF分布式安全开发实践》主要针对的是一些常见的验证方式的介绍,并给出可以执行的实例代码。
(2)应用相对较少的方式,如IssuedToken方式,我在这个系列里就不给出介绍了,如果需要可以再对这个系列文章做个调整。代码结构和文章结构是作个参考,实际可能根据大家的意见做个修改。
(3)文章的顺序也只是个参考,总体是先从Transport开始,然后介绍Message安全模式下的各种应用。
但是由于时间关系,我今天的第一个实例代码会先从基于Message安全模式的用户名密码验证方式开始,因为已经写好很久了,传输安全模式相对复杂,下一篇会在介绍,时间紧迫我抓紧时间把基于Message安全模式的用户名密码验证方式文章写完,发布出来。不然没法睡觉~这个介绍文章我就分类到首页的新手区。
有兴趣学习WCF安全编程的朋友,可以关注这个系列,留言一起交流~
参考文章:
1.WCF分布式开发步步为赢(14):WCF安全编程--基本概念
相关文章推荐
- WCF分布式安全开发实践(0):文章和代码结构规划介绍
- WCF分布式安全开发实践(11):消息安全模式之Certificate身份验证:Message_Certificate_WSHttpBinding
- WCF分布式安全开发实践(5):传输安全模式之Certificate身份验证:Transport_Certificate_WSHttpBinding
- WCF分布式安全开发实践(3):传输安全模式之自定义用户名密码身份验证
- WCF分布式安全开发实践(10):消息安全模式之自定义用户名密码:Message_UserNamePassword_WSHttpBinding
- WCF分布式安全开发实践(8):消息安全模式之用户名身份验证:Message_UserName_WSHttpBinding
- WCF分布式安全开发实践(9):消息安全模式之Windows身份验证:Message_Windows_NetTcpBinding
- WCF分布式安全开发实践(6):传输安全模式之自定义X509Certificate证书验证:Transport_X509Certificate_WSHttpBinding
- WCF分布式安全开发实践(8):消息安全模式之用户名身份验证:Message_UserName_WSHttpBinding
- WCF分布式安全开发实践(1):传输安全模式之匿名客户端:Transport_None_WSHttpBinding
- WCF分布式安全开发实践(12):消息安全模式之自定义X509证书验证:Message_CustomX509Certificate_WSHttpBinding
- WCF分布式安全开发实践(12):消息安全模式之自定义X509证书验证:Message_CustomX509Certificate_WSHttpBinding
- WCF分布式安全开发实践(6):传输安全模式之自定义X509Certificate证书验证
- WCF分布式安全开发实践(1):传输安全模式之匿名客户端:Transport_None_WSHttpBinding
- WCF分布式安全开发实践(9):消息安全模式之Windows身份验证:Message_Windows_NetTcpBinding
- WCF分布式安全开发实践(11):消息安全模式之Certificate身份验证:Message_Certificate_WSHttpBinding
- WCF分布式安全开发实践(3):传输安全模式之自定义用户名密码身份验证:Transport_UserNamePassword_WSHttpBinding
- WCF分布式安全开发实践(5):传输安全模式之Certificate身份验证:Transport_Certificate_WSHttpBinding
- 不要写完代码就束之高阁,适当地优化代码结构,能够为以后的开发带来许多方便,这《重构:改善既有代码的设计》就向你介绍了这方面的技巧,说得非常详细。
- WCF分布式安全开发:消息安全模式之自定义X509证书验证