标签:des style blog http io color os 使用 sp
WCF Security 主要包括 "Transfer Security"、"Access Control"、"Auditing" 几个部分。
Transfer Security 主要包括三个方面: "消息完整性(Message Integrity)"、"消息机密性 (Message Confidentiality)" 和 "交互验证(Mutual Authentication)"。
(1) Security Mode
WCF 提供了 5 种不同的安全方式来实现上述三个安全目标。
(2) Bindings and transfer security modes
附:NetTcpBinding、NetNamedPipeBinding 和 NetMsmqBinding 缺省使用 Transport 安全方式,原因是因为它们多用于 Intranet 环境下,相对比较安全。另外 Transport 方式拥有较好的性能,也非常适合内部高性能服务系统使用。BasicHttpBinding 缺省采取 None 方式是为了兼容 ASMX。
我们可以通过编码或者配置文件的方式来指定 Binding 的安全方式。
NetTcpBinding binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.Message;
app.config
<bindings> <netTcpBinding> <binding name = "NewBinding0"> <security mode = "Message" /> </binding> </netTcpBinding> < /bindings>
(3) Credentials
Security Mode 解决了消息的完整性和机密性,那么剩下来的就是 "Authentication" 了。WCF 支持多种认证方式,允许我们从多个 "客户端验证类型(Client Credentials Types)" 中选择适合我们需求的方案,比如经典的 "用户名/密码",或者 "Windows 集成身份认证(NTLM 或 Kerberos)"、"X.509 数字证书" 等。下面两张表展示了不同的绑定类型在不同安全模式下对验证方式的支持情况。
Transport Security and Credentials
Message Security and Credentials
Access Control 又被称之为 "Authorization",和 "Authentication" 验证客户端身份的目的不同,它被用来控制用户(组)的代码访问授权。比如说财务相关服务只能被 "会计部" 访问,人事相关服务只能被 "人事部" 和 "董事会" 访问,越权访问会触发 "权限异常"。简单点说,"Authentication" 询问 "你是谁?",然后 "Authorization" 会限制你该做什么,不该做什么。
Auditing 的作用是将 WCF 安全相关事件记录到 "Windows 系统日志" 中。
标签:des style blog http io color os 使用 sp
原文地址:http://www.cnblogs.com/jfzhu/p/4066178.html