使用 Azure 負載測試對安全端點進行負載測試
在本文中,您會了解如何搭配需要驗證的應用程式端點使用 Azure 負載測試。 根據您的應用程式實作,您可能會使用存取權杖、使用者認證或客戶端憑證以驗證要求。
Azure 負載測試支援下列選項用於驗證的端點:
必要條件
使用共用祕密或認證進行驗證
在此案例中,應用程式端點會要求您使用共用祕密,例如存取權杖、API 金鑰或使用者認證來進行驗證。
下圖顯示如何使用共用祕密或認證,在負載測試中向應用程式端點進行驗證。
使用共用祕密或使用者認證進行驗證的流程為:
- 例如,將祕密或認證安全地儲存在 Azure Key Vault 或 CI/CD 祕密存放區中。
- 參考負載測試組態中的秘密。
- 在 JMeter 指令碼中,使用
GetSecret
函式擷取祕密值,並將祕密值傳遞至應用程式要求。
安全地儲存祕密
為了避免在 JMeter 指令碼中儲存和揭露安全性資訊,您可以安全地將祕密儲存在 Azure Key Vault 或 CI/CD 祕密存放區中。
您可以透過下列兩種方式之一,在祕密存放區中新增安全性資訊:
在 Azure Key Vault 中新增祕密資訊。 請遵循使用秘密將負載測試參數化的步驟來儲存祕密,並授權負載測試資源讀取其值。
將祕密資訊新增為 CI/CD 中的祕密 (GitHub Actions 祕密或 Azure Pipelines 祕密變數)。
參考負載測試組態中的祕密
在您可以擷取 JMeter 測試指令碼中的祕密值之前,必須先參考負載測試組態中的祕密。
在 Azure 入口網站中,您可以參考 Azure Key Vault 中儲存的祕密。 若要在 Azure 入口網站中新增和設定負載測試祕密:
擷取並使用 JMeter 指令碼中的祕密值
您現在可以使用 GetSecret
自訂函式,擷取 JMeter 指令碼中的祕密值,並將其傳遞至應用程式要求。 例如,使用 Authorization
HTTP 標頭將 OAuth 權杖傳遞至要求。
建立使用者定義的變數,以使用
GetSecret
自訂函式擷取祕密值:GetSecret
函式總結從 Azure Key Vault 或 CI/CD 祕密存放區中擷取值的方式。更新 JMeter 取樣器元件,以在要求中傳遞祕密。
例如,若要提供 OAuth2 存取權杖,您可以新增
HTTP Header Manager
來設定Authorization
HTTP 標頭:
使用用戶端憑證進行驗證
在此案例中,應用程式端點會要求您使用用戶端憑證進行驗證。 Azure 負載測試支援公開金鑰憑證標準 #12 (PKCS12) 類型的憑證。 一個負載測試只能使用一個用戶端憑證。
下圖顯示如何使用用戶端憑證,在負載測試中向應用程式端點進行驗證。
使用用戶端憑證進行驗證的流程為:
- 將用戶端憑證安全地儲存在 Azure Key Vault 中。
- 參考負載測試組態中的憑證。
- Azure 負載測試會以透明方式將憑證傳遞至 JMeter 中的所有應用程式要求。
將用戶端憑證儲存在 Azure Key Vault 中
為了避免隨著 JMeter 指令碼儲存和揭露用戶端憑證,請將憑證儲存在 Azure Key Vault 中。
請遵循匯入憑證的步驟,將憑證儲存在 Azure Key Vault 中。
重要
Azure 負載測試僅支援 PKCS12 憑證。 以 PFX 檔案格式上傳用戶端憑證。
授與對 Azure 金鑰保存庫的存取權
當您在 Azure Key Vault 中儲存負載測試秘密或憑證時,負載測試資源會使用受控識別來存取金鑰保存庫。 在設定管理身分識別之後,您必須授與負載測試資源的受控識別從金鑰保存庫讀取這些值的權限。
若要授與 Azure 負載測試資源從 Azure 金鑰保存庫讀取祕密或憑證的權限:
在 Azure 入口網站中,移至 Azure 金鑰保存庫資源。
如果您沒有金鑰保存庫,請遵循 Azure Key Vault 快速入門中的指示來建立金鑰保存庫。
在左側窗格中,選取 [存取原則],然後選取 [+ 建立]。
在 [權限] 索引標籤的 [祕密權限] 下,選取 [取得],然後選取 [下一步]。
注意
Azure 負載測試會將憑證擷取為「祕密」,以確保憑證的私密金鑰可供使用。
在 [主體] 索引標籤上,搜尋並選取負載測試資源的受控識別,然後選取 [下一步]。
如果您使用系統指派的受控識別,則受控識別名稱會符合 Azure 負載測試資源的名稱。
再次選取 [下一步]。
當您的測試執行時,與負載測試資源相關聯的受控識別現在可以從金鑰保存庫讀取負載測試的祕密或憑證。
參考負載測試組態中的憑證
若要將用戶端憑證傳遞至應用程式要求,您必須參考負載測試組態中的憑證。
若要在 Azure 入口網站中將用戶端憑證新增至負載測試:
在 Azure 入口網站中,瀏覽至您的 Azure 負載測試資源。 如果您還沒有任何負載測試,請使用 JMeter 指令碼建立新的負載測試。
在左窗格中,選取 [測試] 以檢視負載測試的清單。
從清單中選取您的測試,然後選取 [編輯] 以編輯負載測試設定。
在 [參數] 索引標籤上,輸入憑證的詳細資料。
欄位 值 名稱 憑證的名稱。 值 比對 Azure Key Vault 中憑證的祕密識別碼。 選取 [套用] 以儲存負載測試設定變更。
當您執行負載測試時,Azure 負載測試會從 Azure Key Vault 擷取用戶端憑證,並自動將其插入每個 JMeter Web 要求中。
相關內容
- 深入了解如何將負載測試參數化。