安全性模型
UPP 使用**「首次批准 + 預先共用金鑰」**安全性模型,平衡了安全性和易用性。關鍵原則
- 需要使用者批准 - 新執行節點需要明確的使用者批准
- 基於金鑰的認證 - 已知執行節點使用預先共用金鑰進行認證
- 僅限內部網路 - 專為區域網路部署設計,不暴露到公共網際網路
- 金鑰持久化 - 金鑰安全保存以供未來連接使用
認證流程

首次連接
執行節點首次連接時(不使用金鑰):1. 執行節點傳送登錄
2. Qaptly 顯示批准對話框
Qaptly Desktop 中出現對話框:3. 使用者決定
如果使用者批准:4. 執行節點儲存金鑰
後續連接
對於具有有效金鑰的已知執行節點:1. 執行節點透過金鑰傳送登錄
2. Qaptly 驗證金鑰
金鑰對已保存的雜湊進行驗證。不需要使用者互動。3. 自動批准
預先共用金鑰(進階)
對於生產部署,您可以在首次連接之前預先配置金鑰。使用情境
- 嵌入式設備: 使用預先配置的金鑰部署
- CI/CD 管道: 自動化測試執行節點
- 群集管理: 一次部署多個執行節點
實作
1. 手動生成金鑰
在 Qaptly Desktop 的執行節點擴展設定檔中新增:2. 將金鑰部署到執行節點設備
3. 執行節點連接
執行節點將自動獲得批准,無需使用者互動。安全性最佳實踐
1. 僅限內部網路
UPP 專為區域網路部署而設計: ✅ 正確:ws://<qaptly_desktop_ip>:18765/upp(如 192.168.1.100 的區域網路 IP)
❌ 禁止: 暴露到公共網際網路或綁定到公共 IP 位址
安全性指南:
- 僅部署在受信任的內部網路上
- 如有需要,使用防火牆規則限制存取
- 考慮使用 VPN 進行遠端執行節點存取
- 請勿將連接埠 18765 轉發到網際網路
2. 金鑰儲存
不要:- 將金鑰提交到版本控制
- 公開共用金鑰
- 為多個執行節點使用相同金鑰
- 在生產環境中以純文字儲存金鑰
- 使用環境變數或設定檔
- 設定適當的檔案權限 (chmod 600)
- 為開發/生產環境使用不同的金鑰
- 定期輪換金鑰(選項)
3. 執行節點 ID 唯一性
選擇唯一的執行節點 ID:4. 版本資訊
始終包含準確的版本號:金鑰管理
金鑰生成
Qaptly 使用以下方式生成金鑰:- 256 位隨機位元組
- 十六進位編碼
- 密碼隨機數生成器
金鑰儲存
金鑰透過以下方式儲存:- SHA-256 雜湊(不是純文字)
- 安全的檔案權限
- 備份機制
金鑰輪換(選項)
輪換金鑰:- 使用者: 在 Qaptly Desktop 中撤銷舊執行節點
- 執行節點: 不使用金鑰連接(首次流程)
- 使用者: 批准並接收新金鑰
- 執行節點: 儲存並使用新金鑰
錯誤代碼
認證錯誤
處理 AUTH_FAILED
斷開後重新連接
如果執行節點斷開連接(網路問題、重新啟動等):5 分鐘內
- 使用相同金鑰重新連接
- Qaptly 記得您的登錄
- 無需使用者批准
- 事件訂閱已恢復
5 分鐘後
- 執行節點未登錄
- 必須再次使用金鑰登錄
- 與「後續連接」流程相同
- 如果金鑰無效,可能需要使用者批准
測試認證
測試 1: 首次連接
- 「等待使用者批准…」
- Qaptly 中出現對話框
- 批准後:「已收到 assignedKey」
測試 2: 重新連接
- 立即成功
- 無使用者互動
測試 3: 無效金鑰
- AUTH_FAILED 錯誤
- 執行節點應妥善處理
例: 完整認證流程
下一步
協議參考
完整的訊息規範
功能
使用 JSON Schema 定義功能
快速入門
構建您的第一個執行節點
範例
完整的實作範例