我们发布了一个MCP服务器,代理继承人类身份。然后我们不得不弄清楚这个身份来自哪里。
摘要
我们发布了一个MCP服务器,代理继承人类身份,实现了OAuth 2.1联合身份认证和每个IdP的声明映射器,以解决代理身份管理和RBAC策略评估问题。
嘿!大多数生产环境中的MCP服务器将代理自身认证为独立实体。使用服务账户、静态承载令牌,审计日志显示'Claude Code做了这个。'三个工程师使用同一个代理,你就无法分清谁请求了什么。我们在构建一个开源访问网关时遇到了这个问题,并在过去几周内发布了两个比我们预期更相关的更改。第一:我们发布了一个用户MCP服务器,代理以启动会话的人类用户身份行动。RBAC、审批门、数据掩码,全部基于人类评估,而非代理。关键设计决策:代理没有自己的身份,而是继承一个身份。第二:一旦代理继承了人类身份,下一个问题就是这个身份来自哪里。我们的第一个版本在网关内部映射身份。虽然可行,但创建了第二个事实来源,必须与客户的IdP保持同步。今天,我们在MCP端点上发布了OAuth 2.1联合身份认证。实现了MCP 2025-11-25授权配置文件,RFC 9728保护资源元数据以实现自动发现。协议部分是最简单的。困难的部分是组声明的标准化。Okta称之为`groups`。Auth0将其放在带命名空间的自定义声明中。Entra ID使用对象ID,除非你翻转租户设置。我们的RBAC引擎需要一种格式来评估策略,因此我们最终采用了每个IdP的声明映射器,在令牌到达策略引擎之前运行。好奇其他人如何在MCP服务器中处理代理身份。是将代理自身认证,映射到人类,还是联合到IdP?
相似文章
@swyx: 解释一下
本文介绍了用于构建可插拔AI代理架构的模型上下文协议(MCP),详细介绍了在Sentry构建MCP服务器的经验教训,包括OAuth 2.1集成、设计对代理友好的工具接口以及当前生态系统的局限性。
@XQOPTRX: [代理身份] — Descope 推出跨应用访问,以短期身份断言替代静态 API 密钥,用于 AI 代理和 MCP 服务器
Descope 推出跨应用访问,以短期身份断言替代静态 API 密钥,用于 AI 代理和 MCP 服务器,使企业能够通过现有的身份提供者管理代理访问,并实施每请求授权策略。
我构建了一个持久世界,你的代理可以通过MCP加入,拥有与人类玩家相同的权限
作者创建了一个免费的持久世界,AI代理能通过MCP加入并享有与人类玩家相同的权限,其特色在于新颖的权限模型和可逆的设计原则。
大多数多智能体设置就像一屋子戴耳机的人。以下是我所做的改变。
作者分享了构建多智能体基础设施的心得,指出“身份漂移”是关键挑战,通过实施严格的智能体通行证和文件访问控制解决了这一问题。
@caspar_br: 代理认证很难,但不该如此!你的代理需要扮演某个角色:有时是一个共享身份,有时……
Managed Connections 通过允许 AI 代理在代码中定义其身份,简化了 OAuth 流程,避免了复杂的认证流程。现在可在 managed-deepagents 0.7 中使用。