Ролі
Кожен клієнт WebSocket Gateway підключається з однією роллю:operator: клієнти площини керування, як-от CLI, інтерфейс керування, автоматизація та довірені допоміжні процеси.node: хости можливостей (macOS, iOS, Android, без графічного інтерфейсу), які надають команди черезnode.invoke.
operator; методи, ініційовані вузлом,
потребують ролі node.
Рівні областей дії
Невідомі майбутні області дії
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 визначає додаткові необхідні області дії зі списку
команд у запиті, який очікує схвалення:
Схвалення декларації вузла не вмикає команди, для яких існує окремий
дозвільний список середовища виконання. Наприклад, схвалення вузла, що оголошує
computer.act, потребує сполучення та області дії для запису, але лише реєструє цю можливість.
Адміністратор або власник усе одно має активувати computer.act. Поки ця можливість
активна, її виклик через метод node.invoke з областю дії для запису не
потребує адміністративної області дії для кожної операції.
Сполучення вузла встановлює ідентичність і довіру; воно не замінює власну
політику схвалення виконання команд system.run вузла.
Автентифікація за спільним секретом
Автентифікація за допомогою спільного токена/пароля Gateway вважається довіреним операторським доступом до цього Gateway. HTTP-інтерфейси, сумісні з OpenAI,/tools/invoke та HTTP-кінцеві точки
історії сеансів відновлюють повний стандартний набір областей дії оператора для
автентифікації носія за спільним секретом, навіть якщо викликач надсилає вужчі оголошені області дії.
Режими з ідентифікацією, як-от автентифікація через довірений проксі або приватний вхідний none,
можуть і надалі враховувати явно оголошені області дії. Для справжнього розмежування меж довіри
використовуйте окремі Gateway.