WCF 安全

安全性是实现面向服务的应用程序的任何编程技术或框架的关键部分

WCF 是从头开始构建的,用于在消息和服务级别提供必要的安全基础结构。

在以下部分中,你将了解如何在 WCF 中使用许多可用的安全设置,以及一些常见的部署方案。

对于消息保护,WCF 支持两种传统的安全模型,即传输安全性和消息安全性。

除了指定服务的通信协议和编码之外,绑定还允许你配置消息保护设置和身份验证模式。

WCF 中的默认安全设置:

绑定 设置
WsHttpBinding Windows 身份验证的邮件安全性
basicHttpBinding 没有安全感
WsFederationHttpBinding 联合身份验证的邮件安全性
NetTcpBinding Windows 身份验证的传输安全性
NetNamedPipeBinding Windows 身份验证的传输安全性
NetMsmqBinding Windows 身份验证的传输安全性

考虑以下示例:

 <wsHttpBinding >
   <binding name=”UsernameBinding” >
    <security mode=”Message” >
      <message clientCredentialType=”UserName”/ >
    </security >
   </binding >
 </wsHttpBinding >

在此示例中,服务已配置了消息安全性和用户名安全性令牌配置文件。绑定的其余安全设置采用默认值。

安全模式

安全模式设置确定任何服务的两个基本安全方面:消息保护的安全模型和支持的客户端身份验证模式。

安全模式 描述
没有 该服务适用于任何人,并且邮件在通过传输时不受保护。使用此模式时,该服务容易受到任何类型的攻击。
运输 使用传输安全模型对客户端进行身份验证并保护消息。该模式提供了在运输安全性中讨论的优点和缺点。
信息 使用消息安全模型对客户端进行身份验证并保护消息。此模式提供了消息安全性中讨论的优点和缺点。
同时使用传输安全性和消息安全模型来验证服务使用者并保护消息。此模式仅受 MSMQ 绑定支持,并且在两个级别都需要相同的凭据。
TransportWithMessageCredentials 邮件保护由传输提供,用于验证服务使用者的凭据作为邮件的一部分传播。此模式提供了使用消息身份验证中支持的任何凭据或令牌类型的灵活性,同时在传输级别执行服务身份验证和消息保护。
TransportCredentialOnly 使用传输安全性对客户端进行身份验证服务未经过身份验证,并且邮件(包括客户端凭据)在传输中以纯文本形式显示。这种安全模式可能是有用的,因为客户端和服务之间传输的信息类型不敏感,尽管凭证也会暴露给任何人。