Gateway
Portées des opérateurs
Les périmètres d’opérateur définissent ce qu’un client Gateway peut faire après s’être authentifié. Ils constituent un garde-fou du plan de contrôle au sein d’un domaine d’opérateur Gateway de confiance, pas une isolation multi-locataire hostile. Si vous avez besoin d’une séparation forte entre personnes, équipes ou machines, exécutez des Gateways distincts sous des utilisateurs d’OS ou des hôtes distincts.
Connexe : Sécurité, protocole Gateway, appairage Gateway, CLI des appareils.
Rôles
Les clients WebSocket Gateway se connectent avec un seul rôle :
operator: clients du plan de contrôle tels que CLI, Control UI, automatisation et processus auxiliaires de confiance.node: hôtes de capacités tels que macOS, iOS, Android, ou Nodes sans interface qui exposent des commandes vianode.invoke.
Les méthodes RPC d’opérateur exigent le rôle operator. Les méthodes initiées par un Node
exigent le rôle node.
Niveaux de périmètre
| Périmètre | Signification |
|---|---|
operator.read |
Statut en lecture seule, listes, catalogue, journaux, lectures de session et autres appels non mutateurs du plan de contrôle. |
operator.write |
Actions d’opérateur mutatrices normales, telles que l’envoi de messages, l’invocation d’outils, la mise à jour des paramètres talk/voix et le relais de commandes Node. Satisfait aussi operator.read. |
operator.admin |
Accès administratif au plan de contrôle. Satisfait chaque périmètre operator.*. Requis pour la mutation de configuration, les mises à jour, les hooks natifs, les espaces de noms réservés sensibles et les approbations à haut risque. |
operator.pairing |
Gestion de l’appairage des appareils et Nodes, y compris la liste, l’approbation, le rejet, la suppression, la rotation et la révocation des enregistrements d’appairage ou des jetons d’appareil. |
operator.approvals |
API d’approbation d’exécution et de plugin. |
operator.talk.secrets |
Lecture de la configuration Talk avec les secrets inclus. |
Les futurs périmètres operator.* inconnus exigent une correspondance exacte, sauf si l’appelant possède
operator.admin.
Le périmètre de méthode n’est que le premier garde-fou
Chaque RPC Gateway possède un périmètre de méthode de moindre privilège. Ce périmètre de méthode décide si la requête peut atteindre le gestionnaire. Certains gestionnaires appliquent ensuite des vérifications plus strictes au moment de l’approbation, selon l’élément concret approuvé ou modifié.
Exemples :
device.pair.approveest accessible avecoperator.pairing, mais l’approbation d’un appareil opérateur ne peut créer ni préserver que les périmètres que l’appelant détient déjà.node.pair.approveest accessible avecoperator.pairing, puis dérive des périmètres d’approbation supplémentaires à partir de la liste de commandes Node en attente.chat.sendest normalement une méthode à périmètre d’écriture, mais les commandes persistantes/config setet/config unsetexigentoperator.adminau niveau de la commande.
Cela permet aux opérateurs à périmètre réduit d’effectuer des actions d’appairage à faible risque sans rendre toutes les approbations d’appairage réservées aux administrateurs.
Approbations d’appairage des appareils
Les enregistrements d’appairage des appareils sont la source durable des rôles et périmètres approuvés. Les appareils déjà appairés n’obtiennent pas silencieusement un accès plus large : les reconnexions qui demandent un rôle plus large ou des périmètres plus larges créent une nouvelle demande de mise à niveau en attente.
Lors de l’approbation d’une demande d’appareil :
- Une demande sans rôle opérateur n’a pas besoin d’approbation de périmètre de jeton opérateur.
- Une demande pour
operator.read,operator.write,operator.approvals,operator.pairingouoperator.talk.secretsexige que l’appelant détienne ces périmètres, ouoperator.admin. - Une demande pour
operator.adminexigeoperator.admin. - Une demande de réparation sans périmètres explicites peut hériter des périmètres du jeton opérateur
existant. Si ce jeton existant possède un périmètre administrateur, l’approbation exige tout de même
operator.admin.
Pour les sessions de jeton d’appareil appairé, la gestion est auto-périmétrée sauf si l’appelant
possède aussi operator.admin : les appelants non administrateurs ne voient que leurs propres entrées d’appairage,
peuvent approuver ou rejeter uniquement leur propre demande en attente, et peuvent effectuer une rotation, révoquer ou
supprimer uniquement leur propre entrée d’appareil.
Approbations d’appairage Node
L’ancien node.pair.* utilise un magasin d’appairage Node distinct détenu par Gateway. Les Nodes WS
utilisent l’appairage d’appareil avec role: node, mais le même vocabulaire de niveau d’approbation
s’applique.
node.pair.approve utilise la liste de commandes de la demande en attente pour dériver des périmètres
requis supplémentaires :
- Demande sans commande :
operator.pairing - Commandes Node sans exécution :
operator.pairing+operator.write system.run,system.run.prepareousystem.which:operator.pairing+operator.admin
L’appairage Node établit l’identité et la confiance. Il ne remplace pas la politique
d’approbation d’exécution system.run propre au Node.
Authentification par secret partagé
L’authentification par jeton/mot de passe Gateway partagé est traitée comme un accès opérateur de confiance pour
ce Gateway. Les surfaces HTTP compatibles OpenAI et /tools/invoke restaurent l’ensemble normal complet
des périmètres d’opérateur par défaut pour l’authentification par porteur à secret partagé, même si un
appelant envoie des périmètres déclarés plus étroits.
Les modes porteurs d’identité, tels que l’authentification par proxy de confiance ou none en ingress privé,
peuvent toujours respecter des périmètres déclarés explicites. Utilisez des Gateways distincts pour une véritable
séparation des limites de confiance.