AI News HubLIVE
站內改寫2 分鐘閱讀

Show HN: Legant 賦予 AI 代理受限制的許可權代表您行事

Legant 是一個開源委託授權系統,允許 AI 代理在使用者定義的受限範圍內代表使用者操作。它基於 RFC 8693 令牌交換生成複合子/行為令牌,支援離線執行的約束策略、單調衰減許可權,並提供一個完整的 OAuth 2.1/OIDC 提供者,包含多租戶、SSO 和 SCIM。專案還提供多個演示和 CLI 工具,幫助快速整合。

來源Hacker News AI作者: baris_erdem

開源委託授權系統 Legant 近日正式釋出,它旨在解決 AI 代理授權中的一個關鍵問題:如何讓 AI 代理在有限且可控的許可權範圍內代表使用者執行操作,同時保證安全性、可審計性和細粒度控制。與傳統的 OAuth/OIDC 伺服器不同,Legant 不僅能夠驗證代理身份併發放令牌,還能精確表達複雜的授權約束,例如“此代理可以代表 Alice 操作,但僅限於提交不超過 500 美元的差旅或餐飲費用,有效期為下一小時,並且其生成的任何子代理只能擁有更少的許可權”。

Legant 的核心機制基於 RFC 8693 令牌交換協議。當 AI 代理需要代表使用者執行操作時,它透過該協議與 Legant 伺服器交換令牌,最終獲得一個複合子/行為令牌。在這個令牌中,“子”欄位代表使用者身份,“行為”欄位記錄代理鏈資訊,從而實現代理以使用者名稱義操作,但並非冒用使用者身份。完整的委託來源(使用者 → 代理 → 子代理)都編碼在令牌內部,便於審計和追溯。

約束策略是 Legant 的另一個關鍵創新點。細粒度的限制條件(如最大金額、類別、工具、資源受眾以及時間視窗等)被直接嵌入簽名令牌中。資源伺服器在驗證令牌時,可以僅憑令牌自身離線執行這些策略,無需回撥 Legant 伺服器。這種設計顯著降低了延遲和依賴性,同時保持了許可權控制的有效性。對於滾動小時速率限制,Legant 在令牌簽發時強制執行,因為該限制需要共享狀態。

許可權的單調衰減特性確保安全原則:子代理的許可權範圍始終小於或等於父代理。如果子代理請求更寬泛的許可權或更寬鬆的約束,請求將被拒絕或自動限制為父級約束。這種自上而下的許可權收縮機制有效防止了許可權擴散風險。

除了核心的委託授權引擎,Legant 還是一個完整的 OAuth 2.1 和 OpenID Connect 提供者,支援授權碼流加 PKCE、客戶端憑證、重新整理令牌、服務發現、JWKS、內省和撤銷等功能。它內建多租戶、單點登入(SSO)和 SCIM 支援,可以作為現有身份基礎設施的補充或替代。

Legant 提供了豐富的演示套件,幫助使用者快速理解其能力。這些演示包括:代理代表使用者流程(agent-on-behalf-of)、混淆 deputy 問題解決(confused deputy closed)、多跳衰減(multi-hop attenuation)、模擬 Salesloft–Drift OAuth 令牌盜竊(stolen-token replay)、職責分離(segregation of duties)、Kubernetes MCP 閘道器等。對於企業級生產環境,Legant 還提供了基於真實基礎設施的整合演示,如 AI-SRE 在真實 kind 叢集上的執行,以及許可權保留的分析助手在真實 Postgres 資料倉儲上的操作。

在部署和整合方面,Legant 採用角色分離架構。運維人員負責部署簽發伺服器(執行 legant serve 和 Postgres),代理開發者構建與簽發伺服器互動的應用程式程式碼,資源伺服器開發者只需使用 SDK 離線驗證令牌,無需資料庫或網路回撥,而使用者則透過瀏覽器的同意流程管理授權。這種設計使得整合 Legant 的門檻極低——大多數場景下只需使用 Go SDK 即可。

Legant 使用 Go 語言編寫,以單一自託管二進位制檔案形式釋出,支援 Docker 和 Kubernetes 部署。專案處於活躍開發狀態,提供豐富的 CLI 工具用於管理授權、審計和金鑰。CLI 支援定義和檢查授權宣告(legant.grants.yaml)、簽發和撤銷令牌、審計驗證、以及保護資源伺服器等操作。此外,Legant 還包含一個 Helm Charts 倉庫,便於在 Kubernetes 環境中部署。

總體而言,Legant 為 AI 代理的委託授權提供了一種安全、靈活且可審計的解決方案。其離線約束策略、單調衰減許可權和完整的 OAuth 2.1 支援使其成為構建可信 AI 代理系統的有力工具。專案程式碼已在 GitHub 上開源,社群可以自由使用和貢獻。