跳到导航

Agent SDK秘密和HMAC簽名

保護代理 API 憑據並瞭解 SDK 如何生成帶時間戳、防重放的 HMAC-SHA256 請求籤名。

以 Markdown 格式查看

Agent SDK 請求通過合作伙伴 API 秘密進行身份驗證。將這個秘密保存在受信任的後端服務中,並讓 SDK 儘可能生成簽名字段。

兩個簽名協議

Agent SDK 簽名使用排序的請求字段、基於秒的時間戳和隨機數。直接 Developer API 請求使用中描述的單獨過程 請求籤名。不要將一種有效負載格式重複用於另一種有效負載格式。

簽名規則

對於 Agent SDK 請求:

  1. 排除 sign 字段。
  2. 省略具有空值的字段。
  3. 按 ASCII 順序對剩餘字段名稱進行排序。
  4. 將字段連接為 k=v&k2=v2。
  5. 使用 apiSecret 計算 HMAC-SHA256 十六進制簽名。

在加入簽名有效負載之前,數組值被序列化為緊湊的 JSON。例如,platformUserIds 標記為 ["1188041528"],在 k=v 有效負載中給出 platformUserIds=["1188041528"]。保留數組元素順序、雙引號和字符串 ID;請勿插入格式空格或使用 Java List.toString()(例如 [1188041528])。 SDK 自動處理此序列化。

SDK 應根據其發送的相同數據構建此值。簽名生成後更改簽名字段會導致驗證失敗。

SDK-管理字段

場地來源描述
agentCodeSDK 配置合作伙伴代理代碼。
時間戳當前服務器時間Unix 時間戳(以秒為單位)。
隨機數安全隨機值重放保護隨機字符串。
符號HMAC-SHA256請求籤名。
貨幣默認貨幣當轉賬/賬戶 APIs 省略貨幣時使用。

秘密儲藏室

  • 從後端秘密管理器或受保護的運行時配置加載 apiSecret。
  • 切勿將秘密放在前端捆綁包、移動應用程序、桌面客戶端、屏幕截圖或支持票證中。
  • 將開發、登臺和生產的憑證分開保存。
  • 限制對需要的服務和運營商的訪問。
  • 編輯日誌中的請求籤名、授權值和機密。
  • 當懷疑存在洩露時,撤銷並更換憑證。

時鐘和重放保護

SDK 包括 timestamp 和 nonce 以降低重放風險。保持後端時鐘同步,並且不要重複使用手動構建的隨機數。如果簽名驗證失敗,請在重試之前確認配置的密鑰、服務器時間、序列化字段和環境。

集成清單

查看預期結果
秘密地點僅後端秘密存儲。
環境基礎 URL 和憑證屬於同一環境。
現場處理SDK 生成 timestamp、nonce 和 sign。
記錄當憑據被編輯時,企業 ID 仍然可見。
旋轉憑證所有者和更換過程均已記錄。

相關安全文檔