Gateway
Operatorbereiken
Operatorbereiken bepalen wat een Gateway-client kan doen nadat deze zich heeft geauthenticeerd. Ze vormen een beveiligingsmechanisme voor het besturingsvlak binnen één vertrouwd Gateway-operatordomein, geen isolatie tegen vijandige tenants. Voor een sterke scheiding tussen personen, teams of machines voer je afzonderlijke Gateways uit onder afzonderlijke OS-gebruikers of hosts.
Gerelateerd: Beveiliging, Gateway-protocol, Gateway-koppeling, Apparaten-CLI.
Rollen
Elke Gateway WebSocket-client maakt verbinding met één rol:
operator: clients voor het besturingsvlak, zoals CLI, Control UI, automatisering en vertrouwde hulpprocessen.node: capaciteitshosts (macOS, iOS, Android, headless) die opdrachten beschikbaar stellen vianode.invoke.
RPC-methoden voor operators vereisen de rol operator; methoden die afkomstig zijn van nodes
vereisen de rol node.
Bereikniveaus
| Bereik | Betekenis |
|---|---|
operator.read |
Alleen-lezenstatus, lijsten, catalogus, logboeken, sessieleesbewerkingen en andere niet-wijzigende aanroepen. |
operator.write |
Wijzigende operatoracties: berichten verzenden, tools aanroepen, instellingen voor spraak en stem bijwerken, doorsturen van node-opdrachten. Voldoet ook aan operator.read. |
operator.admin |
Beheerderstoegang. Voldoet aan elk operator.*-bereik. Vereist voor configuratiewijzigingen, updates, native hooks, gereserveerde naamruimten en goedkeuringen met een hoog risico. |
operator.pairing |
Beheer van apparaat- en nodekoppelingen: weergeven, goedkeuren, afwijzen, verwijderen, roteren, intrekken. |
operator.approvals |
API's voor exec- en plugingoedkeuringen. |
operator.questions |
Interactieve vragen weergeven, lezen, beantwoorden en afhandelen. |
operator.talk.secrets |
Talk-configuratie lezen, inclusief geheimen. |
Onbekende toekomstige operator.*-bereiken vereisen een exacte overeenkomst, tenzij de aanroeper
al operator.admin heeft.
Methodebereik is slechts de eerste controle
Elke Gateway-RPC heeft een methodebereik met minimale bevoegdheden dat bepaalt of een verzoek de handler bereikt. Methoden die rekening houden met parameters leiden dat bereik vóór de dispatch af, zodat autorisatiefouten één canoniek gestructureerd antwoord hebben:
agentvereistoperator.writevoor gewone beurten enoperator.adminvoor sessielevenscyclusopdrachten/newof/reset.node.invokevereistoperator.writevoor gewone doorstuuropdrachten enoperator.adminvoorbrowser.proxy,fs.listDirenterminal.upload.talk.configvereistoperator.read;includeSecrets: truevereist ookoperator.talk.secrets.
Sommige handlers voeren vervolgens strengere controles uit op basis van het concrete object dat wordt goedgekeurd of gewijzigd:
device.pair.approveis bereikbaar metoperator.pairing, maar bij het goedkeuren van een operatorapparaat kunnen alleen bereiken worden uitgegeven of behouden die de aanroeper al heeft.node.pair.approveis bereikbaar metoperator.pairingen leidt vervolgens aanvullende goedkeuringsbereiken af uit de opgegeven opdrachtenlijst van de wachtende node.chat.sendis een methode met schrijfbereik, maar de chatopdrachten/config seten/config unsetvereisen daarnaastoperator.admin, ongeacht het bereik van de aanroeper voor het verzenden van chatberichten.
Hierdoor kunnen operators met een beperkter bereik koppelingsacties met een laag risico uitvoeren zonder dat alle koppelingsgoedkeuringen uitsluitend voor beheerders toegankelijk worden.
RPC's voor sessiewijzigingen worden geautoriseerd op basis van hun overeengekomen operatorbereiken,
onafhankelijk van de client.id of client.mode van de client die verbinding maakt. De
clientidentiteit kan nog steeds invloed hebben op het beleid voor verbindingen en apparaatauthenticatie, maar
verleent noch ontneemt bevoegdheid voor sessiewijzigingen.
Goedkeuringen voor apparaatkoppelingen
Apparaatkoppelingsrecords zijn de duurzame bron van goedgekeurde rollen en bereiken. Een reeds gekoppeld apparaat krijgt niet stilzwijgend ruimere toegang: een nieuwe verbinding die om een ruimere rol of ruimere bereiken vraagt, maakt een nieuw wachtend upgradeverzoek aan.
Een apparaatverzoek goedkeuren:
- Een verzoek zonder operatorrol vereist geen goedkeuring voor een operatorbereik.
- Een verzoek voor een niet-operatorapparaatrol (bijvoorbeeld
node) vereistoperator.admin, hoeweldevice.pair.approvezelf alleenoperator.pairingvereist. - Een verzoek voor
operator.read,operator.write,operator.approvals,operator.questions,operator.pairingofoperator.talk.secretsvereist dat de aanroeper dat bereik, ofoperator.admin, al heeft. - Een verzoek voor
operator.adminvereistoperator.admin. - Een herstelverzoek zonder expliciete bereiken kan de bereiken van het bestaande
operatortoken overnemen; als dat token een beheerdersbereik heeft, vereist goedkeuring nog steeds
operator.admin.
Sessies met een gedeeld geheim zonder beheerdersrechten en sessies met een vertrouwde proxy kunnen
verzoeken voor operatorapparaten alleen goedkeuren binnen hun eigen opgegeven operatorbereiken; het goedkeuren
van niet-operatorrollen is uitsluitend voor beheerders, zelfs wanneer die sessies anders
operator.pairing kunnen gebruiken.
Voor tokensessies van gekoppelde apparaten is het beheer beperkt tot het eigen apparaat, tenzij de aanroeper
operator.admin heeft: een aanroeper zonder beheerdersrechten ziet alleen de eigen koppelingsvermeldingen en
kan alleen de eigen apparaatvermelding goedkeuren, afwijzen, roteren, intrekken of verwijderen.
Goedkeuringen voor nodekoppelingen
Verouderde node.pair.*-methoden gebruiken een afzonderlijk door de Gateway beheerd opslagmedium voor nodekoppelingen.
WS-nodes gebruiken in plaats daarvan apparaatkoppeling (role: node), maar dezelfde
goedkeuringsterminologie is van toepassing. Zie Gateway-koppeling voor de relatie tussen de twee
opslagmedia.
node.pair.approve leidt aanvullende vereiste bereiken af uit de
opdrachtenlijst van het wachtende verzoek:
| Opgegeven opdrachten | Vereiste bereiken |
|---|---|
| geen | operator.pairing |
| gewone node-opdrachten | operator.pairing + operator.write |
system.run, system.run.prepare, system.which, browser.proxy, fs.listDir of system.execApprovals.get/set |
operator.pairing + operator.admin |
Het goedkeuren van een nodeverklaring schakelt geen opdrachten in waarvoor een afzonderlijke
runtime-toestaanlijst geldt. Het goedkeuren van een node die
computer.act opgeeft, vereist bijvoorbeeld een koppelings- plus schrijfbereik, maar registreert alleen het oppervlak.
Een beheerder of eigenaar moet computer.act nog steeds activeren. Zolang deze functie
geactiveerd blijft, vereist het aanroepen ervan via node.invoke een schrijfbereik, maar niet voor elke
actie een beheerdersbereik.
Nodekoppeling legt identiteit en vertrouwen vast; het vervangt niet het eigen
system.run-beleid voor exec-goedkeuringen van een node.
Authenticatie met gedeeld geheim
Authenticatie met een gedeeld Gateway-token/wachtwoord wordt behandeld als vertrouwde operatortoegang voor
die Gateway. OpenAI-compatibele HTTP-oppervlakken, /tools/invoke en HTTP-eindpunten
voor sessiegeschiedenis herstellen de volledige standaardset operatorbereiken voor
bearer-authenticatie met een gedeeld geheim, zelfs als een aanroeper beperktere opgegeven bereiken verzendt.
Modi die een identiteit bevatten, zoals authenticatie via een vertrouwde proxy of none met privé-ingang,
kunnen expliciet opgegeven bereiken nog steeds respecteren. Gebruik afzonderlijke Gateways voor een echte scheiding
van vertrouwensgrenzen.