你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure 负载测试预览对安全终结点进行负载测试
在本文中,你将了解如何使用 Azure 负载测试预览版来对 安全应用程序进行负载测试。 受保护的应用程序需要身份验证才能访问终结点。 通过 Azure 负载测试,你能够使用共享机密或凭据对终结点进行身份验证,或者使用客户端证书进行身份验证。
重要
Azure 负载测试目前以预览版提供。 有关 beta 版、预览版或尚未正式发布的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款。
先决条件
- 具有活动订阅的 Azure 帐户。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
- Azure 负载测试资源。 若要创建负载测试资源,请参阅创建并运行负载测试。
- 如果使用的是客户端证书,则为 Azure 密钥保管库。 若要创建密钥保管库,请参阅快速入门使用 Azure 门户创建密钥保管库。
使用共享机密或凭据进行身份验证
在这种情况下,应用程序终结点要求你使用共享机密(例如访问令牌、API 密钥或用户凭据)进行身份验证。 在 JMeter 脚本中,必须为每个应用程序请求提供此安全信息。 例如,要对使用 OAuth 2.0 的 Web 终结点进行负载测试,你需要向 HTTP 请求添加一个包含访问令牌的 Authorization
标头。
下图显示了如何在负载测试中使用共享机密或凭据向应用程序终结点进行身份验证。 为避免在 JMeter 脚本中存储和泄露安全信息,可以将机密安全地存储在 Azure 密钥保管库或 CI/CD 机密存储中。 然后,在 JMeter 脚本中,你可以使用自定义 JMeter 函数 GetSecret
来检索密钥值。 最后,你在对应用程序终结点的 JMeter 请求中指定秘密值。
通过以下两种方式之一在机密存储中添加安全信息:
在 Azure 密钥保管库中添加机密信息。 按照使用机密参数化负载测试中的步骤存储机密并授权负载测试资源读取其值。
将机密信息添加为 CI/CD 中的机密(GitHub Actions 机密或 Azure Pipelines 机密变量)。
将秘密添加到负载测试配置中:
在 Azure 门户中向负载测试添加机密:
导航到 Azure 门户中的负载测试资源。 如果你还没有负载测试,请使用 JMeter 脚本创建一个新的负载测试。
在左侧窗格中,选择“测试”以查看负载测试列表。
从列表中选择你的测试,然后选择“编辑”以编辑负载测试配置。
在“参数”选项卡上,输入机密的详细信息。
字段 值 名称 机密的名称。 你将向 GetSecret
函数提供此名称以检索 JMeter 脚本中的秘密值。值 匹配 Azure 密钥保管库的机密标识符。 选择“应用”以保存负载测试配置更改。
更新 JMeter 脚本以检索机密值:
创建一个用户定义的变量,该变量使用自定义函数
GetSecret
来检索机密值:更新 JMeter 采样器组件以在请求中传递机密。 例如,要提供 OAuth2 访问令牌,需要配置
Authorization
HTTP 标头:
当你现在运行负载测试时,JMeter 脚本可以从机密存储中检索机密信息并通过应用程序终结点进行身份验证。
使用客户端证书进行身份验证
在这种情况下,应用程序终结点要求你使用客户端证书进行身份验证。 Azure 负载测试支持公钥证书标准 #12 (PKCS12) 类型的证书。 在负载测试中只能使用一个客户端证书。
下图显示了如何在负载测试中使用客户端证书对应用程序终结点进行身份验证。 为避免与 JMeter 脚本一起存储和披露客户端证书,请将证书存储在 Azure 密钥保管库中。 运行负载测试时,Azure 负载测试会从密钥保管库中读取证书,并自动将其传递给 JMeter。 JMeter 然后在所有应用程序请求中透明地传递证书。 无需更新 JMeter 脚本即可使用客户端证书。
按照导入证书中的步骤将证书存储在 Azure 密钥保管库中。
重要
Azure 负载测试仅支持 PKCS12 证书。 以 PFX 文件格式上传客户端证书。
验证你的负载测试资源是否有权从你的密钥保管库中检索证书。
Azure 负载测试将证书作为机密检索,以确保证书的私钥可用。 将获取机密权限分配给 Azure 密钥保管库中的负载测试资源。
将证书添加到负载测试配置:
要将客户端证书添加到 Azure 门户中的负载测试:
导航到 Azure 门户中的负载测试资源。 如果你还没有负载测试,请使用 JMeter 脚本创建一个新的负载测试。
在左侧窗格中,选择“测试”以查看负载测试列表。
从列表中选择你的测试,然后选择“编辑”以编辑负载测试配置。
在“参数”选项卡上,输入证书的详细信息。
字段 值 名称 证书的名称。 值 匹配证书的 Azure 密钥保管库机密标识符。 选择“应用”以保存负载测试配置更改。
现在运行负载测试时,Azure 负载测试会从 Azure 密钥保管库检索客户端证书,并将其注入 JMeter Web 请求中。
后续步骤
- 详细了解如何参数化负载测试。