在 AI 助手从工具向协作伙伴演进的进程中,身份验证已从简单的登录机制演变为一套复杂的多层信任体系。当 Claude 等 AI 助手通过 MCP(Model Context Protocol)连接企业服务时,如何在保持用户体验的前提下实现可信身份核验,成为工程团队必须面对的核心挑战。本文将从验证链路设计、证据采集与隐私保护三个维度,系统性阐述 AI 助手身份验证的工程实现路径。
验证链路的核心架构
AI 助手身份验证的本质是在两个层面建立信任:即验证 AI 助手本身的 workload identity(工作负载身份),以及验证调用该 AI 助手的用户身份。传统的 OAuth/OIDC 流程仅关注用户身份,而忽略了 AI 助手作为 agent 的独立身份需求,这正是工程实现需要补足的关键缺口。
当前主流的实现方案采用 AI Identity Gateway 架构,Claude 通过 MCP 客户端身份连接到网关时,会触发标准的 OAuth 发现流程。具体而言,Claude 从网关的受保护资源元数据(RFC 9470)中自动发现授权服务器,完成用户身份认证后获取访问令牌。这一流程的独特之处在于:令牌中的 sub 声明代表已认证用户,但缺少 delegation 语义 —— 即网关无法仅从令牌本身区分 “Claude 代表用户行动” 与 “用户直接行动”。
这种设计带来的工程挑战是:入站授权策略只能基于令牌中的声明(用户身份声明、client_id 等)进行匹配,无法直接感知 AI 助手作为 agent 的存在。为此,需要在网关层引入 RFC 8693 标准的 token exchange 机制,在向 MCP Bridge 或 MCP Proxy 调用上游 API 时,生成包含 act 声明的 delegation 令牌,使上游服务能够同时感知用户身份和发起请求的 AI 助手身份。
在具体部署层面,AI Identity Gateway 必须配置为 Streamable HTTP 传输模式,而非 SSE—— 这是因为 Claude 的连接器基础设施不支持 SSE。Auth Provider Orchestrator 需要启用 mcpProvider.authorization.oauth 配置项,确保 Claude 能够完成 OAuth 认证。根据连接场景的不同,管理员可以选择 confidential client(客户端 ID + 密钥)或 public client(客户端 ID+PKCE)两种注册模式,前者安全性更强但需要管理密钥,后者适合无法安全存储密钥的环境。
客户端注册与 OAuth 流程配置
Claude 作为 OAuth 客户端注册时,redirectURLs 的配置是工程实现中的关键细节。对于 claude.ai 和 Claude Desktop web connector 两类客户端,统一使用https://claude.ai/api/mcp/auth_callback作为回调地址,同时需要包含https://claude.com/api/mcp/auth_callback变体以确保兼容性。Claude Code 则使用本地端口回调,典型配置为http://localhost:29352/callback,但由于 Claude Code 默认随机选择端口,必须通过--callback-port参数固定端口号以匹配预注册的回调地址。Claude Desktop 通过 mcp-remote 代理连接时,回调路径为http://localhost:3334/oauth/callback,注意此处的路径与 Claude Code 的/callback不同。
令牌的生存周期配置同样需要权衡安全性和用户体验。accessToken 建议设置为 3600 秒(1 小时),这既保证了会话的合理有效期,也避免了过短周期导致的频繁重新认证。refreshToken 的 allowOfflineAccess 应设为 true,允许离线刷新,lifetimeSeconds 可配置为 86400 秒(24 小时),满足跨日使用场景。需要特别注意的是,所有客户端密钥必须存储在 secret provider 中,严禁硬编码配置文件 —— 这是企业级部署的基本安全要求。
授权策略的工程实现
入站授权策略是 AI Identity Gateway 的核心安全机制,通过 OPA(Open Policy Agent)在每次 MCP 工具调用前进行评估。策略引擎可以检查工具名称、工具参数、HTTP 头部(包括 JWT)、源 IP 地址等完整请求上下文,这为细粒度访问控制提供了充足的判断依据。
以 HR 系统读写分离场景为例,策略可通过检查 jwt_payload.scope 中是否包含hr:read或hr:admin来区分读取和写入权限。读取操作(如 listEmployees、getEmployee)仅需hr:read权限,而创建和更新操作(如 createEmployee、updateEmployee)则要求hr:admin权限。这种设计有效防止了 AI 助手在未获得明确授权的情况下修改敏感数据。
策略的编写需要注意几个工程要点:首先,JWT 解析应使用 io.jwt.decode 函数从 Authorization 头部提取并解码;其次,default result 声明应设置为 deny(即默认拒绝),遵循最小权限原则;最后,内部消息(internal_message)和外部消息(external_message)的区分至关重要 —— 前者记录详细日志用于故障排查,后者返回给客户端以避免信息泄露。
令牌铸造策略与网络限制
除了入站授权策略,令牌铸造策略(Token Minting Policies)提供了另一层安全防护。该策略在令牌发放前进行评估,即使用户成功通过认证,Orchestrator 仍可基于客户端身份、授权类型、请求的 scope 或环境条件拒绝或约束令牌发放。这对于 public client 场景尤为重要 —— 由于 public client 仅依赖 client_id 和 PKCE 进行认证,任何知晓 client_id 的应用都可以发起授权流程,token minting 策略可以有效弥补这一风险敞口。
一个典型的应用场景是限制内部网关的访问来源。如下策略确保 public client 只能从企业内网(10.0.0.0/8 CIDR)申请令牌:
result := {"allowed": false, "internal_message": "public client not allowed from this network"} {
input.request.oauth.client_id == "claude-public"
not net.cidr_contains("10.0.0.0/8", input.source.ip)
}
对于公开部署的网关,则应结合 Anthropic 的出口 IP 范围进行限制。IPv4 范围为 160.79.104.0/21,IPv6 范围为 2607:6bc0::/48。工程实现时需要特别注意:web connector 场景下,流量经由 Anthropic 基础设施转发,因此来源 IP 是 Anthropic 的 IP 段;而用户浏览器直接连接 Auth Provider 的 authorize 端点时,来源 IP 才是用户真实 IP。理解这一流量模型对于正确配置 IP 白名单至关重要。
隐私保护设计要点
AI 助手身份验证流程中的隐私保护需要从数据最小化、存储安全和传输加密三个层面系统考虑。在数据最小化方面,claimsMapping 应仅映射业务必需的声明,email、name 和 sub 是常见配置,避免将敏感属性如手机号、身份证号等映射到令牌中。Orchestrator 日志虽然记录完整请求流(包含 agent 认证、OPA 策略评估、token exchange 和上游调用),但应配置日志脱敏规则,移除或掩码敏感字段。
存储安全层面,OAuth 令牌(尤其是 refreshToken)应存储在加密的密钥链中,Claude Code 和 Claude Desktop 均支持系统密钥链集成。客户端密钥必须通过 secret provider 管理,主流选择包括 HashiCorp Vault、AWS Secrets Manager 或云厂商对应的密钥管理服务。传输层面,MCP 连接必须使用 HTTPS—— 对于 confidential client 场景,还应考虑启用 mTLS(双向 TLS)进一步强化传输层安全。
监控与可观测性实践
完善的监控体系是身份验证系统稳定运行的基础。关键监控指标包括:OAuth 授权成功率(反映认证流程健康度)、令牌发放速率(可识别异常刷令牌行为)、策略拒绝频率(评估授权策略合理性)、Token exchange 延迟(影响用户体验)。Orchestrator 日志应与 SIEM 系统集成,保留至少 90 天的审计日志,便于安全事件溯源。
对于大规模部署场景,建议配置告警规则:当授权失败率超过 5% 时触发告警;当某 client_id 的令牌申请频率异常增长时触发告警;当策略拒绝率突然上升时触发告警。这些阈值需要根据实际业务量进行调优,但初始建议值可以作为参考基线。
总结
AI 助手身份验证的工程实现并非单一技术点,而是涉及 OAuth/OIDC 协议深度定制、策略引擎配置、网络层安全与隐私保护的系统工程。核心要点可归纳为:采用 AI Identity Gateway 架构实现统一的身份治理;通过 token exchange 机制解决 agent 身份感知问题;利用 OPA 策略实现细粒度访问控制;结合 token minting 策略和网络层限制构建多层防御体系;最后通过完善的监控告警确保系统可运营。实际落地时,建议从最小可行配置开始,逐步增加策略复杂度,同时持续监控关键指标迭代优化。
参考资料
- Connect Claude to the AI Identity Gateway - Maverics Documentation(https://docs.strata.io/guides/ai-identity/connect/claude)
- RFC 9470 - Protected Resource Metadata(https://datatracker.ietf.org/doc/html/rfcRFC 9470)
- RFC 8693 - OAuth 2.0 Token Exchange(https://datatracker.ietf.org/doc/html/rfc8693)