Vai trò
Các client WebSocket Gateway kết nối với một vai trò:operator: các client control plane như CLI, Control UI, tự động hóa và các tiến trình trợ giúp đáng tin cậy.node: các máy chủ năng lực như macOS, iOS, Android hoặc các node không giao diện để lộ lệnh thông quanode.invoke.
operator. Các phương thức bắt nguồn từ node
yêu cầu vai trò node.
Cấp độ phạm vi
| Phạm vi | Ý nghĩa |
|---|---|
operator.read | Trạng thái chỉ đọc, danh sách, catalog, nhật ký, đọc phiên và các lệnh gọi control plane không thay đổi khác. |
operator.write | Các hành động operator có thay đổi thông thường như gửi tin nhắn, gọi công cụ, cập nhật cài đặt talk/voice và chuyển tiếp lệnh node. Cũng thỏa mãn operator.read. |
operator.admin | Quyền truy cập control plane quản trị. Thỏa mãn mọi phạm vi operator.*. Bắt buộc để thay đổi cấu hình, cập nhật, native hooks, namespace dành riêng nhạy cảm và phê duyệt rủi ro cao. |
operator.pairing | Quản lý ghép đôi thiết bị và node, bao gồm liệt kê, phê duyệt, từ chối, xóa, xoay vòng và thu hồi bản ghi ghép đôi hoặc token thiết bị. |
operator.approvals | API phê duyệt exec và plugin. |
operator.talk.secrets | Đọc cấu hình Talk có bao gồm bí mật. |
operator.* chưa biết trong tương lai yêu cầu khớp chính xác trừ khi bên gọi có
operator.admin.
Phạm vi phương thức chỉ là cổng đầu tiên
Mỗi RPC Gateway có một phạm vi phương thức đặc quyền tối thiểu. Phạm vi phương thức đó quyết định liệu yêu cầu có thể tới handler hay không. Sau đó, một số handler áp dụng các kiểm tra nghiêm ngặt hơn tại thời điểm phê duyệt dựa trên đối tượng cụ thể đang được phê duyệt hoặc thay đổi. Ví dụ:device.pair.approvecó thể truy cập bằngoperator.pairing, nhưng việc phê duyệt một thiết bị operator chỉ có thể tạo hoặc giữ lại các phạm vi mà bên gọi đã có.node.pair.approvecó thể truy cập bằngoperator.pairing, rồi suy ra các phạm vi phê duyệt bổ sung từ danh sách lệnh node đang chờ.chat.sendthông thường là một phương thức thuộc phạm vi ghi, nhưng/config setvà/config unsetlâu dài yêu cầuoperator.adminở cấp lệnh.
Phê duyệt ghép đôi thiết bị
Bản ghi ghép đôi thiết bị là nguồn bền vững của các vai trò và phạm vi đã được phê duyệt. Các thiết bị đã ghép đôi không âm thầm nhận quyền truy cập rộng hơn: các lần kết nối lại yêu cầu vai trò rộng hơn hoặc phạm vi rộng hơn sẽ tạo một yêu cầu nâng cấp mới đang chờ. Khi phê duyệt một yêu cầu thiết bị:- Một yêu cầu không có vai trò operator không cần phê duyệt phạm vi token operator.
- Một yêu cầu cho vai trò thiết bị không phải operator, chẳng hạn như
node, yêu cầuoperator.admin, ngay cả khidevice.pair.approvecó thể truy cập bằngoperator.pairing. - Một yêu cầu cho
operator.read,operator.write,operator.approvals,operator.pairing, hoặcoperator.talk.secretsyêu cầu bên gọi nắm giữ các phạm vi đó, hoặcoperator.admin. - Một yêu cầu cho
operator.adminyêu cầuoperator.admin. - Một yêu cầu sửa chữa không có phạm vi rõ ràng có thể kế thừa các phạm vi token operator
hiện có. Nếu token hiện có đó thuộc phạm vi admin, việc phê duyệt vẫn yêu cầu
operator.admin.
operator.pairing.
Đối với các phiên token thiết bị đã ghép đôi, việc quản lý cũng bị giới hạn trong phạm vi của chính nó trừ khi
bên gọi có operator.admin: các bên gọi không phải admin chỉ thấy các mục ghép đôi của riêng mình,
chỉ có thể phê duyệt hoặc từ chối yêu cầu đang chờ của riêng mình, và chỉ có thể xoay vòng,
thu hồi hoặc xóa mục thiết bị của riêng mình.
Phê duyệt ghép đôi node
node.pair.* legacy sử dụng một kho ghép đôi node riêng do Gateway sở hữu. Các node WS
sử dụng ghép đôi thiết bị với role: node, nhưng cùng bộ từ vựng cấp phê duyệt
vẫn được áp dụng.
node.pair.approve sử dụng danh sách lệnh trong yêu cầu đang chờ để suy ra các
phạm vi bắt buộc bổ sung:
- Yêu cầu không có lệnh:
operator.pairing - Lệnh node không phải exec:
operator.pairing+operator.write system.run,system.run.prepare, hoặcsystem.which:operator.pairing+operator.admin
system.run riêng của node.
Xác thực shared-secret
Xác thực bằng token/mật khẩu Gateway dùng chung được xem là quyền truy cập operator đáng tin cậy cho Gateway đó. Các bề mặt HTTP tương thích OpenAI,/tools/invoke, và các endpoint lịch sử phiên HTTP
khôi phục bộ phạm vi mặc định operator đầy đủ thông thường cho xác thực bearer shared-secret,
ngay cả khi bên gọi gửi các phạm vi khai báo hẹp hơn.
Các chế độ mang danh tính, chẳng hạn như xác thực trusted proxy hoặc private-ingress none,
vẫn có thể tôn trọng các phạm vi khai báo rõ ràng. Hãy dùng các Gateway riêng cho việc tách biệt
ranh giới tin cậy thực sự.