概述
Token Exchange(令牌交换)是基于 RFC 8693 标准协议的身份认证与授权机制,允许客户端使用一个现有的安全令牌(subject_token)向授权服务器换取一个新的安全令牌。该功能适用于需要身份传递、委托授权及最小权限访问的场景。
技术定义
Token Exchange 是 OAuth 2.0 协议的扩展规范(RFC 8693),定义了一个标准的 HTTP POST 端点(通常为 /oauth/token),允许主体(Subject/Client)向授权服务器(Authorization Server, AS)提交一个现有的安全令牌(subject_token),以换取一个新的安全令牌(access_token 或其他类型)。
令牌交换机制使客户端能够获取具有不同受众(audience)、权限范围(scope)或令牌类型的新令牌,同时保留原始主体的身份信息。
核心能力
能力 | 说明 | 安全收益 |
权限范围限定 | 获取权限范围更小的新令牌,实现最小权限原则 | 限制令牌泄露后的影响范围 |
令牌类型转换 | 在不同令牌格式之间转换(如 JWT 转 SAML) | 实现不同系统间的互操作性 |
身份委托 | 代表不同身份进行操作,支持身份链传递 | 实现精细化的身份管理和审计溯源 |
跨域信任 | 在不同信任域之间建立安全协作关系 | 实现独立系统间的安全集成 |
核心概念
术语说明
术语 | 说明 |
授权服务器 | OAuth 2.0 协议中负责身份认证、授权许可和令牌颁发的信任中心,本文档中指 IDaaS |
客户端 | 发起令牌交换请求的应用或服务 |
主体 | 代表实际进行业务操作的独立身份实体,本文档中指账户 |
主体令牌 | 代表主体身份的安全令牌,用于向授权服务器证明身份 |
受众(Audience) | JWT 令牌 Payload 中 aud(audience)字段的值,标识令牌的预期接收者或服务 |
权限范围(Scope) | 用于界定可访问资源范围和访问边界的权限控制机制 |
令牌交换 | 基于 RFC 8693 标准协议,使用一个主体令牌换取具有新受众和权限范围的安全令牌的请求行为 |
令牌交换语义
Token Exchange 支持两种语义模式:
语义类型 | 技术定义 | 审计特征 |
模拟语义(Impersonation) | 新生成的令牌完全代表原始令牌所有者的身份,发起者身份不保留 | 审计日志显示为原始令牌所有者直接执行操作 |
委托语义(Delegation) | 新生成的令牌包含原始令牌所有者和发起者的身份信息,形成身份调用链 | 审计日志同时记录实际操作者和授权者身份 |
IDaaS 当前仅支持基于模拟语义的令牌交换。
模拟语义适用场景:后台服务代表用户执行操作,且无需保留服务自身身份的场合。例如:邮件服务器代表用户发送邮件,收件人仅能看到发件人为用户本人。
委托语义适用场景:微服务架构中的多层服务调用场景。例如:A 服务调用 B 服务,B 服务再调用 C 服务,C 服务需要同时知道初始请求用户和中间服务的身份,用于限流、审计等用途。
技术原理
工作流程
工作流程说明
阶段 | 步骤 | 说明 |
阶段一:获取初始令牌 | 1-3 | 前端服务通过 SSO 登录获取访问资源服务器 A 的 Access Token,并使用该令牌请求受保护资源 |
阶段二:发起令牌交换请求 | 4 | 资源服务器 A 作为客户端,向授权服务器发起令牌交换请求 |
阶段三:授权服务器处理 | 5-7 | 授权服务器验证主体令牌有效性,检查访问策略,确定是否颁发新令牌 |
阶段四:使用新令牌 | 8-10 | 使用新颁发的令牌访问资源服务器 B,获取受保护资源 |
应用场景
Agent 身份安全场景
在企业 Agent 服务集成场景中,Token Exchange 可实现安全的身份传递和委托授权。
场景描述
某企业部署了差旅规划助手 Agent 和人力资源 MCP 服务。当员工通过差旅系统访问 Agent 规划行程时,差旅规划助手需要访问人力资源 MCP 服务以获取员工的职级信息和差旅预算等数据。
服务节点对应关系
令牌交换工作流程 | Agent 身份安全场景 |
前端服务(Front Service) | 差旅系统 |
资源服务器 A | 差旅规划助手 Agent |
资源服务器 B | 人力资源 MCP 服务 |
授权服务器 | IDaaS 授权服务器 |
与 M2M 访问的差异
Token Exchange 支持将授权安全地传递至下游服务(如人力资源 MCP 服务),同时保留业务操作的主体身份信息(员工 User),无需员工进行二次认证授权。
令牌交换颁发的新令牌(AT_obo)中完整保留了授权传递链路:差旅系统 → 差旅规划助手 Agent → 人力资源 MCP 服务,支持完整的溯源和审计能力。
功能限制
限制项 | 说明 |
令牌签发限制 | IDaaS 授权服务器仅接受自身签发的令牌进行交换 |
权限限制 | 客户端需具备目标受众和权限范围的授权 |
令牌状态限制 | 主体令牌必须在有效期内且能被授权服务器正确验证 |
交换次数限制 | 令牌仅支持有限次数的交换,防止无限循环授权 |
令牌类型限制 | 当前仅支持 Access Token 之间的交换 |