Роли
Каждый клиент Gateway WebSocket подключается с одной ролью: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.