自定义 WCF 类型的 Web Service 的安全性

相关项: API 测试

此部分描述如何自定义使用 WCF 的 Web Service 的安全设置。

创建 WCF 场景

  1. 通过以下方法之一打开“安全设置”对话框:

    • 对于端口级别的安全性,请在“工具箱”窗格中右键单击一个 Web Service 端口,然后选择安全设置

    • 对于步骤级别的安全性,请在“属性”窗格中打开安全设置选项卡。清除使用端口的安全设置选项。

  2. 在“安全设置”对话框中,选择“服务详细信息”下拉列表中的“WCF Service”场景。

返回页首

使用 WSHTTPBinding 的 Web Service

  1. 在“安全设置”对话框顶部的下拉列表中,选择“WCF 服务 (WSHttpBinding)”

  2. 在“客户端身份验证类型”下拉列表中,选择用于绑定的客户端凭据类型 —— Windows证书用户名。此值对应于 WCF 的 WSHttpBinding 参数的 MessageClientCredentialType 属性。

    Windows 身份验证是 WCF 服务最常用的值。如果对服务使用 WCF 默认设置,请使用此选项。

  3. 定义身份验证类型的安全设置。可用选项因身份验证类型而异。

    备注: 对于某些场景,应指示是否使用 WCF 专有协商机制来获取服务凭据。

  4. 单击高级可控制安全会话的使用。

返回页首

使用 CustomBinding 的 Web Service

  1. 在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。

  2. 在“安全设置”对话框的主窗格中,设置 Web Service 安全选项,包括:

    • 传输类型

    • 编码

    • Web service 的身份验证模式

    • 网络安全类型

    • 自定义绑定和身份验证证书的身份标识

    • 将访问 Web Service 的“用户”的客户端用户信息

返回页首

WCF 联合 Web Service

  1. 在“安全设置”对话框的下拉列表中,选择“WCF 服务联合”场景。

  2. 提供服务和安全传输的详细信息,包括:

    • 传输类型

    • 编码

    • Web service 的身份验证模式

    • Web service 的引导策略

    • 自定义绑定和身份验证证书的身份标识

    • STS (安全令牌服务)设置

备注: 必须同时定义 STS 和应用程序服务器的通信属性

返回页首

使用 netTcp 或 namedPipe 传输的 WCF 服务

  1. 在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。

  2. 将“传输”选项配置为“TCP”或“NamedPipe”

  3. 使用 CustomBinding 的 Web Service中所述设置其他安全设置。

返回页首

使用 WSE3 安全配置与服务器证书的 Web Service

  1. 创建新测试并导入包含 W3E3 服务的 WSDL。

  2. 将方法从 Web Service 添加到画布中。

  3. 在“属性”窗格中,选择“安全设置”选项卡 ,或者在“工具箱”窗格中右键单击 Web Service 节点并选择“安全设置”

  4. 在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。

  5. 在“安全设置”对话框的主窗格中,将“传输”选项设置为“HTTP”,并将“编码”设置为“文本”

  6. 在“身份标识”部分,输入用户名和密码。

  7. 单击“服务器证书”字段旁边的浏览按钮,并指定存储位置存储名称搜索文本(可选)。单击查找,选择证书,并单击选择

  8. 提供预期 DNS

  9. 单击高级按钮,并在“高级设置”对话框中配置以下设置:

    1. 编码选项卡中: 正确设置 WS-Addressing 版本

    2. 安全性选项卡中,设置以下选项:

      • 启用安全会话: 已启用

      • 协商服务凭据: 已启用

      • 保护级别: 加密并签名

      • 消息保护顺序: 在加密前签名

      • 消息安全性版本: WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005 (第一项)

      • 需要派生密钥: 已启用

      对于所有其他字段,请使用默认设置。

返回页首

使用相互证书身份验证的 WCF 服务

以下过程描述如何设置相互证书验证的安全场景,以及如何遵循 WSE3 安全配置。

  1. 在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。

  2. 将“传输”选项设置为“HTTP”,将“编码”设置为“文本”

  3. 将身份验证模式设置为 MutualCertificate

  4. 身份标识部分中,选择服务器和客户端证书。

  5. 提供预期 DNS

  6. 单击高级按钮,并在“高级设置”对话框中配置以下设置:

    1. 编码选项卡 —— WS-Addressing: WSA 04/08(对于 WSE3 安全配置)。

    2. 安全性选项卡 —— 需要派生密钥: 已禁用

    对于所有其他字段,请使用默认设置。

返回页首

使用绑定和 TCP 传输的 WCF 场景需要 X.509 客户端证书

以下过程描述如何将 WCF 自定义场景配置为在 nettcp 中需要 X.509 客户端证书。

  1. 在“安全设置”对话框的下拉列表中,选择“WCF 服务 (CustomBinding)”场景。

  2. 传输设置为 TCP,将网络安全设置为 SSL 流安全

  3. 在“属性”窗格中,打开“事件”选项卡

  4. 在“事件”列表中,选择 BeforeApplyProtocolSettings 事件。在处理程序列中单击,从下拉列表中选择创建默认处理程序

  5. 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;

    对于所有其他字段,请使用默认设置。

返回页首