WCF分布式安全开发实践(0):文章和代码结构规划介绍

来源:互联网 发布:北京银行学知支行 编辑:程序博客网 时间:2024/05/16 12:47
Posted on 2009-08-12 00:47 Frank Xu Lei 阅读(1863) 评论(11)  编辑 收藏 网摘 所属分类: WCF分布式安全开发实践, SOA and EAI
     继WCF分布式开发步步为赢(14):WCF安全编程--基本概念 概念介绍了简单的WCF安全编程的基本概念之后,我决定正式推出下一个系列:《WCF分布式安全开发实践》。之所以去此名,就是因为侧重点在WCF安全模式的实践编程上,我会给出每种安全模式的实现的Demo代码。本文就是讲解这个系列文章的组织和规划的情况,作为系列的开篇,也就是从0开始:WCF分布式安全开发实践(0):文章和代码结构规划介绍。内容主要涉及WCF安全验证内容的简要回顾,代码组织结构介绍,文章结构介绍,最后就只总结。
    WCF安全概念涉及到很多知识,完全超出我个人的预期。我最近一直在关注这个方面的内容,最大的感受就是WCF安全机制非常的复杂,或者说安全机制强大。WCF安全编程一直是一个重要的领域,因为安全的问题不单单针对WCF服务,还要客户端的配合。
【1】安全验证模式:
    我们先来简单回顾一下WCF身份验证机制,WCF支持的6种身份验证机制可以参考下图:

【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


【1.2】消息安全模式与客户端验证方式:

绑定/客户端凭据

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

   以上就是WCF在不同的安全模式下,不同的绑定协议所支持的身份验证方式之间的关系。这样的组合多达数十种之多。而我们不能对每种情况都做实现。这里一方面为了学习,另外也是为了结合公司项目的实际情况,我们实现比较常见的WCF安全机制。方面大家的学习和项目实际应用的参考。
【2】代码结构概要:
    这里我把代码整体上按照安全模式和消息模式来分,然后是客户端身份验证方式,在就是绑定协议,做个分类的依据。这里我给出主要的是无身份验证模式None,Basic,自定义用户名密码,和自定义X509证书,Window,Certificate验证方式的Demo代码结构。目前给出的是大概的结构如下:

【3】文章结构概要:
    文章基本的组织接口是介绍每种Demo代码的具体的实现原理和过程,每个文章会详细介绍关键的实现步骤,和应该注意的细节。对代码进行讲解,最后会给出可执行代码供大家参考。应该在10篇左右,因为针对一种安全机制,我就只实现一个绑定协议,例如是WSHTTPBinding的实现,basicHTTPBinding和NetTcpBinding我就不给出了,大家有兴趣的可以拓展,根据实际学习或者项目需要自己实现。代码文章的初步规划如下:

【4】总结
    (1)《WCF分布式安全开发实践》主要针对的是一些常见的验证方式的介绍,并给出可以执行的实例代码。
    (2)应用相对较少的方式,如IssuedToken方式,我在这个系列里就不给出介绍了,如果需要可以再对这个系列文章做个调整。代码结构和文章结构是作个参考,实际可能根据大家的意见做个修改。
    (3)文章的顺序也只是个参考,总体是先从Transport开始,然后介绍Message安全模式下的各种应用。
    但是由于时间关系,我今天的第一个实例代码会先从基于Message安全模式的用户名密码验证方式开始,因为已经写好很久了,传输安全模式相对复杂,下一篇会在介绍,时间紧迫我抓紧时间把基于Message安全模式的用户名密码验证方式文章写完,发布出来。不然没法睡觉~这个介绍文章我就分类到首页的新手区。
    有兴趣学习WCF安全编程的朋友,可以关注这个系列,留言一起交流~
参考文章:
1.WCF分布式开发步步为赢(14):WCF安全编程--基本概念


【老徐的博客】
【作      者】:Frank Xu Lei
【地      址】:http://www.cnblogs.com/frank_xl/
【中文论坛】:微软WCF中文技术论坛
【英文论坛】:微软WCF英文技术论坛

原创粉丝点击