使用 REST API 搭配 OpenAPI 定義配置 DAST 掃描
概述
本節說明如何使用 REST API 搭配 OpenAPI 定義來配置動態應用程式安全測試 (DAST) 掃描。
此方法支援基於檔案 (JSON、YAML、YML) 和基於 URL 的 OpenAPI 定義,並新增支援為您的 API 掃描配置授權和其他參數。
- 步驟 1:使用 POST /jobs/{jobId}/dastconfig/openapi/specification/process 上傳 OpenAPI 檔案或處理 OpenAPI URL。此 API 從定義中提取並返回檔案路徑和可用參數清單。
- 步驟 2:使用 POST /jobs/{jobId}/dastconfig/openapi/configure 套用配置。您需傳遞檔案/URL 的位置以及
baseUrl和任何可選的授權或參數值。
- 您只能將這些 API 用於 DASTConfig 作業。您無法將它們與 Content-Scan 作業一起使用。
- 如果 DASTConfig 作業已經有 OpenAPI 配置,使用 .../configure API 會替換現有的配置。
基於 OpenAPI 配置的 API 端點
- POST /jobs/{jobId}/dastconfig/openapi/specification/process – 上傳 OpenAPI 描述檔案或處理 URL 以供稍後在配置和參數檢索中使用。
- POST /jobs/{jobId}/dastconfig/openapi/configure – 使用 OpenAPI 定義建立或更新 DAST 配置。
先決條件
- 您需要一個現有的 DASTConfig 工作。我們建議您使用「常規掃描」範本以避免效能問題。您可以使用以下任何 API 來建立 DASTConfig 工作:
- POST/jobs/{templateId}/dastconfig/createjob
- POST/jobs/createjobBasedOnTemplateFile
- POST/jobs
- 您需要 DASTConfig 工作的
jobId。您可以使用GET /folders/{folderId}/jobsAPI 端點來取得此資訊。 - 您需要有效的
asc_xsrf_token來進行 API 請求驗證。您可以從POST /loginAPI 端點取得此權杖。您必須將此權杖作為請求標頭發送。
API 參考:POST /jobs/{jobId}/dastconfig/openapi/specification/process
目的:使用此 API 上傳 OpenAPI 描述檔案或 OpenAPI URL,然後您可以使用 .../configure API 來參考它。此 API 還會擷取並返回上傳檔案或提供的 URL 中可用的其他參數清單。
HTTPS 方法和端點: POST /jobs/{jobId}/dastconfig/openapi/specification/process
路徑參數:
-
jobId(整數,必需):DASTConfig 工作的唯一識別碼。
請求參數(multipart/form-data):
-
openApiDescriptionFile(檔案,可選):.json、.yaml或.yml格式的 OpenAPI 規格檔案。 -
openApiUrl(字串,可選):指向.json、.yaml或.yml格式 OpenAPI 文件的公開可存取 URL。
- 對於基於檔案的 OpenAPI 配置,您必須在呼叫 .../configure 之前使用此 API 上傳檔案。
- 對於基於 URL 的配置,使用此 API 是可選的。您可以使用它在配置之前預覽和檢索 URL 中的可用參數。
成功回應 (200 OK):
- API 在成功時返回
200 OK,包含檔案路徑(如果已上傳)或 URL(如果已提供),以及從 OpenAPI 規範中提取的參數。
回應類別(模型):
OpenApiProcessResponse {openApiFileLocation (string):生成的 OpenAPI 檔案的位置(URL 或路徑),parameters (array[OpenApiAdditionalParameters], optional):從 OpenAPI 規範中提取的 API 參數清單}OpenApiAdditionalParameters {path (string, optional):API 端點路徑(例如,/login, /account/{accountNo}),name (string, optional):參數的名稱(例如,username, password, accountNo),location (string, optional):參數的位置(例如,body, path, query)}
請參閱回應訊息以了解錯誤代碼。
API 參考:POST /jobs/{jobId}/dastconfig/openapi/configure
目的:使用此 API 為 OpenAPI 配置 DAST 作業。您無法將此配置新增到 Content-Scan 作業。如果存在現有配置,此 API 呼叫將取代它。
HTTPS 方法和端點: POST /jobs/{jobId}/dastconfig/openapi/configure
路徑參數:
-
jobId(Integer, Required):您要套用配置的 DASTConfig 作業的路徑參數。
請求主體參數 (JSON):
-
openApiFileLocation (String, Required): 提供指向標準化 OpenAPI 文件(.json,.yaml,.yml) 的公開可存取 URI,或由 .../openapi/specification/process API 為基於檔案的配置所返回的檔案路徑。 -
baseUrl(字串,必需):指定根 URL,該 URL 定義 OpenAPI 描述中所有 API 端點的共同路徑前綴。 -
additionalDomains (String, Optional): 指定要測試的其他網域,以逗號分隔的值。 -
authorization (Object, Optional): 提供用於 API 授權的鍵值對。 這些值在 DAST 配置作業中更新,並用於已驗證的 API 請求。{ "key": "string", "value": "string" } -
參數 (Array[Object], 可選): 提供額外參數清單以在 DAST 配置作業中設定。 您可以透過使用 .../openapi/specification/process API 來擷取額外的參數。[{ "path": "string", "name": "string", "位置": "字串", "值": "string" }]
請求主體範例 (JSON):
{
"openApiFileLocation": "string",
"baseUrl": "string",
"additionalDomains": "string",
"authorization": {
"鍵": "字串",
"值": "string"
},
"parameters": [
{
"路徑": "字串",
"name": "string",
"location": "string",
"value": "string"
}]}
成功回應 (200 OK):
- 成功時,API 會傳回 HTTP 狀態碼
200 OK。
錯誤回應類別(模型):
ErrorMessage {errorMessage (string)}
請參閱「回應訊息」以了解其他錯誤代碼。