Vai trò
Mỗi client WebSocket của Gateway kết nối với một vai trò:operator: các client mặt phẳng điều khiển như CLI, giao diện điều khiển, tự động hóa và các tiến trình trợ giúp đáng tin cậy.node: các máy chủ khả năng (macOS, iOS, Android, không giao diện) cung cấp 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
Các phạm vi
operator.* chưa xác định 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 kiểm tra đầu tiên
Mỗi RPC của Gateway có một phạm vi phương thức theo nguyên tắc đặc quyền tối thiểu để quyết định liệu yêu cầu có được chuyển đến trình xử lý hay không. Các phương thức có xét tham số sẽ xác định phạm vi đó trước khi điều phối để mọi lỗi ủy quyền có một phản hồi có cấu trúc chuẩn duy nhất:agentcầnoperator.writecho các lượt thông thường vàoperator.admincho các lệnh vòng đời phiên/newhoặc/reset.node.invokecầnoperator.writecho các lệnh chuyển tiếp thông thường vàoperator.adminchobrowser.proxy,fs.listDirvàterminal.upload.talk.configcầnoperator.read;includeSecrets: truecũng cầnoperator.talk.secrets.
device.pair.approvecó thể được truy cập bằngoperator.pairing, nhưng việc phê duyệt một thiết bị operator chỉ có thể cấp hoặc giữ lại các phạm vi mà bên gọi đã có.node.pair.approvecó thể được truy cập bằngoperator.pairing, sau đó xác định các phạm vi phê duyệt bổ sung từ danh sách lệnh đã khai báo của node đang chờ xử lý.chat.sendlà một phương thức có phạm vi ghi, nhưng các lệnh trò chuyện/config setvà/config unsetcòn yêu cầu thêmoperator.admin, bất kể phạm vi gửi trò chuyện của bên gọi.
client.id hoặc client.mode của client đang kết nối. Danh tính client
vẫn có thể ảnh hưởng đến chính sách kết nối và xác thực thiết bị, nhưng không
cấp hoặc loại bỏ quyền thay đổi phiên.
Phê duyệt ghép nối thiết bị
Các bản ghi ghép nối thiết bị là nguồn bền vững lưu trữ các vai trò và phạm vi đã được phê duyệt. Một thiết bị đã ghép nối không được âm thầm cấp quyền truy cập rộng hơn: một lần kết nối lại yêu cầu vai trò 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ờ xử lý. Khi phê duyệt một yêu cầu thiết bị:- Yêu cầu không có vai trò operator thì không cần phê duyệt phạm vi operator.
- Yêu cầu vai trò thiết bị không phải operator (ví dụ
node) yêu cầuoperator.admin, mặc dù bản thândevice.pair.approvechỉ cầnoperator.pairing. - Yêu cầu
operator.read,operator.write,operator.approvals,operator.questions,operator.pairinghoặcoperator.talk.secretsyêu cầu bên gọi đã có phạm vi đó hoặc cóoperator.admin. - Yêu cầu
operator.admincầnoperator.admin. - Yêu cầu sửa chữa không có phạm vi tường minh có thể kế thừa các phạm vi của token
operator hiện có; nếu token đó có phạm vi quản trị, việc phê duyệt vẫn yêu cầu
operator.admin.
operator.pairing cho mục đích khác.
Đối với các phiên token của thiết bị đã ghép nối, quyền quản lý chỉ giới hạn ở chính thiết bị đó, trừ khi bên gọi
có operator.admin: bên gọi không phải quản trị viên chỉ thấy các mục ghép nối của chính mình và
chỉ có thể phê duyệt, từ chối, luân chuyển, thu hồi hoặc xóa mục thiết bị của chính mình.
Phê duyệt ghép nối node
Các phương thứcnode.pair.* cũ sử dụng một kho ghép nối node riêng do Gateway sở hữu.
Các node WS sử dụng ghép nối thiết bị (role: node) thay thế, nhưng cùng một hệ thuật ngữ
phê duyệt vẫn được áp dụng. Xem Ghép nối Gateway để biết mối quan hệ giữa hai
kho này.
node.pair.approve xác định các phạm vi bắt buộc bổ sung từ danh sách lệnh của
yêu cầu đang chờ xử lý:
Việc phê duyệt khai báo của node không bật các lệnh có cổng danh sách cho phép
thời gian chạy riêng. Ví dụ, việc phê duyệt một node khai báo
computer.act yêu cầu phạm vi ghép nối và ghi, nhưng chỉ ghi nhận bề mặt đó.
Quản trị viên hoặc chủ sở hữu vẫn phải kích hoạt computer.act. Trong khi tính năng này vẫn
được kích hoạt, việc gọi nó thông qua node.invoke yêu cầu phạm vi ghi, nhưng không cần phạm vi
quản trị cho từng hành động.
Ghép nối node thiết lập danh tính và độ tin cậy; nó không thay thế chính sách phê duyệt
thực thi system.run của chính node đó.
Xác thực bằng bí mật dùng chung
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 với OpenAI,/tools/invoke và các endpoint HTTP
lịch sử phiên sẽ khôi phục tập phạm vi operator mặc định đầy đủ cho
xác thực bearer bằng bí mật dùng chung, ngay cả khi bên gọi gửi 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 proxy đáng tin cậy hoặc none qua cổng vào riêng tư,
vẫn có thể tuân theo các phạm vi được khai báo tường minh. Hãy sử dụng các Gateway riêng biệt để
phân tách ranh giới tin cậy thực sự.