四個必須分開理解的值
伺服器 API Key 用來識別您的應用程式或專案。它只應用於伺服器對伺服器的公開 API 呼叫,不能放在瀏覽器程式、行動 App、URL 或 Hosted 頁面中。
Hosted JWT 是 Finger KYC 為 Hosted KYC 或 KYB 工作階段簽發的短期、指定 profile 的憑證,有效期為 30 分鐘。
FingerGrid SSO Access Token 用來驗證 FingerGrid 使用者,與 KYC API Key 完全不同,只在需要 FingerGrid/OIDC 流程時使用。
profileId 只是某一筆 KYC 或 KYB 資料的資源識別碼,不是憑證,也不能單獨授予存取權。
- API Key:伺服器應用程式憑證
- Hosted JWT:短期瀏覽器流程憑證
- SSO Access Token:FingerGrid 使用者驗證
- profileId:資源識別碼,不是秘密值
每種憑證應該在哪裡使用
您的後端呼叫 https://api.fingerkyc.com/public/v1 時,使用 Authorization: Bearer <API_KEY>。API Key 可用於建立或讀取資料、為 Hosted 流程建立 Hosted JWT,以及讀取專案被授權的資料。
Hosted JWT 只用於 Hosted KYC 或 KYB 的瀏覽器流程。重新導向前由伺服器即時建立,並綁定預期的 profileId;過期後必須重新建立。
公開 API 並不是匿名 API。客戶整合應使用 Finger KYC Gateway 和文件中的 /public/v1 路徑;內部 /api/v1 路徑不屬於客戶契約。
- 後端 API:Authorization: Bearer <API_KEY>
- Hosted 流程:伺服器建立 JWT,瀏覽器只取得 Hosted JWT
- profileId 放在路徑,授權放在 Header
- 使用 /public/v1,不要呼叫內部 /api/v1 路徑
建議的 Hosted KYC 或 KYB 流程
由您的後端使用伺服器 API Key 建立 KYC 或 KYB profile,並把返回的 profileId 儲存在自己的資料庫。接著為該 profile 建立 Hosted JWT,再重新導向使用者;API Key 不得暴露給瀏覽器。
使用者完成某個步驟後,由您的後端讀取 profile 狀態或摘要。Hosted JWT 只允許指定 profile 的 Hosted 操作,不能取代伺服器 API Key 進行應用程式端讀取。
- 由伺服器建立 profile
- 在自己的資料庫保存 profileId
- 建立有效期 30 分鐘的新 Hosted JWT
- 在不暴露 API Key 的情況下開啟 Hosted 流程
- 由後端讀取最終狀態
安全與有效期規則
API Key 只能保存在伺服器端的秘密管理服務或受保護的伺服器設定中。人員、專案或執行環境變更時應輪換 Key,不能提交到 Git,也不能放進前端 JavaScript。
Hosted JWT 有效期為 30 分鐘。Hosted 頁面提示過期時,應讓使用者返回您的應用程式,由伺服器為同一個 profileId 簽發新的 Hosted JWT,不要要求使用者手動複製 Key。
內部 provisioning key 只供 Finger KYC 元件簽發或驗證 Hosted JWT 使用,不是客戶 API 憑證,瀏覽器或外部整合絕不能傳送它。
- 不要向瀏覽器暴露 API Key 或 provisioning key
- 不要把 profileId 當作 Bearer 憑證
- Hosted JWT 必須視為短期且綁定 profile 的憑證
- 過期後重新建立 Hosted JWT
- 排查問題時使用 Request ID 和安全錯誤碼