OneCLI: 開放原始碼憑證閘道,適用於 AI 代理
OneCLI: 開放原始碼憑證閘道,適用於 AI 代理
OneCLI 是一個開放原始碼的憑證閘道,旨在將 API 金鑰與 AI 代理解耦。透過在代理與目標服務之間充當代理,OneCLI 確保代理使用佔位金鑰,而閘道則將實際憑證注入到出站請求中,防止秘密暴露給 LLM 或代理的環境。
核心架構與機制
OneCLI 使用「憑證經紀人」模式來攔截 HTTP 請求並將假憑證換成真實憑證。該系統由三個主要組件組成:
- Rust Gateway: 一個高效能的 HTTP 閘道,用於攔截出站請求。它使用
Proxy-Authorization標頭來驗證代理,並對 HTTPS 流量執行 MITM(中間人)攔截。 - Web Dashboard: 一個用於管理代理、密鑰和權限的 Next.js 應用程式。它提供閘道用來根據請求解析應注入哪些憑證的 API。
- Secret Store: 一個使用 AES-256-GCM 加密的儲存系統。密鑰在靜態時會被加密,僅在請求時刻解密以作為標頭或 URL 查詢參數注入。
當代理發出呼叫時,它會使用佔位符(例如 FAKE_KEY)。閘道會根據主機和路徑模式將請求匹配到正確的憑證,解密真實金鑰,並在請求抵達最終目的地之前將佔位符替換掉。
主要功能
OneCLI 提供了一個用於 AI 代理驗證的集中管理層:
- Transparent Injection: 代理執行標準 HTTP 呼叫時無需處理複雜的驗證邏輯。
- Scoped Permissions: 每個代理都會被分配一個具有特定權限的存取權杖,從而可以細緻控制哪些代理可以使用哪些密鑰。
- Vault Integration: 系統可以連接到外部密碼管理器(如 Bitwarden),在需要時即時注入憑證,而無需在 OneCLI 伺服器本身儲存密鑰。
- Flexible Deployment: 支援單用戶本地模式(無需登入)以及利用 Google OAuth 進行團隊環境的多用戶模式。
技術實作與設置
OneCLI 使用現代化技術棧構建,包括用於閘道的 Rust、用於儀表板的 Next.js,以及用於資料庫的 Prisma ORM 與 PostgreSQL。
要在本地部署 OneCLI,使用者可以使用單行安裝腳本:
curl -fsSL https://onecli.sh/install | sh
或者,也可以透過 Docker Compose 部署:
docker compose -f docker/docker-compose.yml up -d --wait
社群見解與反駁
模式的驗證
多位使用者指出,此方法反映了資料庫世界中已被證明的設計,其中客戶端與底層儲存分離,請求透過擁有憑證的伺服器進行路由。
安全權衡
批評者認為,該系統實質上只是用一個秘密換取另一個秘密,因為代理仍然需要一個權杖來向閘道進行驗證。一位使用者指出:
您只是用一個金鑰換取另一個金鑰,無論您選擇信任什麼抽象,終究憑證會傳遞給您本週的 llm。
建議的增強功能
社群成員提出了幾項功能改進,以提升 OneCLI 閘道的實用性:
- OAuth Client Credentials Support: 在閘道內實作「OAuth 舞步」,以便自動處理存取權杖的檢索。
- Request Resilience: 添加對請求重試和在特定失敗時短路的支援。
- Integration with Existing Tools: 與其他秘密管理器(如 Infisical、1Password、HashiCorp Vault)進行比較,建議對某些使用者來說,成熟的 SSO (SAML, OIDC) 可能是比添加另一個代理層更穩健的替代方案。