安全与治理 · MCP 异步任务

MCP 异步任务 taskId 如何授权?企业 AI 工作台接入前的 5 项检查

异步任务让长耗时工具可以先返回任务句柄,再由客户端查询状态和结果。对企业来说,taskId 因此成为需要认真保护的对象:它应与请求者身份、租户和任务数据权限一起校验。

AI 工作台发出的任务句柄经过身份授权检查后进入隔离的数据区域,表示 taskId 查询必须受身份和权限边界保护
核心观点

MCP Tasks 扩展中的 taskId 不应被当成普通流水号。它可以关联任务状态、待处理输入和最终结果;规范还明确要求服务端对每一次任务相关请求执行身份认证和授权。企业验收时,要验证“谁在查询哪一个任务、能读到什么、权限变化后是否立即拒绝”,而不只检查 ID 是否足够随机。

近期动态:没有重大版本发布,异步任务权限仍值得提前核对

截至 2026 年 10 月 28 日,本轮没有发现 AI 工作台围绕 MCP Tasks 发布足以改变企业接入判断的重大版本更新。WorkBuddy 官方更新日志显示,5.9.3 于 2026 年 10 月 27 日发布,内容以迁移、长会话稳定性和 Windows 工具运行问题修复为主;千问办公客户端更新日志目前列出的最新版本为 1.3.1,发布日期是 2026 年 10 月 15 日。它们是产品更新背景,不代表这些客户端已经声明支持本文讨论的 MCP Tasks 扩展,也不据此判断豆包工作或其他产品的能力。

本文讨论的是协议和企业接入验收问题。MCP Tasks 已进入 2026-07-28 版本的扩展规范,允许符合条件的工具调用以异步任务句柄返回,客户端后续通过 task 相关方法取得任务状态或结果。扩展是可选能力,需要客户端与服务端按规范协商;不能因为某个平台支持 MCP,就推断它已经实现了该扩展。

taskId 为什么值得按访问凭据来保护?

在 MCP SEP-2663 Tasks Extension 的安全说明中,规范指出服务端可以把 task ID 用作访问所存状态的 bearer token,因此 ID 必须具有足够熵,难以枚举或猜测;同时,服务端必须对每个 task 相关请求检查认证与授权,确认请求者有权访问相应任务。

这两项要求解决的是不同问题。高熵降低攻击者猜中 ID 的机会;逐请求授权则验证当前请求者是否仍有权读取或操作该任务。只做其中一项都不够:已授权用户离职、角色变更或跨租户请求时,随机 ID 本身不能替代权限判断。

风险范围也不止任务状态。Tasks 的 completed 状态会携带最终结果;任务还可能包含状态说明、错误信息或等待处理的输入请求。因此,轮询接口、更新接口、取消接口及相关通知都要按其实际返回内容和可执行操作纳入权限边界。不要把 taskId 写入公开 URL、聊天分享链接或不受控的日志字段。

企业接入前的五项检查

检查项需要核验建议验收证据
1. 每次请求重新鉴权tasks/get、tasks/update、tasks/cancel 等任务请求是否都校验当前调用者身份和权限;创建任务时的授权不能自动覆盖之后的轮询。使用未登录、过期身份、无权用户分别查询同一任务,确认拒绝访问且不返回任务是否存在的敏感信息。
2. 绑定任务授权上下文任务记录是否关联用户、组织 / 租户及目标业务系统权限上下文;任务存储查询是否按该上下文过滤。用租户 A 创建任务,再分别以租户 B、同租户不同员工读取、更新和取消,逐项验证授权结果。
3. 控制结果与输入内容最终结果、错误详情、状态消息和待处理输入是否可能包含业务数据、凭据或个人信息;哪些角色能够读取。用包含敏感字段的测试数据检查响应、通知、错误与日志,确认必要字段经过最小化和脱敏。
4. 设定保留与过期策略TTL 是否有明确上限;任务完成或失败后结果保留多久;过期后是否拒绝读取并按策略清理关联数据。检查不同状态的过期行为、清理任务、恢复和重试路径,以及策略配置是否可审计。
5. 记录可追溯但不泄露是否记录任务创建者、调用能力、授权结果、状态变化和请求关联标识;日志是否避免保存完整 taskId、输入输出或访问令牌。用成功、越权拒绝、过期和取消等用例检查日志,确认可定位责任主体且敏感内容按规则处理。

此清单是依据协议安全要求形成的企业验收建议,具体实现要按实际 MCP Server、工作台、身份系统和业务系统的职责划分执行。尤其要区分任务访问授权与业务数据权限:一个请求者有权读取任务记录,不代表任务结果中的每条业务数据都可以无条件展示。

权限验收可以从四组请求开始

先准备两个不同用户和两个不同租户的测试身份,再创建包含可识别测试内容的长任务。依次覆盖:原创建者在权限未变时轮询;同租户另一用户访问;跨租户用户访问;原用户权限撤销或会话凭据过期后继续访问。对每组身份分别验证读取状态、读取最终结果、发送更新和取消请求。

通过标准不是“接口返回 403”这一项。验收还应确认:未授权请求没有获得状态、结果或输入请求;错误响应没有透露可枚举的任务信息;授权变化按系统设计及时生效;任务过期后无法通过旧 ID 恢复敏感结果;事件日志能说明谁在何时对哪个任务做了什么,同时不把凭据或完整敏感负载复制到日志。

如果企业采用多实例或分布式部署,还要验证异步任务存储、实例路由、重试、清理和恢复行为。MCP C# SDK 的 Tasks 指南也将持久化存储、会话隔离、多进程路由和按 TTL 清理列为生产场景需要自行实现或配置的事项。SDK 指南是实现参考,不能替代企业自身的威胁建模和验收。

连接器治理的职责边界

星云 PLUS AI 系统连接器已确认的能力包括:把员工映射到目标系统个人账号;按员工、用户组或组织授权业务能力;由目标系统继续判断功能和数据权限;支持查询和导出调用审计记录。对涉及新增、修改、删除和审批的能力,默认要求员工确认。

这些机制可以帮助企业治理“谁能调用哪项业务能力”,但不能据此推断星云 PLUS 已实现 MCP Tasks 的 taskId 存储、任务状态接口授权、租户隔离或 TTL 清理。若项目使用异步任务,应由相应 MCP Server / 任务服务明确这些控制,并与工作台身份、连接器授权和目标系统权限一起验收。了解星云 PLUS AI 系统连接器,可访问官网,或关注视频号“星云AI开发平台”。

资料来源与核验日期

  1. Model Context Protocol,Tasks 扩展规范(2026-07-28):task 对象、状态、结果、TTL 与扩展协商规则;核验于 2026-10-28。
  2. Model Context Protocol,SEP-2663:Tasks Extension:Final 状态;包含 taskId 熵与逐任务请求认证授权要求;创建日期 2026-04-27;核验于 2026-10-28。
  3. Microsoft MCP C# SDK,Tasks 指南:MCP 2026-07-28+ 协议支持及生产任务存储相关实现提示;页面未标注发布日期,核验于 2026-10-28。
  4. WorkBuddy,官方更新日志:5.9.3 发布于 2026-10-27;核验于 2026-10-28。
  5. 千问办公,客户端更新日志:当前列出的最新版本 1.3.1 日期为 2026-10-15;核验于 2026-10-28。
  6. 星云 PLUS 产品事实:按指定《09-星云PLUS产品营销卖点库》核对身份映射、能力授权、目标系统权限与调用审计范围;核验于 2026-10-28。

文中协议规则与企业实施建议分别表述。MCP 支持情况、任务存储实现和安全控制要以具体产品版本与部署配置为准。