摘要:在这一部分,我们将主要介绍当向一个组织或者其他安全环境部署和使用服务的问题以及遇到的情况。由于服务可能被宰一个Windows网络的另外机器调用,我们可以利用非基于因特网部署原有的共享认证和授权系统的优势。 因为我们在一个本地网络中,我们可以利用绑定类型的优势,比如TCP(NetTcpBinding),命名管道(如果在同一台机器)来改进性能和效率。我们也可以采用可信赖架构比如MSMQ(NetTcpBinding).章节示例介绍这一章用模型来显示的例子有基于WCF的服务和调用者,它们在一个企业防火墙后的局域网间通信。我们按照基本模型来搭建拓扑,有一个契约/实现类库,控制台宿主应用(SampleHo 阅读全文
WCF 第八章 安全 消息层安全
2011-01-20 15:34 by DanielWise, 1120 阅读, 0 推荐, 收藏,
摘要:消息层安全通过在通过传输通道发送消息之前对消息进行加密和签名来保证消息的机密性。在这种方式下,只有那些知道如何对消息进行解密的组织才可以读取它们。 在一些场合,消息层安全相比传输层安全来说可以提供一个更长的机密性生存周期。一个常见的例子涉及媒介。例如,当一条消息从一个客户端发送给一个服务端,如果消息实际上发送给一个媒介来执行查询或者路由功能而不是接收的终端节点,那么会发生什么?传输层安全将在消息到达媒介之前保证机密性但不会做更进一步的工作。在媒介之后,客户端失去了对机密能力的控制因为加密仅在消息到达媒介之前才使用。通过使用消息层安全,媒介可以读取消息头内容但是不能读取消息体内容。只有期望的接收 阅读全文
WCF 第八章 安全 服务身份
2011-01-19 09:59 by DanielWise, 824 阅读, 0 推荐, 收藏,
摘要:当在客户端和服务端之间创建一个安全通信信道时,客户端可以通过本章描述的很多方法来与服务端认证。客户端可以使用用户名/密码认证,Windows认证或者证书认证。然而同等重要的是认证服务端。如果一个客户端将要与服务端交换敏感信息,那么服务端认证就和客户端认证一样重要。这么做如果失败就会在服务端发生互联网上流行的欺骗诈骗。为了保护以防止这种事情发生,WCF在通过传输层安全创建一个安全的通信信道前需要检查服务身份。 当一个服务的MEX终结点被调用来生成WSDL,它返回服务的身份。如果绑定支持WS-Security协议(所有预定义绑定支持这个协议,除了basicHttpBinding),WSDL将包含服 阅读全文
WCF 第八章 安全 客户端认证
2011-01-11 20:14 by DanielWise, 1369 阅读, 0 推荐, 收藏,
摘要:一个服务的客户端认证是通过向服务提供一系列信赖的声明。声明可以是任何形式,只要客户端和服务端理解这个格式并信赖它的来源就可以。 如果客户端和服务端共享一个秘密信息,比如一个用户名和密码,只要客户端通过一个合法认证发送数据,服务端就相信客户端所说的。这是HTTP基本认证架构。在一个客户端机器和服务器运行在活动目录或者域中定义的账户的Windows-Only环境中,客户端和服务端已经是一种信赖关系。在这种情况下,可以使用Windows 认证,而Kerbeors或者NTLM令牌将会使用。如果客户端和服务端都信赖一些第三方组织而且不是一个Windows域的一部分时,基于证书的认证时最适合的,这样客户端 阅读全文
WCF 第八章 安全 传输层安全
2011-01-07 18:14 by DanielWise, 1483 阅读, 0 推荐, 收藏,
摘要:传输层安全,正如它的名字所暗示的,在客户端和服务端的通信信道中提供安全。这个层次的安全可以包含加密和认证。信道栈(绑定)确定加密类型以及可用的认证协议。 在最低限度,传输层安全确保通信在客户端和服务端之间是加密的以便于只有客户端和服务端可以理解交换消息。用来加密的特殊算法是底层协议(例如,HTTPS使用SSL)的一个函数或者可以在绑定中(MSMQ 可以使用RC4Stream或者AES)使用。 除了加密,传输层安全可以通过在通信信道建立时请求由客户端发送给服务端的证书来包含客户端认证。证书可以是数字证书,SAML 令牌,Windows令牌或者一个共享机密比如一个用户名和密码。传输层安全也在客户端 阅读全文
WCF 第八章 安全 基于证书的加密
2011-01-05 20:57 by DanielWise, 2260 阅读, 0 推荐, 收藏,
摘要:证书以及它们所提供的声明是一个安全的提供身份的通用方法。它们提供了一个鲁棒性的安全架构可以让它们非常适合加密和认证。WCF使用X.509工业标准证书,它被很多技术提供商广泛采用。互联网浏览器和互联网服务器使用这个标准来存储加密密钥并在网络上为SSL通信签名。证书提供强加密而且很容易理解和文档化。 证书的主要劣势是从第三方授权组织获取它们用于生产的代价以及呈现它们的复杂度。你如何分发证书?如果一个证书被偷了你该怎么做?在一个证书丢失了后你如何恢复数据?如果你在一个客户端电脑上存储证书,你如何从其他地方访问信息?有很多解决方案处理了这些问题,从在一个局域网内部或者在公共互联网上将证书存储到一个目录 阅读全文
WCF 第八章 安全
2011-01-04 17:37 by DanielWise, 1422 阅读, 0 推荐, 收藏,
摘要:很难想象在当今环境的商业应用中有比安全还要严重的一个方面。性能和可用性也是主要关注的,但对一些偶尔需要安全(事实上,相比带来的价值来说可能更加有害)的应用程序是没有太多价值的。当我们使用在线银行服务时,我们相信应用服务提供商已经尽他们最大努力来阻止滥用,数据崩溃,攻击以及将我们的财务信息暴露给其他人。当我们向使用者提供基于WCF的服务时也有同样的要求。 这一章主要关注安全背后的概念和一些使用WCF来让服务变得安全(当必要时)的实践。我们将通过介绍主要概念开始,然后我们进入详细部分,伴随着很多例子的介绍。 在对概念描述以后,为了与本章节剩余部分一起工作而提供了必须的背景内容,我们开始介绍创建并使 阅读全文
WCF 第七章 寄宿 总结
2010-12-30 12:35 by DanielWise, 555 阅读, 1 推荐, 收藏,
摘要:当使用WCF寄宿时它能带来很大的灵活性。特别的,WCF服务可以在任何操作系统进程中寄宿。服务宿主,或者仅仅成为"宿主", 负责启动和关闭服务并为控制服务提供基本的管理函数。为一个基于操作性能要求比如可用性,可信赖性和可管理性的服务选择正确的寄宿环境。 IIS和Windows 进程激活服务(WAS)有用来寄宿WCF服务的内建结构。先前特性只在IIS中可用,比如进程激活,回收和身份管理,已经被移植到WAS中并对除了HTTP协议的所有协议可用。这让WAS成为一个IIS的超级替代者,但是IIS对寄宿基于HTTP的WCF服务是很理想的。WCF通过ASP.NET 兼容模式支持很多ASMX特性。 除了IIS 阅读全文
WCF 第七章 寄宿 定义服务和终结点地址
2010-12-30 12:14 by DanielWise, 1899 阅读, 1 推荐, 收藏,
摘要:一个WCF服务是一系列终结点集合,每个终结点有一个独一无二的地址。终结点地址和绑定确定了终结点在哪里以及如何监听进入请求。除了终结点地址,服务本身也有地址,称为基地址。 一个服务的基地址用来作为可能在终结点中定义的相对地址的基地址。使用相对地址,而不是绝对地址,终结点地址让在一个服务中管理终结点变得更加容易。通过相对地址,你可以在一个服务中仅通过改变服务基地址就改变所有终结点地址。 当在一个终结点中使用一个相对地址时,相对地址附加到基地址来形成服务基地址。例如,如果一个服务基地址是http://localhost/foo 而终结点地址是bar,终结点将会在http://localhost/fo 阅读全文
WCF 第七章 寄宿 在一个进程中寄宿多个服务
2010-12-30 10:58 by DanielWise, 2804 阅读, 0 推荐, 收藏,
摘要:将应用程序功能聚集到正确的服务层次是系统设计的一个必须元素。创建一个有很多接口的系统,这个系统也会变得很令人迷惑。创建只有很多接口的一个系统,这个系统会是变成一个很难改变的整体。 在第二章”契约”,我们描述了如何将多个类接口集成到一个单一的终结点中。这是通过.NET接口集成完成的。我们也描述了如何在一个单一服务内部暴露多个终结点。这一部分提供了一个可供选择的方案。不是通过将两个接口合并为一个然后将聚合作为一个服务暴露出来,这里我们描述的是如何在一个单一的操作系统进程内分别暴露两个服务。 一个ServiceHost 仅暴露一个服务。所以,为了在一个操作系统进程内暴露多个服务,你需要实现多个Ser 阅读全文