Gateway
Ambiti dell'operatore
Gli ambiti operatore definiscono ciò che un client Gateway può fare dopo essersi autenticato. Sono una protezione del control plane all'interno di un singolo dominio attendibile dell'operatore Gateway, non un isolamento multi-tenant ostile. Se hai bisogno di una separazione forte tra persone, team o macchine, esegui Gateway separati con utenti del sistema operativo o host separati.
Correlati: Sicurezza, protocollo Gateway, associazione Gateway, CLI dei dispositivi.
Ruoli
I client WebSocket del Gateway si connettono con un ruolo:
operator: client del control plane come CLI, Control UI, automazione e processi di supporto attendibili.node: host di funzionalità come macOS, iOS, Android o nodi headless che espongono comandi tramitenode.invoke.
I metodi RPC dell'operatore richiedono il ruolo operator. I metodi originati
dal nodo richiedono il ruolo node.
Livelli di ambito
| Ambito | Significato |
|---|---|
operator.read |
Stato in sola lettura, elenchi, catalogo, log, letture di sessione e altre chiamate del control plane non mutanti. |
operator.write |
Normali azioni mutanti dell'operatore, come inviare messaggi, invocare strumenti, aggiornare le impostazioni di conversazione/voce e inoltrare comandi ai nodi. Soddisfa anche operator.read. |
operator.admin |
Accesso amministrativo al control plane. Soddisfa ogni ambito operator.*. Richiesto per mutazioni della configurazione, aggiornamenti, hook nativi, namespace riservati sensibili e approvazioni ad alto rischio. |
operator.pairing |
Gestione dell'associazione di dispositivi e nodi, incluse le operazioni di elenco, approvazione, rifiuto, rimozione, rotazione e revoca di record di associazione o token dispositivo. |
operator.approvals |
API di approvazione per exec e plugin. |
operator.talk.secrets |
Lettura della configurazione di Talk con i segreti inclusi. |
Gli ambiti futuri sconosciuti operator.* richiedono una corrispondenza esatta, a meno che il chiamante non abbia
operator.admin.
L'ambito del metodo è solo il primo controllo
Ogni RPC Gateway ha un ambito di metodo con privilegi minimi. Tale ambito di metodo decide se la richiesta può raggiungere l'handler. Alcuni handler applicano poi controlli più severi al momento dell'approvazione, in base all'elemento concreto che viene approvato o modificato.
Esempi:
device.pair.approveè raggiungibile conoperator.pairing, ma l'approvazione di un dispositivo operatore può emettere o preservare solo ambiti già detenuti dal chiamante.node.pair.approveè raggiungibile conoperator.pairing, quindi deriva ambiti di approvazione aggiuntivi dall'elenco di comandi del nodo in sospeso.chat.sendnormalmente è un metodo con ambito di scrittura, ma/config sete/config unsetpersistenti richiedonooperator.admina livello di comando.
Questo consente agli operatori con ambiti inferiori di eseguire azioni di associazione a basso rischio senza rendere tutte le approvazioni di associazione riservate agli amministratori.
Approvazioni di associazione dei dispositivi
I record di associazione dei dispositivi sono la fonte durevole dei ruoli e degli ambiti approvati. I dispositivi già associati non ottengono silenziosamente un accesso più ampio: le riconnessioni che chiedono un ruolo più ampio o ambiti più ampi creano una nuova richiesta di upgrade in sospeso.
Quando approvi una richiesta di dispositivo:
- Una richiesta senza ruolo operatore non richiede l'approvazione dell'ambito del token operatore.
- Una richiesta per
operator.read,operator.write,operator.approvals,operator.pairingooperator.talk.secretsrichiede che il chiamante abbia tali ambiti, oppureoperator.admin. - Una richiesta per
operator.adminrichiedeoperator.admin. - Una richiesta di riparazione senza ambiti espliciti può ereditare gli ambiti esistenti del token operatore.
Se quel token esistente ha ambito admin, l'approvazione richiede comunque
operator.admin.
Per le sessioni con token di dispositivi associati, la gestione è auto-limitata a meno che il chiamante
non abbia anche operator.admin: i chiamanti non admin vedono solo le proprie voci di associazione,
possono approvare o rifiutare solo la propria richiesta in sospeso e possono ruotare, revocare o
rimuovere solo la propria voce dispositivo.
Approvazioni di associazione dei nodi
Il legacy node.pair.* usa uno store separato di associazione nodi di proprietà del Gateway. I nodi WS
usano l'associazione dei dispositivi con role: node, ma si applica lo stesso vocabolario
a livello di approvazione.
node.pair.approve usa l'elenco di comandi della richiesta in sospeso per derivare ambiti
richiesti aggiuntivi:
- Richiesta senza comandi:
operator.pairing - Comandi nodo non exec:
operator.pairing+operator.write system.run,system.run.prepareosystem.which:operator.pairing+operator.admin
L'associazione dei nodi stabilisce identità e attendibilità. Non sostituisce la policy di approvazione exec
system.run propria del nodo.
Autenticazione con segreto condiviso
L'autenticazione con token/password condivisi del gateway viene trattata come accesso operatore attendibile per
quel Gateway. Le superfici HTTP compatibili con OpenAI e /tools/invoke ripristinano il
normale set completo di ambiti predefiniti dell'operatore per l'autenticazione bearer con segreto condiviso, anche se un
chiamante invia ambiti dichiarati più ristretti.
Le modalità con identità, come l'autenticazione tramite proxy attendibile o none con private ingress,
possono comunque rispettare gli ambiti dichiarati espliciti. Usa Gateway separati per una reale separazione
dei confini di fiducia.