角色
每個閘道 WebSocket 用戶端都會以一種角色連線:operator:控制平面用戶端,例如命令列介面、控制介面、自動化,以及 受信任的輔助程序。node:透過node.invoke公開命令的 功能主機(macOS、iOS、Android、無頭環境)。
operator 角色;由節點發起的方法
則需要 node 角色。
範圍層級
未知的未來
operator.* 範圍必須完全相符,除非呼叫者
已持有 operator.admin。
方法範圍只是第一道關卡
每個閘道 RPC 都有一個最小權限方法範圍,用來判斷 要求是否可進入其處理常式。會依參數判斷的方法會在 分派前推導該範圍,讓授權失敗採用單一標準的結構化回應:agent的一般回合需要operator.write,而/new或/reset工作階段生命週期命令則需要operator.admin。node.invoke的一般轉送命令需要operator.write,而browser.proxy、fs.listDir及terminal.upload則需要operator.admin。talk.config需要operator.read;includeSecrets: true還需要operator.talk.secrets。
device.pair.approve可透過operator.pairing存取,但核准 操作員裝置時,只能發給或保留呼叫者已持有的範圍。node.pair.approve可透過operator.pairing存取,之後會從 待處理節點宣告的命令清單推導額外的核准範圍。chat.send是寫入範圍的方法,但/config set與/config unset聊天命令還需要額外的operator.admin, 無論呼叫者具有何種聊天傳送範圍皆是如此。
client.id 或 client.mode 無關。用戶端
身分仍可能影響連線與裝置驗證政策,但既不會
授予也不會移除工作階段變更權限。
裝置配對核准
裝置配對記錄是已核准角色與範圍的持久性資料來源。 已配對的裝置不會在未告知的情況下取得更廣泛的存取權:若重新連線時 要求更廣泛的角色或範圍,就會建立新的待處理升級 要求。 核准裝置要求:- 不含操作員角色的要求不需要操作員範圍核准。
- 非操作員裝置角色(例如
node)的要求需要operator.admin,即使device.pair.approve本身只需要operator.pairing。 - 要求
operator.read、operator.write、operator.approvals、operator.questions、operator.pairing或operator.talk.secrets時, 呼叫者必須已持有該範圍或operator.admin。 - 要求
operator.admin時需要operator.admin。 - 不含明確範圍的修復要求可以繼承現有操作員
權杖的範圍;若該權杖具有管理員範圍,核准仍需要
operator.admin。
operator.pairing,核准非操作員角色仍僅限管理員。
對於已配對裝置的權杖工作階段,除非呼叫者
具有 operator.admin,否則管理範圍僅限自身:非管理員呼叫者只能看到自己的配對項目,
也只能核准、拒絕、輪替、撤銷或移除自己的裝置項目。
節點配對核准
舊版node.pair.* 方法使用另一個由閘道擁有的節點配對儲存區。
WS 節點改用裝置配對(role: node),但仍採用相同的核准
詞彙。請參閱閘道配對,瞭解這兩個
儲存區之間的關係。
node.pair.approve 會從待處理要求的
命令清單推導額外的必要範圍:
核准節點宣告不會啟用具有獨立
執行階段允許清單關卡的命令。例如,核准宣告
computer.act 的節點需要配對與寫入範圍,但只會記錄該介面。
管理員或擁有者仍必須啟用 computer.act。在其維持
啟用期間,透過 node.invoke 叫用它需要寫入範圍,但不需要
每次動作都具有管理員範圍。
節點配對會建立身分與信任;它不會取代節點本身的
system.run 執行核准政策。
共用秘密驗證
共用閘道權杖/密碼驗證會被視為該閘道的受信任操作員存取。 與 OpenAI 相容的 HTTP 介面、/tools/invoke 及 HTTP
工作階段歷程記錄端點,會為共用秘密持有人驗證還原完整的預設操作員範圍集合,
即使呼叫者傳送較窄的宣告範圍亦然。
帶有身分的模式(例如受信任 Proxy 驗證或私人入口 none)
仍可遵循明確宣告的範圍。若要實現真正的信任
邊界隔離,請使用個別閘道。