Gateway
Області дії оператора
Області дії оператора визначають, що клієнт Gateway може робити після автентифікації. Вони є запобіжником площини керування всередині одного довіреного операторського домену Gateway, а не ізоляцією від ворожих багатьох орендарів. Якщо вам потрібне сильне розділення між людьми, командами або машинами, запускайте окремі Gateways під окремими користувачами ОС або на окремих хостах.
Пов’язано: Безпека, протокол Gateway, сполучення Gateway, CLI пристроїв.
Ролі
Клієнти Gateway WebSocket підключаються з однією роллю:
operator: клієнти площини керування, такі як CLI, Control UI, автоматизація та довірені допоміжні процеси.node: хости можливостей, такі як macOS, iOS, Android або безголові вузли, які надають команди черезnode.invoke.
Методи RPC оператора потребують ролі operator. Методи, що походять від Node,
потребують ролі node.
Рівні областей дії
| Область дії | Значення |
|---|---|
operator.read |
Стан лише для читання, списки, каталог, журнали, читання сеансів та інші виклики площини керування без мутацій. |
operator.write |
Звичайні мутаційні дії оператора, такі як надсилання повідомлень, виклик інструментів, оновлення налаштувань розмови/голосу та ретрансляція команд Node. Також задовольняє operator.read. |
operator.admin |
Адміністративний доступ до площини керування. Задовольняє кожну область дії operator.*. Потрібна для мутації конфігурації, оновлень, нативних хуків, чутливих зарезервованих просторів імен та схвалень високого ризику. |
operator.pairing |
Керування сполученням пристроїв і Node, зокрема перелік, схвалення, відхилення, видалення, ротація та відкликання записів сполучення або токенів пристроїв. |
operator.approvals |
API схвалення виконання та plugin. |
operator.talk.secrets |
Читання конфігурації Talk з включеними секретами. |
Невідомі майбутні області дії operator.* потребують точного збігу, якщо викликач не має
operator.admin.
Область дії методу — лише перший бар’єр
Кожен RPC Gateway має область дії методу з мінімальними привілеями. Ця область дії методу визначає, чи може запит дійти до обробника. Деякі обробники потім застосовують суворіші перевірки під час схвалення на основі конкретної речі, яку схвалюють або змінюють.
Приклади:
device.pair.approveдоступний ізoperator.pairing, але схвалення операторського пристрою може лише створити або зберегти області дії, які викликач уже має.node.pair.approveдоступний ізoperator.pairing, а потім виводить додаткові області дії схвалення зі списку очікуваних команд Node.chat.sendзазвичай є методом з областю дії запису, але постійні/config setі/config unsetпотребуютьoperator.adminна рівні команди.
Це дає операторам із нижчими областями дії виконувати низькоризикові дії сполучення, не роблячи всі схвалення сполучення доступними лише адміністраторам.
Схвалення сполучення пристроїв
Записи сполучення пристроїв є надійним джерелом схвалених ролей і областей дії. Уже сполучені пристрої не отримують ширший доступ непомітно: повторні підключення, які запитують ширшу роль або ширші області дії, створюють новий запит на оновлення, що очікує.
Під час схвалення запиту пристрою:
- Запит без ролі оператора не потребує схвалення області дії токена оператора.
- Запит на
operator.read,operator.write,operator.approvals,operator.pairingабоoperator.talk.secretsпотребує, щоб викликач мав ці області дії абоoperator.admin. - Запит на
operator.adminпотребуєoperator.admin. - Запит на відновлення без явних областей дії може успадкувати наявні області дії токена
оператора. Якщо цей наявний токен має область дії адміністратора, схвалення все одно потребує
operator.admin.
Для сеансів токенів сполучених пристроїв керування має власну область дії, якщо викликач
також не має operator.admin: викликачі без прав адміністратора бачать лише власні записи сполучення,
можуть схвалювати або відхиляти лише власний запит, що очікує, і можуть ротувати, відкликати або
видаляти лише власний запис пристрою.
Схвалення сполучення Node
Застарілий node.pair.* використовує окреме сховище сполучень Node, яким володіє Gateway. WS-вузли
використовують сполучення пристроїв із role: node, але застосовується той самий словник
рівнів схвалення.
node.pair.approve використовує список команд запиту, що очікує, щоб вивести додаткові
потрібні області дії:
- Запит без команд:
operator.pairing - Команди Node без виконання:
operator.pairing+operator.write system.run,system.run.prepareабоsystem.which:operator.pairing+operator.admin
Сполучення Node встановлює ідентичність і довіру. Воно не замінює власну політику
схвалення виконання system.run цього Node.
Автентифікація зі спільним секретом
Автентифікація зі спільним токеном/паролем Gateway розглядається як довірений операторський доступ для
цього Gateway. HTTP-поверхні, сумісні з OpenAI, і /tools/invoke відновлюють
звичайний повний стандартний набір областей дії оператора для bearer-автентифікації зі спільним секретом, навіть якщо
викликач надсилає вужчі оголошені області дії.
Режими з ідентичністю, такі як автентифікація через довірений проксі або приватний вхід none,
все ще можуть враховувати явно оголошені області дії. Використовуйте окремі Gateways для справжнього
розділення меж довіри.