五厂面经真题集腾讯面经高频腾讯真题MCP鉴权多租户速答 · 约 5 分钟更新 2026-09-29

远程 MCP Server 怎么设计鉴权、授权、审计和租户隔离?

一句话结论

远程 MCP Server 要先在连接层用 token 或 OAuth 验证客户端身份,再由 Server 按身份决定工具和资源权限;同时记录每次调用,并按租户隔离数据与配额。

先这样答

远程 MCP Server 要在连接层完成身份认证,再在 Server 端完成授权、审计和租户隔离。鉴权可以使用 token 或 OAuth,目标是确认连接方是谁,并让客户端身份可验证。认证通过只代表身份成立,不代表客户端可以调用所有能力。

授权必须按身份限制可用工具和资源。权限判定放在 Server 端,不能信任客户端自己声明的身份、角色或权限。Server 收到请求后,应根据已验证的身份判断它能否调用目标工具,或者访问目标资源。这样可以避免客户端绕过限制直接访问不该使用的能力。

审计要覆盖每次调用。记录至少包括调用身份、工具、参数和结果,便于追踪一次请求由谁发起、调用了什么、传入了什么以及返回了什么。租户隔离则要把数据和配额按租户分区。处理请求时要绑定当前租户,保证一个租户读不到另一个租户的缓存和数据,也不能使用另一个租户的配额。

面试官会怎么追问

  • 「为什么不能直接相信客户端传来的权限信息?」
    客户端传来的权限属于请求内容,不能证明它真实有效。Server 必须使用连接层验证得到的身份,在服务端独立判断可用工具和资源。这样客户端只能申请调用,不能自行决定授权结果。

  • 「审计日志只记录调用成功或失败够不够?」
    不够。每次调用都应记录身份、工具、参数和结果。只记录成功或失败,无法还原是谁调用了什么,也无法确认当时传入的参数和返回内容。

  • 「租户隔离除了隔离数据,还需要隔离什么?」
    还要按租户隔离配额。数据和配额都按租户分区,处理请求时使用对应租户的范围。这样一个租户既读不到另一个租户的缓存与数据,也不能占用另一个租户的配额。

回答的坑

  • 通过 token 或 OAuth 只能完成身份认证,不能因此默认放行所有工具和资源。
  • 只隔离主数据而不隔离缓存或配额,仍然不能算完成租户隔离。
—— 本题完 ——