Gateway
Ámbitos del operador
Los ámbitos de operador definen qué puede hacer un cliente de Gateway después de autenticarse. Son una barrera de plano de control dentro de un único dominio de operador de Gateway de confianza, no un aislamiento multiinquilino hostil. Si necesitas una separación fuerte entre personas, equipos o máquinas, ejecuta Gateways separados bajo usuarios del sistema operativo o hosts separados.
Relacionado: Seguridad, Protocolo de Gateway, Emparejamiento de Gateway, CLI de dispositivos.
Roles
Los clientes WebSocket de Gateway se conectan con un rol:
operator: clientes de plano de control como CLI, Control UI, automatización y procesos auxiliares de confianza.node: hosts de capacidades como macOS, iOS, Android o nodos sin interfaz que exponen comandos mediantenode.invoke.
Los métodos RPC de operador requieren el rol operator. Los métodos originados en Node
requieren el rol node.
Niveles de ámbito
| Ámbito | Significado |
|---|---|
operator.read |
Estado de solo lectura, listas, catálogo, registros, lecturas de sesión y otras llamadas de plano de control que no mutan. |
operator.write |
Acciones normales de operador con mutación, como enviar mensajes, invocar herramientas, actualizar ajustes de conversación/voz y retransmisión de comandos de nodo. También satisface operator.read. |
operator.admin |
Acceso administrativo al plano de control. Satisface todos los ámbitos operator.*. Requerido para mutación de configuración, actualizaciones, hooks nativos, espacios de nombres reservados sensibles y aprobaciones de alto riesgo. |
operator.pairing |
Gestión de emparejamiento de dispositivos y nodos, incluida la enumeración, aprobación, rechazo, eliminación, rotación y revocación de registros de emparejamiento o tokens de dispositivo. |
operator.approvals |
API de aprobación de exec y Plugin. |
operator.talk.secrets |
Lectura de la configuración de Talk con secretos incluidos. |
Los ámbitos operator.* futuros desconocidos requieren una coincidencia exacta salvo que el llamador tenga
operator.admin.
El ámbito del método es solo la primera barrera
Cada RPC de Gateway tiene un ámbito de método de mínimo privilegio. Ese ámbito de método decide si la solicitud puede llegar al manejador. Después, algunos manejadores aplican comprobaciones más estrictas en el momento de la aprobación según el elemento concreto que se esté aprobando o mutando.
Ejemplos:
device.pair.approvees accesible conoperator.pairing, pero aprobar un dispositivo operador solo puede acuñar o conservar ámbitos que el llamador ya tiene.node.pair.approvees accesible conoperator.pairingy después deriva ámbitos de aprobación adicionales de la lista pendiente de comandos de nodo.chat.sendnormalmente es un método con ámbito de escritura, pero/config sety/config unsetpersistentes requierenoperator.admina nivel de comando.
Esto permite que operadores con menor ámbito realicen acciones de emparejamiento de bajo riesgo sin convertir todas las aprobaciones de emparejamiento en exclusivas de administrador.
Aprobaciones de emparejamiento de dispositivos
Los registros de emparejamiento de dispositivos son la fuente duradera de roles y ámbitos aprobados. Los dispositivos ya emparejados no obtienen acceso más amplio silenciosamente: las reconexiones que piden un rol más amplio o ámbitos más amplios crean una nueva solicitud pendiente de ampliación.
Al aprobar una solicitud de dispositivo:
- Una solicitud sin rol de operador no necesita aprobación de ámbito de token de operador.
- Una solicitud para
operator.read,operator.write,operator.approvals,operator.pairingooperator.talk.secretsrequiere que el llamador tenga esos ámbitos, ooperator.admin. - Una solicitud para
operator.adminrequiereoperator.admin. - Una solicitud de reparación sin ámbitos explícitos puede heredar los ámbitos de token de operador
existentes. Si ese token existente tiene ámbito de administrador, la aprobación sigue requiriendo
operator.admin.
Para sesiones de token de dispositivo emparejado, la gestión se limita al propio ámbito salvo que el llamador
también tenga operator.admin: los llamadores que no son administradores solo ven sus propias entradas de emparejamiento,
solo pueden aprobar o rechazar su propia solicitud pendiente y solo pueden rotar, revocar o
eliminar su propia entrada de dispositivo.
Aprobaciones de emparejamiento de Node
El node.pair.* heredado usa un almacén de emparejamiento de nodos independiente propiedad de Gateway. Los nodos WS
usan emparejamiento de dispositivos con role: node, pero se aplica el mismo vocabulario de nivel de aprobación.
node.pair.approve usa la lista de comandos de la solicitud pendiente para derivar ámbitos
requeridos adicionales:
- Solicitud sin comandos:
operator.pairing - Comandos de nodo que no son exec:
operator.pairing+operator.write system.run,system.run.prepareosystem.which:operator.pairing+operator.admin
El emparejamiento de nodos establece identidad y confianza. No reemplaza la política de aprobación de exec
system.run propia del nodo.
Autenticación con secreto compartido
La autenticación con token/contraseña compartidos de Gateway se trata como acceso de operador de confianza para
ese Gateway. Las superficies HTTP compatibles con OpenAI y /tools/invoke restauran el
conjunto normal completo de ámbitos predeterminados de operador para la autenticación de portador con secreto compartido, incluso si un
llamador envía ámbitos declarados más estrechos.
Los modos con identidad, como la autenticación mediante proxy de confianza o none de ingreso privado,
aún pueden respetar ámbitos declarados explícitos. Usa Gateways separados para una separación real de
límites de confianza.