模块 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 注入与跨租户返回
- 撤销授权后的在途会话和缓存失效