设置标准 Web Service 的安全性

相关项: API 测试

此任务描述如何配置标准 Web Service 的安全设置。此模式允许您定义 HTTP 传输信息和安全元素,例如令牌。

创建 Web Service 场景

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

    • 要在端口级别上设置安全性,请在工具箱中右键单击 Web Service 端口,然后选择安全设置

    • 要为画布上已存在的特定 Web Service 步骤设置安全性,请选择该步骤,然后打开“属性”窗格中的安全设置选项卡。清除使用端口的安全设置选项。

    • 对于“SOAP 请求”步骤,请在“属性”窗格中单击安全设置选项卡。

  2. 在“安全设置”对话框中,选择服务详细信息下拉列表(默认)中的 Web Service

  3. 返回页首

配置 HTTP 设置

在“安全设置”对话框的主窗口中,选择 HTTP 选项卡,并设置传输和代理服务器信息。

返回页首

使用 TLS 添加传输级别安全性

在 API 测试中使用 TLS 协议来保护您的 Web Service。

备注: Windows 7、Windows Server 2016 和 Windows Server 2012 不支持 TLS 1.3。

在 Windows 操作系统上使用 TLS 1.0、1.1 或 1.2 保护 Web Service

  1. 在画布中选择已存在的 Web Service 步骤,在“属性”窗格中打开“事件”选项卡。

  2. 在“事件”选项卡的 BeforeExecuteStepEvent 行中,单击下拉箭头,选择“创建默认处理程序”

    文档窗格中将打开 TestUserCode.cs 选项卡,并且一段代码将被添加到此文件的 BeforeExecuteStepEvent 事件。

  3. 在 TestUserCode.cs 选项卡中,导入 System.NetSystem.Net.Security

    导入的代码应如下所示:

  4. 在括号内,使用语句替换 //TODO: Add your code here... 字符串,该语句应指示 UFT One 使用 TLS 协议并指定要使用的版本:

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls<版本>

    备注:  

    • 要指定 TLS 1.0,请使用空版本字符串。

    • 要指定 TLS 1.1,请使用版本字符串 11

    • 要指定 TLS 1.2,请使用版本字符串 12

在 Windows 10 或 11 上使用 TLS 1.3 保护 Web Service

  1. 要在 Windows 10 上运行 API 测试,请在以下注册表路径中创建 DWORD 注册表值 "Enabled" 和 "DisabledByDefault":

    注册表路径:

    Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client

    有关详细信息,请参阅 TLS、DTLS 和 SSL 协议版本设置

  2. 在画布中选择已存在的 Web Service 步骤,在“属性”窗格中打开“事件”选项卡。

  3. 在“事件”选项卡的 BeforeExecuteStepEvent 行中,单击下拉箭头,选择“创建默认处理程序”

    文档窗格中将打开 TestUserCode.cs 选项卡,并且一段代码将被添加到此文件的 BeforeExecuteStepEvent 事件。

  4. 在 TestUserCode.cs 选项卡中,导入 System.NetSystem.Net.Security

    导入的代码应如下所示:

  5. 在括号内,使用语句替换 //TODO: Add your code here... 字符串,该语句应指示 UFT One 使用 TLS 协议:

    ServicePointManager.SecurityProtocol = SecurityProtocolType.SystemDefault;

    备注: 建议您使用 SystemDefault,而不是直接指定 TLS 版本。

返回页首

使用用户名令牌提高消息级别安全性

要发送消息级别的用户名/密码令牌(用户名令牌):

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

  2. 在“安全设置”对话框的主要部分中,单击 WS-安全性选项卡。

  3. 在 WS-Security 选项卡中,单击“添加令牌”按钮 ,然后添加“用户名”令牌。

  4. 在下部窗格中,自定义令牌详细信息,例如用户名和密码。

返回页首

通过使用 X.509 证书进行签名来提高消息级别安全性

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

  2. 在“安全设置”对话框的主要部分中,单击 WS-安全性选项卡。

  3. 在“WS-安全性”选项卡中,从下拉列表中单击添加令牌按钮 并选择 X509 证书

  4. 在下部窗格中输入令牌名称。

  5. 单击浏览按钮可导航到证书文件。证书必须安装在 Windows 证书存储中。

  6. 选择引用类型。由于此令牌用于签名,所以最常用的类型为 BinarySecurityToken

  7. 单击添加消息签名按钮

  8. 签名令牌下拉列表中,选择先前步骤中输入的令牌。

  9. 要使用证书对特定元素进行签名,请向下滚动到 XPath 字段并提供 XPath 表达式。

    不能使用 XPath 表达式来对 SOAP 请求的安全元素之下的时间戳或令牌进行签名。

    • 要对 SOAP 正文时间戳WS-Addressing 进行签名,请选中预定义的部分区域中的复选框。

    • 要对安全元素中的令牌进行签名,请在签名对象区域中的令牌 (可选) 字段中选择令牌。

    备注: 证书需要安装在 Windows 证书存储中。在上面的示例中,您需要设置实际存储名称、存储位置和证书的主题名称。

返回页首

使用证书对 Web Service 消息进行加密

要使用服务证书对消息进行加密,请执行以下操作:

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

  2. 在“安全设置”对话框的主要部分中,选择 WS-安全性选项卡。

  3. 在 WS-Security 选项卡中,单击“添加令牌”按钮 并从“安全令牌”下拉列表中选择相应的令牌

  4. 输入令牌名称并设置令牌或证书属性。

  5. 单击添加消息加密按钮 。在下拉列表中,选择先前步骤中创建的令牌。

  6. 向下滚动到 XPath 字段。将 XPath 表达式输入元素以加密,例如: // *[local-name(.)='Body']

返回页首

发送用户名令牌并使用 X.509 证书对令牌进行加密

以下部分介绍如何向服务发送用户名令牌,以及如何使用服务器的 X.509 证书对它进行加密:

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

  2. 在“安全设置”对话框的主要部分中,选择 WS-安全性选项卡。

  3. 在“WS-安全性”选项卡中,从安全令牌下拉列表中单击添加令牌按钮 并选择用户名令牌

  4. 在下部窗格中,为用户名令牌提供令牌详细信息。

  5. 再次单击“添加令牌”按钮 并从“安全令牌” 下拉列表中选择“X509 证书令牌”

  6. 在下部窗格中,输入令牌的详细信息,以引用服务器的公共证书。由于此令牌用于加密,请使用引用作为引用类型

  7. 单击添加消息加密按钮 。在下拉列表中,选择先前步骤中创建的 X.509 令牌。

  8. 要加密特定消息,请滚动到 XPath 字段。输入 XPath 表达式,例如: // *[local-name(.)='Body']

返回页首

配置 WS-Addressing(可选)

  1. 在“安全设置”对话框的主窗格中,单击 WS-Addressing 选项卡。

  2. 在“WS-Addressing”选项卡中选择相关版本或(如果不使用 WS-Addressing)。

  3. 答复字段中提供备选目标。

返回页首