WCF开发之常见部署场景
Intranet应用程序
WCF支持经典的C/S部署方式
多种Windows认证方式(NTLM或Kerberos)
NTLM: 在网络环境中,NTLM 用作身份验证协议以处理两台计算机(其中至少有一台计算机运行 Windows NT 4.0 或更早版本)之间的事务。具有此配置的网络称为“混合模式”,这是 Windows Server 2003 家族中的默认设置,另外,NTLM 是为没有加入到域中的计算机(如独立服务器和工作组)提供的身份验证协议。早期SMB协议在网络上传输明文口令。后来出现 LAN Manager Challenge/Response 验证机制,简称LM,它是如此简单以至很容易就被破解。微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。NTLM是windows早期安全协议,因向后兼容性而保留下来。NTLM是NT LAN Manager的缩写,即NT LAN管理器。
Kerberos:是一种计算机网络授权协议,用来在非安全网路中,对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。Kerberos的扩展产品也使用公开密钥加密方法进行认证。当有N个人使用该系统时,为确保在任意两个人之间进行秘密对话,系统至少保存有它与每个人的共享密钥,所需的最少会话密钥数为N个。Kerberos协议基于对称密码学,并需要一个值得信赖的第三方。Kerberos协议的扩展可以为认证的某些阶段提供公钥密码学支持。
TCP/二进制消息:这种方式通信的速度很快,比Http的要快
通过Windows信任提供对消息的保护 :通过域来管理
服务可以跨进程或者主机的边界来分布:也就是所Service和分布式部署在不同的主机上。
对于这种部署方式来说是针对内网的,最上端是客户端,用户的认证和消息的认证都是通过域来管理的,通过认证以后采用TCP方式和Service通信。
Web Services
WCF支持可以互操作的Web Services
由传输层(SSL )或者消息安全机制来提供传输的安全
SSL:SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等
用户名/密码验证, 典型方案,但是也可以采用其它的方法; 也可以采取X.509证书的方式
X.509证书:X.509 证书通常用于支持 SSL 协议的 Web 浏览器(例如 Netscape Navigator 和 Microsoft Internet Explorer)。SSL(安全套接字层)是一个提供网络通信的认证和保密性的安全协议。使用该协议,这些浏览器需要有实现 SSL 的 Web 服务器支持。
HTTP/Text 或者HTTP/MTOM
MTOM: 消息传输优化机制 (MTOM) 消息编码与 WSHttpBinding 一起使用,它是一种机制,用来以原始字节形式传输包含 SOAP 消息的较大二进制附件,从而使所传输的消息较小。使用 MTOM 的目的在于优化对较大的二进制负载的传输。
支持WS* 协议:WS-*协议体系是Web Service标准体系的有机组成部分,可以保证网络信息的安全、可靠传递与事务管理,是构建各种网络通讯系统必不可少的一类标准。
对于这种部署方式来说是针对Internet的,最上端是客户端,用户的认证和消息的认证都是用户名密码或者证书来验证的,通过认证以后采用HTTP方式和Service通信。
商业伙伴或者跨主机
WCF支持交互证书(mutual certificate )认证
由传输层(SSL )或者消息安全机制来提供传输的安全
证书认证
HTTP/Text 或者HTTP/MTOM, 用于商业伙伴的场景
TCP/binary, 用于防火墙后面的主机到主机之间的认证
这种方式主要采用证书作为认证方式,其本质上还是一个Web Service,所以采用wsHttpBinding,特殊提一下:防火墙内部通信可以采用TCP可以加快二进制传输速度。
Web应用程序
WCF能够将业务功能暴露给Web
应用程序, 防火墙后的交互证书认证; TCP/binary用于提高效率
为ASP.NET应用程序提供了安全的边界
允许跨进程和主机边界的分布式工作
WCF服务是SOA的一部分策略
服务支持, Web应用程序; 内部/外部客户端应用程序; 商业伙伴整合
分布式的业务功能
SOA的部署方式比较复杂,它可以部署不同通信方式和不同业务需求。
上边这些部署方式都是经典的,实际应用中可以变化和扩展,如果对于一些理解的不好也没有关系,这个东西只有实践过才能真正的体会到,而且需要相关的网络访问和信息安全等方面的知识,但是明白了原理也是不错的,我们一直都在努力中,不是吗?(完)