Gateway
Phạm vi của người vận hành
Phạm vi của toán tử giới hạn những gì một máy khách Gateway có thể thực hiện sau khi xác thực. Đây là rào chắn mặt phẳng điều khiển trong một miền toán tử Gateway đáng tin cậy, không phải cơ chế cô lập đa đối tượng thuê có khả năng chống lại tác nhân thù địch. Để phân tách chặt chẽ giữa người dùng, nhóm hoặc máy, hãy chạy các Gateway riêng biệt dưới các người dùng hệ điều hành hoặc máy chủ riêng biệt.
Liên quan: Bảo mật, Giao thức Gateway, Ghép đôi Gateway, CLI thiết bị.
Vai trò
Mỗi máy khách WebSocket của Gateway kết nối với một vai trò:
operator: các máy khách mặt phẳng điều khiển như CLI, giao diện điều khiển, tác vụ tự động hóa và các tiến trình hỗ trợ đáng tin cậy.node: các máy chủ cung cấp khả năng (macOS, iOS, Android, không giao diện) công khai các lệnh thông quanode.invoke.
Các phương thức RPC của toán tử yêu cầu vai trò 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, danh sách, danh mục, nhật ký, thao tác đọc phiên và các lệnh gọi không thay đổi dữ liệu khác ở chế độ chỉ đọc. |
operator.write |
Các thao tác thay đổi dữ liệu của toán tử: gửi tin nhắn, gọi công cụ, cập nhật cài đặt trò chuyện/giọng nói, chuyển tiếp lệnh Node. Đồng thời đáp ứng operator.read. |
operator.admin |
Quyền truy cập quản trị. Đáp ứng mọi phạm vi operator.*. Bắt buộc để thay đổi cấu hình, cập nhật, dùng hook gốc, không gian tên dành riêng và phê duyệt có rủi ro cao. |
operator.pairing |
Quản lý ghép đôi thiết bị và Node: liệt kê, phê duyệt, từ chối, xóa, luân chuyển, thu hồi. |
operator.approvals |
Các API phê duyệt thực thi và Plugin. |
operator.talk.secrets |
Đọc cấu hình Talk, bao gồm cả thông tin bí mật. |
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. Sau đó, một số trình xử lý áp dụng các bước kiểm tra nghiêm ngặt hơn dựa trên đối tượng cụ thể đang được phê duyệt hoặc thay đổi:
- Có thể truy cập
device.pair.approvebằngoperator.pairing, nhưng khi phê duyệt một thiết bị của toán tử, chỉ có thể cấp mới hoặc giữ nguyên các phạm vi mà bên gọi đã có. - Có thể truy cập
node.pair.approvebằngoperator.pairing, sau đó phương thức này suy ra 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à 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.
Điều này cho phép các toán tử có phạm vi thấp hơn thực hiện thao tác ghép đôi ít rủi ro mà không khiến mọi phê duyệt ghép đôi đều chỉ dành cho quản trị viên.
Phê duyệt ghép đôi thiết bị
Bản ghi ghép đôi thiết bị là nguồn lưu trữ lâu dài của các vai trò và phạm vi đã được phê duyệt. Một thiết bị đã ghép đôi không âm thầm nhận 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 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ò toán tử không cần phê duyệt phạm vi toán tử.
- Yêu cầu vai trò thiết bị không phải toán tử (ví dụ
node) cầnoperator.admin, mặc dù bản thândevice.pair.approvechỉ cầnoperator.pairing. - Yêu cầu
operator.read,operator.write,operator.approvals,operator.pairinghoặcoperator.talk.secretsyêu cầu bên gọi phả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 toán tử
hiện có; nếu token đó có phạm vi quản trị, việc phê duyệt vẫn cần
operator.admin.
Các phiên dùng thông tin bí mật dùng chung không có quyền quản trị và các phiên proxy đáng tin cậy chỉ có thể phê duyệt
yêu cầu thiết bị toán tử trong phạm vi toán tử đã khai báo của chính chúng; việc phê duyệt
vai trò không phải toán tử chỉ dành cho quản trị viên, ngay cả khi các phiên đó vẫn có thể sử dụng
operator.pairing cho mục đích khác.
Đối với các phiên dùng token của thiết bị đã ghép đôi, việc quản lý bị giới hạn trong phạm vi của 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 đô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 đôi Node
Các phương thức node.pair.* cũ 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ị (role: node) thay thế, nhưng vẫn áp dụng cùng
hệ thuật ngữ phê duyệt. Xem Ghép đôi Gateway để biết mối liên hệ giữa hai
kho này.
node.pair.approve suy ra 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ý:
| Lệnh đã khai báo | Phạm vi bắt buộc |
|---|---|
| không có | operator.pairing |
| các lệnh Node không thực thi | operator.pairing + operator.write |
system.run, system.run.prepare hoặc system.which |
operator.pairing + operator.admin |
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ụ, phê duyệt một Node khai báo
computer.act yêu cầu phạm vi ghép đôi cộng với phạm vi ghi, nhưng chỉ ghi nhận bề mặt khả năng đó.
Quản trị viên hoặc chủ sở hữu vẫn phải kích hoạt computer.act. Trong thời gian tính năng này vẫn
được kích hoạt, việc gọi nó thông qua phương thức node.invoke có phạm vi ghi không
yêu cầu phạm vi quản trị cho từng thao tác.
Ghép đô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 riêng của Node.
Xác thực bằng thông tin bí mật dùng chung
Xác thực bằng token/mật khẩu Gateway dùng chung được coi là quyền truy cập toán tử đáng tin cậy đối với
Gateway đó. Các bề mặt HTTP tương thích với OpenAI, /tools/invoke và các điểm cuối HTTP
lịch sử phiên khôi phục đầy đủ tập phạm vi toán tử mặc định cho xác thực bearer bằng thông tin bí mật dùng chung,
ngay cả khi bên gọi gửi các phạm vi khai báo hẹp hơn.
Các chế độ có gắn 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 để thực sự
phân tách ranh giới tin cậy.