auth_mode 形态,以及
你的凭据会发生什么。关于连接建立之后网关对每一次 tools/call
所做的一切——每次调用的策略、命名空间、SSRF 防护——参见
MCP 网关参考。
1. 为什么在网关鉴权
没有网关时,每个与一个 MCP 服务器交谈的智能体都携带它自己的那份 该服务器令牌副本,散落在各个配置和提示词里。改为把服务器经过 OrcaRouter 路由,凭据就只存在于恰好一个地方:- 每服务器一个存储的密钥。 你在工作区记录上注册凭据一次。 智能体用一个 OrcaRouter 密钥连接到网关——它们永不看到上游 服务器的令牌。
- 静态加密,读取时屏蔽。 凭据在存储时被加密。每次你通过控制台 或 SDK 读回服务器,密钥都以屏蔽形式回来——没有任何 API 会以 明文返回它。
- 派发时注入。 网关只在它把一次
tools/call转发到真实服务器的 那一刻解密凭据,然后把它附加到那次出站请求上。它永不被回传到 模型或客户端。
一个你读不回来的凭据是一个特性,不是一个缺口。因为读取总是被屏蔽,
一个泄露的控制台会话或 SDK 令牌无法外泄你的 MCP 服务器密钥——
它只能重新指向或轮换它们。
2. 挑选一个 auth_mode
每一次服务器注册都携带一个 auth_mode。它是一个由四个值组成的
闭集,决定你在 auth_json 中提供的凭据形态:
none — 无凭据
none — 无凭据
服务器是开放的(或按网络信任网关)。把
auth_json 留空。当你不
设置 auth_mode 时这是默认值。bearer — 单个令牌
bearer — 单个令牌
托管 MCP 服务器最常见的情形。提供一个令牌;网关在每次调用上
把它作为一个 bearer 凭据发送。
oauth — 一个存储的访问令牌
oauth — 一个存储的访问令牌
用于受 OAuth 保护的服务器。提供一个你已经铸造的
access_token;
网关把它作为一个 bearer 凭据发送,与 bearer 完全一样。自动的
client-credentials 交换(用一个 client_id/client_secret 换取
一个全新令牌)尚不可用——一个没有 access_token 的 oauth
注册会被拒绝。basic — 用户名和密码
basic — 用户名和密码
HTTP basic auth。
3. 注册一个安全的 MCP 服务器 —— 一个例子
MCP 服务器注册是一个控制台操作:它在你的会话/访问令牌下针对/api/workspace/firewall/mcp_servers 运行,并且写入一个服务器需要
Developer+ 角色。(这不同于你用于 /v1/* 模型调用的 sk-orca-…
中继密钥——那个密钥永不管理工作区配置。)
从防火墙控制台,或直接用你的会话令牌,注册一个 bearer-鉴权
服务器:
name 每工作区唯一(重名返回 HTTP 409),并且它不能包含 .
——那个字符把工具命名为 <server>.<tool>。在进入时,OrcaRouter
加密 auth_json 并只存储密文。当你读回服务器时,你得到屏蔽形式。
4. 证明连接有效
鉴权不算完成,直到网关能用你存储的凭据真正到达服务器。 **探测(Probe)**它:status:
status | 含义 |
|---|---|
ok | 已到达并已鉴权;工具已发现。 |
degraded | 可达但不完全健康。 |
down | 无法连接或鉴权。 |
down 结果几乎总是意味着一个坏凭据或
错误的 auth_mode——修正 auth_json 并再次探测。探测是一个
Developer+ 操作;捆绑的进程内服务器没有端点,不可探测。
一个被禁用的服务器是干净的关闭开关:它的工具从网关中消失,它的
凭据永不被解密。在你理顺它的鉴权时禁用一个服务器,然后在一次探测
回到
ok 之后重新启用。5. 从一个智能体读取服务器
你的智能体不读取凭据。当一个 SDK 代理需要运行时注册表时,它用一个 firewall-gateway-scoped 密钥调用GET /api/v1/firewall/mcp_servers
——一个专用密钥,不是你的中继密钥也不是你的会话。那条路径只提供
已启用的服务器,并且网关仍然端到端地拥有凭据注入。
把一个智能体连接到统一 MCP 端点的内容在
网关参考 中涵盖。
6. 下一步去哪里
连接你的第一个服务器
完整的注册演练,从空工作区到一个活的工具。
轮换凭据
在不中断连接的情况下替换一个泄露或将过期的密钥。
允许列表 MCP 工具
决定你的智能体实际上可以调用一个服务器的哪些工具。
限制出站
约束一个服务器的工具在网络上被允许触及哪里。
