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 上开源,社区可以自由使用和贡献。