MCP 多租户鉴权别进上下文

Street_Inevitable_77 · reddit · 2026-07-13

作者在做一个面向真实用户、且每个用户都有私有数据的多租户 MCP 服务器时,发现**最难的问题不是工具本身,而是如何把敏感信息彻底挡在模型上下文之外**。 核心教训是:**身份与鉴权绝不能作为 tool argument 传给模型**。一旦把 user id、account id 或 token 放进工具参数,它们就进入上下文窗口,可能被日志记录、在后续生成中复现,甚至被别的工具输出里的 prompt injection 读取或滥用。作者认为,模型能看到的东西都不该被当成秘密。 他总结的做法是: - **服务端按会话验证身份**,模型不直接携带身份信息; - **数据库层做行级隔离**,并且采用 fail-closed 策略,避免遗漏权限检查导致泄露; - **工具只返回服务端计算好的结构化结果**,不返回自由文本,以减少注入空间和 token 成本。 最后作者把模型视为“有用但不可信的客户端”,并询问别人是如何在服务端做每次调用的身份验证与数据隔离的。

所属事件:开发者复盘MCP多租户鉴权与权限控制陷阱(2 条相关)→

原文链接 →