通過添加自訂令牌JWT(JSON Web Token)並綁定待驗證的API即可建立API令牌合規驗證規則,ESA將針對傳入的請求進行令牌合規驗證並進行處理,保障您的業務API安全。
配置API令牌規則
在ESA控制台選擇網站管理,在網站列單擊目標網站。
在左側導覽列,選擇。
在API 安全頁面,選擇API 規則頁簽,單擊令牌配置。

在設定頁面,單擊添加,添加令牌資訊。

按業務需求完成令牌參數填寫後,單擊確定即可。
配置名稱:輸入您自訂的令牌名稱,如
JWT-Demo。令牌位置:選擇令牌在請求中的位置,可選擇標題和Cookie兩種欄位,並輸入對應的索引值。
說明為適配不同業務中JWT的所在位置,通過單擊Or可以建立邏輯
或條件,可同時判斷最多4個令牌位置。令牌密鑰:通過手動輸入或上傳JSON檔案來添加令牌密鑰,密鑰要求可參考令牌說明。
說明若配置多個密鑰,則會根據
kid欄位選取密鑰進行校正,若有一份密鑰校正通過則通過。

完成令牌配置後即可進行API規則建立。返回API 規則頁簽,單擊新增規則按鈕。

根據業務需求進行令牌校正相關參數配置即可。
規則名稱:自訂規則名稱,如
rule-jwt-demo。驗證 API:單擊下拉選擇需要進行令牌合規校正的主機記錄,選擇後ESA將自動為您展示所選主機記錄下的API列表,檢查並勾選所需的API即可。
選擇令牌配置:勾選一個或多個需要校正的令牌。當勾選多個令牌時可選擇:
至少校正一個配置:請求需要符合多個令牌配置中的一個即可,否則將被判定為不合規請求。
驗證所有配置:請求需要同時符合所有令牌配置,否則將被判定為不合規請求。
說明當API請求中缺少令牌時,預設會將請求標記為不合規,若有特殊需要可在對應令牌右側的缺少令牌時列下拉選擇忽略。
執行操作:選擇對不符合令牌校正的請求的操作:

防護效果
完成API規則建立後,您可以在左側導覽列選擇,在事件分析頁面通過篩選器選擇防護規則為API 規則,下滑即可在採樣日誌欄中查看詳細的防護日誌。
令牌說明
當前令牌校正僅用於JWT驗證。
欄位說明
公開金鑰格式僅支援JWK,且JWT公開金鑰必須含有kid和alg欄位。欄位含義可參考:
kty:密鑰類型,如EC-橢圓曲線密鑰、RSA-RSA密鑰。use:公開金鑰用途,如sig- 用於數位簽章。crv:橢圓曲線類型,僅適用於橢圓曲線(EC)密鑰,如P-256- NIST標準化的P-256橢圓曲線。kid:自訂的金鑰識別元,如esa。JWK必須帶有kid欄位,用於密鑰的選擇;同樣的,請求的JWT的聲明中也必須帶有kid欄位。使用該欄位可用於令牌密鑰的輪換。x:使用橢圓曲線密鑰時,橢圓曲線公開金鑰的x座標。y:使用橢圓曲線密鑰時,橢圓曲線公開金鑰的y座標。alg:演算法標識,當前支援:RS256- RSA with SHA-256簽名演算法。n:RSA密鑰的模數(modulus),僅適用於RSA密鑰。e:RSA密鑰的公用指數(public exponent),僅適用於RSA密鑰。
樣本
以下為RSA密鑰的JWK樣本。使用RSA密鑰時,crv、x、y欄位應為空白串。
{
"kty": "RSA",
"kid": "test-rsa-key",
"alg": "RS256",
"use": "sig",
"n": "wR8LJDq2pM1uPD5KfmMaasmV20nwgVYnDlsxRjmryLStQeqW-3fe-ELV1tlYHq2-hl8HNNxz5eud8olmqxtrgpihPN9c_pbLY-Jc04_tdpWs10ms1vgoz0S11JEVCK6q9EJ_QCTAxO6GBCdI9t0oUTpBz6QuQCIJAOQdW2k7gZr8CmCn_ianTU1nTxBzAoBxO_r32kl7lx9RTFCZHBJsm8twJ7o0ZXpUjbjhOY2LgdDx3t09YDDOMDYzEOZ86NVzm8qXSekBJFf5-FGNe0Lkht1lsMlBnqlfmWz8q5zUkPZ6XslpgyVqqSaw4DGxXV8aGWRFcOB0Ac2bush6McBAhQ",
"e": "AQAB",
"crv": "",
"x": "",
"y": ""
}