Gateway

Області дії операторів

Області дії оператора визначають, що клієнт Gateway може робити після автентифікації. Вони є захисним механізмом площини керування в межах одного довіреного домену оператора Gateway, а не ізоляцією від ворожих орендарів у багатоорендному середовищі. Для надійного розмежування між людьми, командами або машинами запускайте окремі Gateway від імені окремих користувачів ОС або на окремих хостах.

Пов’язані матеріали: Безпека, Протокол Gateway, Сполучення Gateway, CLI пристроїв.

Ролі

Кожен клієнт WebSocket Gateway підключається з однією роллю:

  • operator: клієнти площини керування, як-от CLI, інтерфейс керування, автоматизація та довірені допоміжні процеси.
  • node: хости можливостей (macOS, iOS, Android, без графічного інтерфейсу), які надають команди через node.invoke.

Методи RPC оператора потребують ролі operator; методи, ініційовані вузлом, потребують ролі node.

Рівні областей дії

Область дії Значення
operator.read Доступ лише для читання до стану, списків, каталогу, журналів, читання сеансів та інших викликів, які не вносять змін.
operator.write Дії оператора, що вносять зміни: надсилання повідомлень, виклик інструментів, оновлення налаштувань розмови/голосу, ретрансляція команд вузла. Також задовольняє operator.read.
operator.admin Адміністративний доступ. Задовольняє кожну область дії operator.*. Потрібен для зміни конфігурації, оновлень, нативних хуків, зарезервованих просторів імен і схвалень із високим ризиком.
operator.pairing Керування сполученням пристроїв і вузлів: перегляд списку, схвалення, відхилення, видалення, ротація, відкликання.
operator.approvals API схвалення виконання команд і плагінів.
operator.talk.secrets Читання конфігурації розмови разом із секретами.

Невідомі майбутні області дії operator.* потребують точного збігу, якщо викликач ще не має operator.admin.

Область дії методу — лише перший бар’єр

Кожен RPC Gateway має область дії методу з мінімально необхідними привілеями, яка визначає, чи потрапить запит до його обробника. Потім деякі обробники застосовують суворіші перевірки залежно від конкретного об’єкта, який схвалюють або змінюють:

  • device.pair.approve доступний з operator.pairing, але схвалення пристрою оператора може створити або зберегти лише ті області дії, які вже має викликач.
  • node.pair.approve доступний з operator.pairing, після чого визначає додаткові області дії для схвалення зі списку команд, оголошених вузлом, який очікує схвалення.
  • chat.send — метод з областю дії для запису, але команди чату /config set і /config unset додатково потребують operator.admin, незалежно від області дії викликача для надсилання повідомлень у чаті.

Це дає операторам із вужчими областями дії змогу виконувати операції сполучення з низьким ризиком, не обмежуючи всі схвалення сполучення лише адміністраторами.

Схвалення сполучення пристроїв

Записи про сполучення пристроїв є постійним джерелом схвалених ролей та областей дії. Уже сполучений пристрій не отримує ширший доступ непомітно: повторне підключення, яке запитує ширшу роль або ширші області дії, створює новий запит на оновлення, що очікує схвалення.

Під час схвалення запиту пристрою:

  • Запит без ролі оператора не потребує схвалення області дії оператора.
  • Запит ролі пристрою, що не є оператором (наприклад, node), потребує operator.admin, хоча сам device.pair.approve потребує лише operator.pairing.
  • Запит operator.read, operator.write, operator.approvals, operator.pairing або operator.talk.secrets потребує, щоб викликач уже мав цю область дії або operator.admin.
  • Запит operator.admin потребує operator.admin.
  • Запит на відновлення без явно вказаних областей дії може успадкувати області дії наявного токена оператора; якщо цей токен має адміністративну область дії, для схвалення все одно потрібен operator.admin.

Сеанси зі спільним секретом без адміністративних прав і сеанси довіреного проксі можуть схвалювати запити пристроїв оператора лише в межах власних оголошених областей дії оператора; схвалювати ролі, що не є операторськими, можуть лише адміністратори, навіть якщо ці сеанси в інших випадках можуть використовувати operator.pairing.

Для сеансів токенів сполучених пристроїв керування обмежене власним пристроєм, якщо викликач не має operator.admin: викликач без адміністративних прав бачить лише власні записи сполучення та може схвалювати, відхиляти, ротувати, відкликати або видаляти лише запис власного пристрою.

Схвалення сполучення вузлів

Застарілі методи node.pair.* використовують окреме сховище сполучень вузлів, яким володіє Gateway. Натомість вузли WS використовують сполучення пристроїв (role: node), але до них застосовується та сама термінологія схвалення. Відомості про зв’язок між двома сховищами див. у розділі Сполучення Gateway.

node.pair.approve визначає додаткові необхідні області дії зі списку команд у запиті, який очікує схвалення:

Оголошені команди Необхідні області дії
немає operator.pairing
звичайні команди вузла operator.pairing + operator.write
system.run, system.run.prepare, system.which, browser.proxy, fs.listDir або system.execApprovals.get/set operator.pairing + operator.admin

Схвалення декларації вузла не вмикає команди, для яких існує окремий дозвільний список середовища виконання. Наприклад, схвалення вузла, що оголошує computer.act, потребує сполучення та області дії для запису, але лише реєструє цю можливість. Адміністратор або власник усе одно має активувати computer.act. Поки ця можливість активна, її виклик через метод node.invoke з областю дії для запису не потребує адміністративної області дії для кожної операції.

Сполучення вузла встановлює ідентичність і довіру; воно не замінює власну політику схвалення виконання команд system.run вузла.

Автентифікація за спільним секретом

Автентифікація за допомогою спільного токена/пароля Gateway вважається довіреним операторським доступом до цього Gateway. HTTP-інтерфейси, сумісні з OpenAI, /tools/invoke та HTTP-кінцеві точки історії сеансів відновлюють повний стандартний набір областей дії оператора для автентифікації носія за спільним секретом, навіть якщо викликач надсилає вужчі оголошені області дії.

Режими з ідентифікацією, як-от автентифікація через довірений проксі або приватний вхідний none, можуть і надалі враховувати явно оголошені області дії. Для справжнього розмежування меж довіри використовуйте окремі Gateway.

Was this useful?
On this page

On this page