Gateway
Operator-Geltungsbereiche
Operator-Scopes definieren, was ein Gateway-Client nach der Authentifizierung tun darf. Sie sind ein Control-Plane-Schutzmechanismus innerhalb einer vertrauenswürdigen Gateway-Operator-Domäne, keine Isolation gegenüber feindlichen Mandanten in einer Mehrmandantenumgebung. Wenn Sie eine starke Trennung zwischen Personen, Teams oder Maschinen benötigen, betreiben Sie separate Gateways unter separaten OS-Benutzern oder Hosts.
Verwandt: Sicherheit, Gateway-Protokoll, Gateway-Kopplung, Geräte-CLI.
Rollen
Gateway-WebSocket-Clients verbinden sich mit einer Rolle:
operator: Control-Plane-Clients wie CLI, Control UI, Automatisierung und vertrauenswürdige Hilfsprozesse.node: Capability-Hosts wie macOS, iOS, Android oder headless Nodes, die Befehle übernode.invokebereitstellen.
Operator-RPC-Methoden erfordern die Rolle operator. Von Nodes ausgehende Methoden
erfordern die Rolle node.
Scope-Ebenen
| Scope | Bedeutung |
|---|---|
operator.read |
Schreibgeschützter Status, Listen, Katalog, Logs, Sitzungslesevorgänge und andere nicht verändernde Control-Plane-Aufrufe. |
operator.write |
Normale verändernde Operator-Aktionen wie das Senden von Nachrichten, Aufrufen von Tools, Aktualisieren von Talk-/Voice-Einstellungen und Node-Befehlsweiterleitung. Erfüllt auch operator.read. |
operator.admin |
Administrativer Control-Plane-Zugriff. Erfüllt jeden operator.*-Scope. Erforderlich für Konfigurationsänderungen, Updates, native Hooks, sensible reservierte Namespaces und Genehmigungen mit hohem Risiko. |
operator.pairing |
Geräte- und Node-Kopplungsverwaltung, einschließlich Auflisten, Genehmigen, Ablehnen, Entfernen, Rotieren und Widerrufen von Kopplungsdatensätzen oder Gerätetokens. |
operator.approvals |
Exec- und Plugin-Genehmigungs-APIs. |
operator.talk.secrets |
Lesen der Talk-Konfiguration einschließlich Geheimnissen. |
Unbekannte zukünftige operator.*-Scopes erfordern eine exakte Übereinstimmung, sofern der Aufrufer nicht
operator.admin besitzt.
Methoden-Scope ist nur die erste Schranke
Jeder Gateway-RPC hat einen Least-Privilege-Methoden-Scope. Dieser Methoden-Scope entscheidet, ob die Anfrage den Handler erreichen kann. Einige Handler wenden anschließend strengere Prüfungen zum Genehmigungszeitpunkt an, basierend auf dem konkreten Objekt, das genehmigt oder verändert wird.
Beispiele:
device.pair.approveist mitoperator.pairingerreichbar, aber das Genehmigen eines Operator-Geräts kann nur Scopes ausstellen oder beibehalten, die der Aufrufer bereits besitzt.node.pair.approveist mitoperator.pairingerreichbar und leitet anschließend zusätzliche Genehmigungs-Scopes aus der ausstehenden Node-Befehlsliste ab.chat.sendist normalerweise eine Methode mit Schreib-Scope, aber persistente/config setund/config unseterfordernoperator.adminauf Befehlsebene.
Dadurch können Operatoren mit niedrigerem Scope risikoarme Kopplungsaktionen durchführen, ohne alle Kopplungsgenehmigungen ausschließlich Admins vorzubehalten.
Gerätekopplungsgenehmigungen
Gerätekopplungsdatensätze sind die dauerhafte Quelle für genehmigte Rollen und Scopes. Bereits gekoppelte Geräte erhalten nicht stillschweigend umfassenderen Zugriff: Wiederverbindungen, die eine umfassendere Rolle oder umfassendere Scopes anfordern, erzeugen eine neue ausstehende Upgrade-Anfrage.
Beim Genehmigen einer Geräteanfrage:
- Eine Anfrage ohne Operator-Rolle benötigt keine Scope-Genehmigung für Operator-Tokens.
- Eine Anfrage für
operator.read,operator.write,operator.approvals,operator.pairingoderoperator.talk.secretserfordert, dass der Aufrufer diese Scopes oderoperator.adminbesitzt. - Eine Anfrage für
operator.adminerfordertoperator.admin. - Eine Reparaturanfrage ohne explizite Scopes kann die vorhandenen Operator-Token-Scopes
übernehmen. Wenn dieses vorhandene Token Admin-Scope hat, erfordert die Genehmigung weiterhin
operator.admin.
Für Token-Sitzungen gekoppelter Geräte ist die Verwaltung selbstbezogen, sofern der Aufrufer
nicht zusätzlich operator.admin besitzt: Nicht-Admin-Aufrufer sehen nur ihre eigenen Kopplungseinträge,
können nur ihre eigene ausstehende Anfrage genehmigen oder ablehnen und können nur ihren eigenen Geräteeintrag rotieren, widerrufen oder
entfernen.
Node-Kopplungsgenehmigungen
Das ältere node.pair.* verwendet einen separaten, Gateway-eigenen Node-Kopplungsspeicher. WS-Nodes
verwenden Gerätekopplung mit role: node, aber dasselbe Vokabular für Genehmigungsebenen
gilt.
node.pair.approve verwendet die ausstehende Anfragebefehlsliste, um zusätzliche
erforderliche Scopes abzuleiten:
- Anfrage ohne Befehle:
operator.pairing - Nicht-Exec-Node-Befehle:
operator.pairing+operator.write system.run,system.run.prepareodersystem.which:operator.pairing+operator.admin
Node-Kopplung etabliert Identität und Vertrauen. Sie ersetzt nicht die eigene
system.run-Exec-Genehmigungsrichtlinie des Nodes.
Shared-Secret-Authentifizierung
Authentifizierung per gemeinsamem Gateway-Token/Passwort wird als vertrauenswürdiger Operator-Zugriff für
dieses Gateway behandelt. OpenAI-kompatible HTTP-Oberflächen und /tools/invoke stellen den
normalen vollständigen Standard-Scope-Satz für Operatoren bei Shared-Secret-Bearer-Authentifizierung wieder her, selbst wenn ein
Aufrufer engere deklarierte Scopes sendet.
Identitätstragende Modi, wie vertrauenswürdige Proxy-Authentifizierung oder Private-Ingress-none,
können weiterhin explizit deklarierte Scopes berücksichtigen. Verwenden Sie separate Gateways für eine echte
Trennung von Vertrauensgrenzen.