自定义 WCF 类型的 Web Service 的安全性
相关项: API 测试
此部分描述如何自定义使用 WCF 的 Web Service 的安全设置。
创建 WCF 场景
-
通过以下方法之一打开“安全设置”对话框:
-
对于端口级别的安全性,请在“工具箱”窗格中右键单击一个 Web Service 端口,然后选择安全设置。
-
对于步骤级别的安全性,请在“属性”窗格中打开安全设置选项卡。清除使用端口的安全设置选项。
-
-
在“安全设置”对话框中,选择“服务详细信息”下拉列表中的“WCF Service”场景。
使用 WSHTTPBinding 的 Web Service
-
在“安全设置”对话框顶部的下拉列表中,选择“WCF 服务 (WSHttpBinding)”。
-
在“客户端身份验证类型”下拉列表中,选择用于绑定的客户端凭据类型 —— Windows、证书或用户名。此值对应于 WCF 的 WSHttpBinding 参数的 MessageClientCredentialType 属性。
Windows 身份验证是 WCF 服务最常用的值。如果对服务使用 WCF 默认设置,请使用此选项。
-
定义身份验证类型的安全设置。可用选项因身份验证类型而异。
备注: 对于某些场景,应指示是否使用 WCF 专有协商机制来获取服务凭据。
-
单击高级可控制安全会话的使用。
使用 CustomBinding 的 Web Service
-
在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。
-
在“安全设置”对话框的主窗格中,设置 Web Service 安全选项,包括:
-
传输类型
-
编码
-
Web service 的身份验证模式
-
网络安全类型
-
自定义绑定和身份验证证书的身份标识
-
将访问 Web Service 的“用户”的客户端用户信息
-
WCF 联合 Web Service
-
在“安全设置”对话框的下拉列表中,选择“WCF 服务联合”场景。
-
提供服务和安全传输的详细信息,包括:
-
传输类型
-
编码
-
Web service 的身份验证模式
-
Web service 的引导策略
-
自定义绑定和身份验证证书的身份标识
-
STS (安全令牌服务)设置
-
备注: 必须同时定义 STS 和应用程序服务器的通信属性
使用 netTcp 或 namedPipe 传输的 WCF 服务
-
在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。
-
将“传输”选项配置为“TCP”或“NamedPipe”。
-
如使用 CustomBinding 的 Web Service中所述设置其他安全设置。
使用 WSE3 安全配置与服务器证书的 Web Service
-
创建新测试并导入包含 W3E3 服务的 WSDL。
-
将方法从 Web Service 添加到画布中。
-
在“属性”窗格中,选择“安全设置”选项卡 ,或者在“工具箱”窗格中右键单击 Web Service 节点并选择“安全设置”。
-
在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。
-
在“安全设置”对话框的主窗格中,将“传输”选项设置为“HTTP”,并将“编码”设置为“文本”。
-
在“身份标识”部分,输入用户名和密码。
-
单击“服务器证书”字段旁边的浏览按钮,并指定存储位置、存储名称和搜索文本(可选)。单击查找,选择证书,并单击选择。
-
提供预期 DNS。
-
单击高级按钮,并在“高级设置”对话框中配置以下设置:
-
在编码选项卡中: 正确设置 WS-Addressing 版本
-
在安全性选项卡中,设置以下选项:
-
启用安全会话: 已启用
-
协商服务凭据: 已启用
-
保护级别: 加密并签名
-
消息保护顺序: 在加密前签名
-
消息安全性版本: WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005 (第一项)
-
需要派生密钥: 已启用
对于所有其他字段,请使用默认设置。
-
-
使用相互证书身份验证的 WCF 服务
以下过程描述如何设置相互证书验证的安全场景,以及如何遵循 WSE3 安全配置。
-
在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。
-
将“传输”选项设置为“HTTP”,将“编码”设置为“文本”。
-
将身份验证模式设置为 MutualCertificate。
-
在身份标识部分中,选择服务器和客户端证书。
-
提供预期 DNS。
-
单击高级按钮,并在“高级设置”对话框中配置以下设置:
-
编码选项卡 —— WS-Addressing: WSA 04/08(对于 WSE3 安全配置)。
-
安全性选项卡 —— 需要派生密钥: 已禁用
对于所有其他字段,请使用默认设置。
-
使用绑定和 TCP 传输的 WCF 场景需要 X.509 客户端证书
以下过程描述如何将 WCF 自定义场景配置为在 nettcp 中需要 X.509 客户端证书。
-
在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。
-
将传输设置为 TCP,将网络安全设置为 SSL 流安全。
-
在“属性”窗格中,打开“事件”选项卡 。
-
在“事件”列表中,选择 BeforeApplyProtocolSettings 事件。在处理程序列中单击,从下拉列表中选择创建默认处理程序。
-
在 TestUserCode.cs 文件中,查找代码的 TODO 部分并添加以下定义。
var wcf = (HP.ST.Ext.CommunicationChannels.Models.WcfChannelBinding)args[1]; var ssl =
(HP.ST.Ext.CommunicationChannels.Models.WcfSslStreamSecurityChannel)wcf.
Protocols.Channels[1]; ssl.RequireClientCertificate = true;对于所有其他字段,请使用默认设置。