Identity Workload Pool 为智能体、应用和服务提供统一的工作负载身份管理能力。它通过工作负载池划分管理边界,通过工作负载身份表示实际运行的主体,并根据使用场景结合信任锚、工作负载元数据和访问令牌完成身份认证与可信身份传递。
本文将现有产品能力集中在一个文档中,帮助您:
- 在智能体调用链中正确理解和使用 TIP Token。
本文面向使用 Identity Workload Pool 的产品用户、管理员和集成开发者。API 表中的名称是 API Action 名称;完整请求参数、响应字段和错误码请以对应 API 参考文档为准。
工作负载池用于集中管理一组相关的智能体、应用或服务身份。不同工作负载池之间可以隔离身份、信任关系和令牌签发范围,适合按照业务、团队、环境或管理边界进行划分。
- 管理工作负载池的创建、查询、更新和删除生命周期。
工作负载身份表示实际运行的智能体、应用或服务。访问令牌最终代表的是工作负载池中的一个具体工作负载身份,而不是整个工作负载池。
信任锚用于在数据面验证 ECS 身份凭证或外部 Token,并从验证通过的凭证中提取可信身份属性。信任锚定义可信凭证来源,但不直接授予业务资源访问权限。
使用 AK/SK 调用访问令牌 API 时,不需要配置信任锚。
- 验证外部 JWT 或火山引擎 ECS 身份凭证。
- 使用身份名称模板,根据可信属性确定目标工作负载身份。
信任锚的凭证配置与类型有关,不存在适用于所有信任锚类型的统一配置内容。
- 使用请求中的身份名称或身份名称模板确定目标工作负载身份。
- 如果目标身份配置了工作负载元数据,继续执行元数据校验。
工作负载元数据绑定到具体的工作负载身份,用于进一步限制哪些凭证可以使用该身份。元数据解决的是“凭证能否使用这个身份”,而不是“这个身份能够访问哪些资源”。
如果工作负载身份没有配置元数据,系统不会增加元数据校验限制。
- 限制哪些用户 JWT、外部 Token 或 ECS 实例可以使用指定工作负载身份。
每条元数据由属性名和允许值列表组成:
一个 Key 可以包含多个允许值,凭证属性匹配其中任意一个值即可。存在多个参与校验的属性时,每个属性都需要满足各自的允许范围。
自定义属性只有在所选认证路径能够从凭证中提供对应可信属性时,才能形成有效限制。
- 请求中的身份名称或信任锚的身份名称模板确定目标工作负载身份。
- 系统从用户 JWT 读取可信属性,或通过信任锚验证外部凭证并提取可信属性。
- 对每个参与校验的属性,检查凭证值是否匹配允许值列表中的任意值。
- 所有参与校验的属性均满足条件后,凭证才可以使用该身份继续获取访问令牌。
访问令牌用于让通过身份认证的工作负载访问目标服务。令牌可以只代表工作负载身份,也可以根据 API 选择同时携带工作负载与用户身份。
TIP 是 Trust Identity Propagation(可信身份传递)的缩写。TIP Token 不是一种独立格式,而是工作负载访问令牌在智能体调用链中承担的身份传递角色。
当上游智能体把自己的访问令牌传递给受信任的下游智能体时,该令牌可作为 TIP Token。下游智能体验证其中的身份信息后,再获取代表自身工作负载身份的新访问令牌,以继续访问服务或调用其他智能体。
- 基于已有用户 JWT 获取同时包含工作负载和用户身份的访问令牌。
- 基于用户 ID 获取同时包含工作负载和用户身份的访问令牌。
- 在智能体调用链中将访问令牌作为 TIP Token 传递可信身份。
- 目标服务只需要工作负载身份时,使用 GetWorkloadAccessToken。
- 已有用户 JWT,并且需要把用户身份带入工作负载请求时,使用 GetWorkloadAccessTokenForJWT。
- 调用方使用用户 ID 标识用户,并且需要同时携带工作负载与用户身份时,使用 GetWorkloadAccessTokenForUserId。
各模块在身份认证流程中的关系如下:
- 工作负载池确定身份、信任关系和令牌签发的管理边界。
- 工作负载身份确定访问令牌代表的具体智能体、应用或服务。
- 认证方式确认调用方身份:可以使用 AK/SK,也可以选择信任锚验证外部凭证。
- 工作负载元数据在配置后进一步检查凭证是否有资格使用目标身份。
- 访问令牌在校验通过后签发,并用于访问目标服务或传递可信身份。
- 目标资源权限由后续权限策略或目标服务决定,不由信任锚或工作负载元数据直接决定。
身份名称负责选择工作负载身份。使用信任锚时,也可以通过身份名称模板,根据验证后的可信属性生成身份名称。工作负载元数据只校验已经确定的目标身份,不会搜索全部身份,也不会在多个身份之间随机选择。
这是不依赖信任锚的标准使用路径。
调用 CreateWorkloadPool 建立管理边界。
调用 CreateWorkloadIdentity,为需要访问目标服务的智能体、应用或服务建立身份。
如果需要校验用户 JWT 中的可信属性,调用 AddWorkloadMetaData 为目标身份配置允许范围;不需要额外限制时可跳过。
根据是否需要用户身份,选择 GetWorkloadAccessToken、GetWorkloadAccessTokenForJWT 或 GetWorkloadAccessTokenForUserId。
将访问令牌提交给目标服务,由目标服务及其权限策略决定是否允许访问。
直接使用 AK/SK 调用访问令牌 API 时,不需要为了签发令牌而额外配置信任锚。
- 流程二:使用外部 Token 或 ECS 身份凭证获取访问令牌
此路径适用于希望在数据面验证外部工作负载凭证的场景。
调用 CreateWorkloadPool 建立管理边界。
调用 CreateWorkloadIdentity 创建访问令牌最终代表的目标身份。
调用 CreateTrustAnchor,根据凭证来源选择 token 或 volc_ecs 等类型,并配置对应的验证信息。
调用 BindWorkloadPoolTrustAnchor,使信任锚在目标池中生效。
如果需要根据 sub、EcsId 等可信属性确定身份,可以在信任锚中使用身份名称模板;否则由请求明确指定身份名称。
调用 AddWorkloadMetaData,限制允许使用目标身份的凭证属性;不需要额外限制时可跳过。
系统验证凭证、提取可信属性、确定目标身份并执行可选的元数据校验,随后签发代表该身份的访问令牌。
将令牌提交给目标服务,由目标服务完成后续权限判断。
- 流程三:在智能体调用链中传递 TIP Token
- 上游智能体完成认证并获取代表自身工作负载身份的访问令牌。
- 上游智能体把该令牌作为 TIP Token 传递给受信任的下游智能体。
- 下游智能体验证 TIP Token 中的工作负载身份,以及按场景携带的用户身份和委托关系。
- 下游智能体使用自身的工作负载身份获取新的访问令牌。
- 下游智能体使用新令牌访问目标服务,或继续调用其他受信任智能体。
TIP Token 表示上游请求的可信身份上下文。下游智能体仍应使用自己的工作负载身份获取令牌,以保持调用链中每一跳的身份清晰。
不需要。信任锚是验证 ECS 身份凭证或外部 Token 的可选认证方式。使用 AK/SK 调用访问令牌 API 时,可以不配置信任锚。
不是。只有需要进一步限制哪些凭证可以使用某个工作负载身份时才需要配置。未配置元数据时,系统不会增加元数据校验限制。
不能。元数据只决定凭证是否可以使用目标工作负载身份。身份能够访问哪些资源,由后续权限策略或目标服务决定。
不会。目标身份由请求中的身份名称或信任锚的身份名称模板确定。元数据只校验已经确定的身份。
可以。如果多个身份配置了相同的允许属性,同一凭证可能有资格使用这些身份。应通过明确的身份名称、身份名称模板或更精确的属性组合确定实际使用的身份。
TIP Token 和访问令牌是两种不同格式吗?
不是。TIP Token 是访问令牌在可信身份传递场景中的角色。令牌直接用于访问服务时是普通访问令牌;传递给下游智能体时可以作为 TIP Token。
访问令牌代表工作负载池中的具体工作负载身份,而不是整个工作负载池。