Skip to main content
Области доступа оператора определяют, что клиент Gateway может делать после аутентификации. Это защитный механизм плоскости управления внутри одного доверенного операторского домена Gateway, а не изоляция от враждебных арендаторов. Для строгого разделения людей, команд или машин запускайте отдельные Gateway от имени разных пользователей ОС или на разных хостах. См. также: Безопасность, Протокол Gateway, Сопряжение Gateway, CLI устройств.

Роли

Каждый клиент Gateway WebSocket подключается с одной ролью:
  • operator: клиенты плоскости управления, такие как CLI, интерфейс управления, средства автоматизации и доверенные вспомогательные процессы.
  • node: узлы, предоставляющие возможности (macOS, iOS, Android, без графического интерфейса) и открывающие доступ к командам через node.invoke.
Методы RPC оператора требуют роль 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.