模块 5协议、Skills 与框架

MCP 身份与安全

先画清四个身份和信任域

  • 最终用户
  • Host 应用及其 MCP Client
  • MCP Server / Resource Server
  • Authorization Server 与下游业务 API
  • 模型不应持有或决定访问令牌

本地 stdio 与远程 HTTP 风险不同

本地进程

  • 命令和安装来源
  • 宿主文件/环境变量访问
  • 进程权限继承

远程服务

  • OAuth 授权
  • 网络身份
  • 多租户数据边界
  • 供应链与服务信任

远程授权的关键语义

  • MCP Server 通过 Protected Resource Metadata 声明授权服务
  • Client 使用 Authorization Code + PKCE 等安全机制
  • 授权与换 Token 请求使用 Resource Indicator 绑定目标 MCP Server
  • Access Token Audience 必须由 Server 验证为自身资源
  • 短期令牌、刷新与安全存储
  • 授权是可选协议能力,但受保护服务不能自创不透明转发

Scope 从最小授权开始并支持按需升级

  • 优先使用资源端挑战返回的必要 Scope
  • 额外能力在实际需要时触发 Step-up Authorization
  • 用户拒绝扩权时保留原有低权限会话和可行动提示
  • Scope、资源、用户和 Client 绑定进入授权审计
  • 连接撤销、权限变化和 Token 轮换传播到在途 Run

禁止 Confused Deputy 与 Token Passthrough

  • Server 验证 issuer、audience、scope 和过期时间
  • 不把收到的 Token 原样转发到不相干下游
  • 下游访问使用 On-behalf-of 或独立服务身份
  • 跨 Server 凭据和 Context 默认隔离
  • 连接级授权说明能力范围
  • Tool 调用仍按副作用和参数触发审批
  • 用户能查看、撤销连接和授权 Scope
  • 高风险 Server/Tool 需要组织准入

Server 端的最小安全基线

  • 严格 Schema 与输入校验
  • 租户、用户和资源权限下推
  • 速率限制、审计、敏感输出过滤
  • Prompt/Resource 内容作为数据处理
  • 依赖、镜像和发布来源可验证

测试协议正常之外的攻击路径

  • 伪造 Metadata、重定向和授权码拦截
  • Audience 混淆和过宽 Scope
  • 恶意本地 Server 读取环境与文件
  • Tool 描述/Resource 注入与跨租户返回
  • 撤销授权后的在途会话和缓存失效