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 для справжнього розділення меж довіри.