这个项目能做什么
Mandatum是一个早期阶段的Go库,用于实现对AI代理的可验证授权委托。代理并非继承共享凭据(如服务账户、API密钥或人类会话),其权限成为一条以具名人类赞助者为根的签名链。每个环节通过哈希承诺其父环节,且只能收窄权限,因此权限在向下传递过程中无法扩大。任何环节均可单独撤销,约束条件跨动作序列而非单次调用进行评估。
README指出了凭据继承的三个问题:责任无法追溯至具体人类;单个代理行为不当无法在不切断所有共享凭据的情况下撤销;逐调用授权无法检测出单独合法但组合有害的调用对(例如,先读取不受信任的外部内容,再写入内部系统)。
工作原理:人类完成身份验证后获得委托断言;该代理可进一步委托更窄的授权;资源服务器(策略执行点)离线验证链,检查授权是否覆盖该调用,咨询兼容AuthZEN的策略决策点,最后根据链的历史记录允许该动作。README指出,允许动作的同时也会记录该动作,因此PDP拒绝的调用不应消耗链的调用预算。序列级规则可以禁止,例如,在读取外部内容后进行变更操作。
明确的范围边界:Mandatum不是授权引擎(它为OPA、Cedar、OpenFGA、SpiceDB、Cerbos或任何符合AuthZEN的PDP建立事实),不是新协议(它使用JOSE、RFC 8693、SPIFFE、AuthZEN、RFC 6962),不是网关、注册表、沙箱或代理运行时(它是一个库,旨在通过net/http中间件在agentgateway、ToolHive或MCP服务器内运行),也不是区块链(审计日志是Merkle树)。
承认了先前的工作:macaroons和Biscuit用于衰减委托,SPIFFE用于工作负载身份,RFC 8693用于令牌交换委托语义。README称Mandatum基于历史而非重新解释行为声明进行授权,并将其描述为RFC 8693模型的扩展。它仅在三个狭窄领域声称新颖性:以经过身份验证的人类为根且能在子委托中存续的链、跨动作序列评估的约束、以及AuthZEN绑定。
状态和限制已明确说明:格式、验证器、签名层和签发者端到端工作,并已针对真实签名进行测试;AuthZEN绑定、序列评估、JWKS/SPIFFE密钥解析、从发布的紧凑集合进行本地撤销、以及MCP工具调用执行中间件均已实现。审计日志尚未构建,序列存储仅限进程内,没有按计划发布撤销集合,且尚未进行第三方安全审查。通过go test可运行示例,涵盖签发流程和MCP执行路径。采用Apache 2.0许可证。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。