全部產品
Search
文件中心

Edge Security Acceleration:API令牌合規驗證

更新時間:Dec 16, 2025

通過添加自訂令牌JWT(JSON Web Token)並綁定待驗證的API即可建立API令牌合規驗證規則,ESA將針對傳入的請求進行令牌合規驗證並進行處理,保障您的業務API安全。

配置API令牌規則

  1. 在ESA控制台,選擇網站管理,在網站列單擊目標網站。

  2. 在左側導覽列,選擇安全防護 > API安全

  3. API安全頁面,選擇API規則頁簽,單擊令牌配置image

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

  5. 按業務需求完成令牌參數填寫後,單擊確定即可。

    • 配置名稱:輸入您自訂的令牌名稱,如JWT-Demo

    • 令牌位置:選擇令牌在請求中的位置,可選擇標題Cookie兩種欄位,並輸入對應的索引值。

      說明

      為適配不同業務中JWT的所在位置,通過單擊Or可以建立邏輯條件,可同時判斷最多4個令牌位置。

    • 令牌密鑰:通過手動輸入或上傳JSON檔案來添加令牌密鑰,密鑰要求可參考令牌說明

      說明

      若配置多個密鑰,則會根據kid欄位選取密鑰進行校正,若有一份密鑰校正通過則通過。

    image

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

  7. 根據業務需求進行令牌校正相關參數配置即可。

    • 規則名稱:自訂規則名稱,如rule-jwt-demo

    • 驗證API:單擊下拉選擇需要進行令牌合規校正的主機記錄,選擇後ESA將自動為您展示所選主機記錄下的API列表,檢查並勾選所需的API即可。

    • 選擇令牌配置:勾選一個或多個需要校正的令牌。當勾選多個令牌時可選擇:

      • 至少校正一個配置:請求需要符合多個令牌配置中的一個即可,否則將被判定為不合規請求。

      • 驗證所有配置:請求需要同時符合所有令牌配置,否則將被判定為不合規請求。

        說明

        當API請求中缺少令牌時,預設會將請求標記為不合規,若有特殊需要可在對應令牌右側的缺少令牌時列下拉選擇忽略

    • 執行操作:選擇對不符合令牌校正的請求的操作:

      • 觀察:允許存取不合規的請求,並記錄日誌,可通過事件分析查看詳情。

      • 攔截:阻止不合規的請求,並記錄攔截日誌,可通過事件分析查看詳情。

    image

防護效果

完成API規則建立後,您可以在左側導覽列選擇安全防護 > 事件分析,在事件分析頁面通過篩選器選擇防護規則為API規則,下滑即可在採樣日誌欄中查看詳細的防護日誌。

令牌說明

當前令牌校正僅用於JWT驗證。

欄位說明

公開金鑰格式僅支援JWK,且JWT公開金鑰必須含有kidalg欄位。欄位含義可參考:

  • kty:密鑰類型,如 EC-橢圓曲線密鑰。

  • use:公開金鑰用途,如 sig - 用於數位簽章。

  • crv:橢圓曲線類型,如 P-256 - NIST標準化的P-256橢圓曲線

  • kid:自訂的金鑰識別元,如esa。JWK必須帶有kid欄位,用於密鑰的選擇;同樣的,請求的JWT的聲明中也必須帶有kid欄位。使用該欄位可用於令牌密鑰的輪換。

  • x:使用橢圓曲線密鑰時,橢圓曲線公開金鑰的x座標。

  • y:使用橢圓曲線密鑰時,橢圓曲線公開金鑰的y座標。

  • alg:演算法標識,當前支援: ES256 - ECDSA with SHA-256簽名演算法。

樣本

{
  "kty": "EC",
  "use": "sig",
  "crv": "P-256",
  "kid": "esa",
  "x": "QG3VFVwUX4IatQvBy7sqBvvmticCZ-eX5-nbtGKBOfI",
  "y": "A3PXCshn7XcG7Ivvd2K_DerW4LHAlIVKdqhrUnczTD0",
  "alg": "ES256"
}

常見問題

什麼是JWT?

JWT(JSON Web Token),是為了在網路應用環境間傳遞聲明而執行的一種基於JSON的開放標準RFC7519。JWT一般可以用作獨立的身分識別驗證令牌,可以包含使用者標識、使用者角色和許可權等資訊,以便於從資原始伺服器擷取資源,也可以增加一些額外的其他商務邏輯所必需的聲明資訊,特別適用於分布式網站的登入情境。

JWT由Header、Payload、Signature三部分構成,並分別對每部分進行Base64編碼,輸出形如Header.Payload.Signature的字串:

  • Header:JWT的頭部,用於承載宣告類型(JWT)以及聲明加密的演算法。

  • Payload:JWT的資料部,用於存放有效資訊,也可以新增使用者系統需要使用的自訂欄位。

  • Signature:JWT的簽名部,用於頭部和資料部內容的校正。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

如何產生JWT?

可使用https://mkjwk.org 產生用於token產生與驗證的私密金鑰與公開金鑰:

  1. 使用瀏覽器訪問https://mkjwk.org

  2. 選擇EC頁簽,填寫相關參數後,單擊Generate產生後,選擇Public Key並單擊Copy to Clipboard複製公開金鑰即可。

    • Curve:選擇加密類型為P-256

    • Key Use:選擇公開金鑰用途為簽名Signature

    • Algorithm:選擇演算法標識為ES256: ECDSA using P-256 and SHA-256

    • KeyID:輸入自訂的金鑰識別元,如esa

    image