操作员作用域
操作员作用域定义了 Gateway(网关) 客户端在通过身份验证后可以执行的操作。 它们是一个受信任的 Gateway(网关) 操作员域内的控制平面护栏, 而非针对敌对多租户的隔离机制。如果您需要在 人员、团队或机器之间实现严格的分离,请在不同的操作系统用户或 主机下运行单独的 Gateway(网关)。
相关:Security、Gateway(网关) protocol、 Gateway(网关) pairing、Devices CLI。
Gateway(网关) WebSocket 客户端使用以下一种角色进行连接:
operatorCLI:控制平面客户端,例如 CLI、控制 UI、自动化以及 受信任的辅助进程。nodemacOSiOSAndroid:功能主机,例如 macOS、iOS、Android 或无头节点,它们 通过node.invoke暴露命令。
操作员 RPC 方法需要 RPCoperator 角色。节点发起的方法
需要 node 角色。
| 作用域 | 含义 |
|---|---|
operator.read | 只读状态、列表、目录、日志、会话读取以及其他非变更性控制平面调用。 |
operator.write | 常规变更性操作员操作,例如发送消息、调用工具、更新通话/语音设置以及节点命令中继。同时也满足 operator.read。 |
operator.admin | 管理级控制平面访问权限。满足每个 operator.* 作用域。配置变更、更新、原生挂钩、敏感保留命名空间以及高风险审批所需。 |
operator.pairing | 设备和节点配对管理,包括列出、批准、拒绝、移除、轮换和吊销配对记录或设备令牌。 |
operator.approvals | Exec 和插件批准 API。 |
operator.talk.secrets | 读取包含机密信息的 Talk 配置。 |
未知的未来 operator.* 范围需要精确匹配,除非调用方拥有
operator.admin。
方法范围只是第一道关卡
Section titled “方法范围只是第一道关卡”每个 Gateway(网关) RPC 都有一个最小权限方法范围。该方法范围决定 请求是否能到达处理程序。一些处理程序随后会根据被批准或变更的具体对象 应用更严格的批准时检查。
示例:
- 使用
operator.pairing即可访问device.pair.approve,但批准 操作员设备只能生成或保留调用方已拥有的范围。 - 使用
operator.pairing即可访问node.pair.approve,然后从待处理的节点命令列表 中派生额外的批准范围。 chat.send通常是一个具有写入范围的方法,但持久化/config set和/config unset需要在命令级别拥有operator.admin。
这允许范围较低的操作员执行低风险的配对操作,而无需将 所有配对批准设为仅限管理员执行。
设备配对批准
Section titled “设备配对批准”设备配对记录是已批准角色和范围的持久来源。 已配对的设备不会在静默中获得更广泛的访问权限:请求 更广泛角色或更广泛范围的重连会创建一个新的待处理升级请求。
批准设备请求时:
- 没有操作员角色的请求不需要操作员令牌范围批准。
- 请求非操作员设备角色(例如
node)需要operator.admin,即使device.pair.approve可以通过operator.pairing访问。 - 请求
operator.read、operator.write、operator.approvals、operator.pairing或operator.talk.secrets需要调用方拥有 这些范围,或拥有operator.admin。 - 请求
operator.admin需要operator.admin。 - 没有显式范围的修复请求可以继承现有的操作员
令牌范围。如果现有令牌具有管理员范围,则批准仍需要
operator.admin。
非管理员共享密钥和受信任代理会话只能在其自己声明的操作员范围内批准操作员-设备
请求。批准非操作员
角色是管理员独有的,即使这些会话在其他情况下可以使用
operator.pairing。
对于已配对设备令牌会话,除非调用方具有 operator.admin,否则管理也是自限范围的:非管理员调用方只能看到自己的配对
条目,只能批准或拒绝自己的待处理请求,并且只能轮换、
撤销或删除自己的设备条目。
节点配对批准
Section titled “节点配对批准”传统 node.pair.*Gateway(网关) 使用独立的 Gateway(网关) 拥有的节点配对存储。WS 节点
使用带有 role: node 的设备配对,但适用相同的批准级别词汇
表。
node.pair.approve 使用待处理请求命令列表来推导附加
所需范围:
- 无命令请求:
operator.pairing - 非执行节点命令:
operator.pairing+operator.write system.run、system.run.prepare或system.which:operator.pairing+operator.admin
节点配对建立身份和信任。它不会取代节点自身的 system.run 执行批准策略。
共享密钥认证
Section titled “共享密钥认证”共享 Gateway 令牌/密码认证被视为对该 Gateway(网关) 的受信任操作员访问。OpenAI 兼容的 HTTP 表面、/tools/invoke 和 HTTP 会话历史记录端点会恢复为共享密钥不记名认证设置的正常的完整操作员默认范围集,即使调用方发送了更窄的声明范围。
承载身份的模式(如受信任的代理认证或专用入口 none)仍然可以遵守明确的声明范围。请使用单独的 Gateway 来实现真正的信任边界分离。