摘要:
Custom验证模式提供了更灵活的可定制的证书验证方式,当需要自定义验证的时候,可以采用这种方式。以下代码是修改客户端验证为“Custom”模式后的相关配置。
设置客户端对服务端凭据验证模式为“Custom”: 阅读全文
摘要:
PeerOrChainTrust验证模式验证证书是否位于 TrustedPeople 证书存储区中,或通过构建证书信任链来验证证书。如果证书通过任一验证方法,就是受信任的。设置验证模式为“PeerOrChainTrust”的配置如以下代码所示。
在服务端设置验证客户端凭据模式为“PeerOrChainTrust”: 阅读全文
摘要:
ChainTrust验证模式使用证书链来验证 X.509证书是否有效以及是否由受信任的颁发者所颁发。它指定每个证书都必须存在于某个证书层次结构中,而该层次结构以位于证书链顶端的根证书颁发机构结束。它将验证 X.509证书是否由受信任的证书颁发机构颁发。通过搜索证书存储区并确定是否已将该证书颁发机构的证书指定为受信任的证书,可以做到这一点。为了使 WCF能够做出此判断,必须将证书颁发机构证书链安装在正确的证书存储区中。
因为 Windows附带一组默认的用于受信任证书颁发机构的证书链,所以可能不必为所有证书颁发机构安装证书链。 阅读全文
摘要:
当证书验证模式设置为“PeerTrust”时,服务端或者客户端会验证证书是否存在于TrustedPeople 证书存储区中。
修改配置文件采用“PeerTrust”验证模式如以下代码。
在服务端设置对客户端的验证模式设置为“PeerTrust”: 阅读全文
摘要:
需要说明的是,和服务器端证书配置在节中,而客户端配置在endpointBehaviors中。在代码清单11-19的服务端配置和代码清单11-23的客户端配置中,都将certificateValidationMode属性设置为“None”。protectionLevel设置为"EncryptAndSign",由于证书验证采用的是SSL加密,仅支持EncryptAndSign的保护级别。
此时启动服务端进行监听,然后启动客户端,得到如图11-11所示的异常信息。 阅读全文
摘要:
serviceCredentials下的clientCertificate配置,可以定义一个用于在双工通信模式中对从服务发送到客户端的消息进行签名和加密的X.509证书。如果服务必须事先拥有客户端的证书才能与该客户端进行安全通信,则需要使用此元素。使用双工通信模式时,会出现这种情况。在更为典型的请求/响应模式中,客户端会将其证书包含在请求中,服务将使用该证书对发送回客户端的响应进行加密和签名。但是,在双工通信模式中,服务没有来自客户端的请求,因此服务需要事先具有客户端的证书,以确保发送到客户端消息的安全。因此,必须通过带外协商来获取客户端的证书,并使用此元素指定该证书。在此元素中设置的证书用于仅针对配置有MutualCertificateDuplex消息安全身份验证模式的绑定加密发送到客户端的消息。 阅读全文
摘要:
书接上文,是哪一项配置使得WCF对传输的消息进行加密操作了呢?继续修改配置文件,客户端配置文件如代码清单1117所示,服务端配置文件如代码清单11-18所示。
代码清单11-18 修改客户端的protectionLevel
/en 阅读全文
摘要:
ServiceSecurityContext对象用于表示安全调用上下文。安全调用上下文保存在TLS中,沿着服务的调用链向下,每个对象的每个方法都可以访问当前的安全调用上下文。获得上下文的方法很简单,只需要访问ServiceSecurityContext对像的Current属性。这里需要注意ServiceSecurityContext对象的两个属性:PrimaryIdentity属性和WindowsIdentity属性。PrimaryIdentity属性包含了调用链最终客户端的身份,如果客户端未通过验证,该属性会被置一个空白身份,如果是Windows身份验证,那么会被赋予一个WindowsIdentity实例。WindowsIdentity属性只有在采用Windows身份验证时有效。 阅读全文
摘要:
默认情况下,NetTcpBinding会生成一个运行时通信堆栈,该堆栈使用传输安全。
NetTcpBinding类共有四个构造函数,分别如下:
q NetTcpBinding()。初始化NetTcpBinding类的新实例。
q NetTcpBinding(SecurityMode)。用所使用的指定安全类型初始化NetTcpBinding类的新实例。
q NetTcpBinding(String)。使用指定配置名称初始化NetTcpBinding类的新实例。
q NetTcpBinding(SecurityMode, Boolean)。用所使用的指定安全类型和一个指示是否显式启用安全会话的值来初始化NetTcpBinding类的新实例。
NetTcpBinding类有一个类型为NetTcpSecurity的属性,名为Security。NetTcpSecuri 阅读全文
摘要:
WCF角色服务能够从可以发送和使用SOAP消息的任何应用程序访问某个用户的角色。这可以包括不使用.NET Framework的应用程序。因此,这些不同应用程序的用户可以在每个应用程序中具有相同的角色。通常情况下,可以检查用户的角色来确定用户具有执行哪些操作的权限。 阅读全文