Configuration
Jumelage
L’« appairage » est l’étape explicite d’approbation d’accès d’OpenClaw. Il est utilisé à deux endroits :
- Appairage par DM (qui est autorisé à parler au bot)
- Appairage de Node (quels appareils/nœuds sont autorisés à rejoindre le réseau Gateway)
Contexte de sécurité : Sécurité
1) Appairage par DM (accès aux discussions entrantes)
Lorsqu’un canal est configuré avec la politique de DM pairing, les expéditeurs inconnus reçoivent un code court et leur message n’est pas traité tant que vous ne l’avez pas approuvé.
Les politiques de DM par défaut sont documentées dans : Sécurité
dmPolicy: "open" n’est public que lorsque la liste d’autorisation DM effective inclut "*".
La configuration et la validation exigent ce caractère générique pour les configurations publiques ouvertes. Si l’état existant
contient open avec des entrées allowFrom concrètes, l’exécution n’admet toujours
que ces expéditeurs, et les approbations du magasin d’appairage n’élargissent pas l’accès open.
Codes d’appairage :
- 8 caractères, en majuscules, sans caractères ambigus (
0O1I). - Expirent après 1 heure. Le bot n’envoie le message d’appairage que lorsqu’une nouvelle demande est créée (environ une fois par heure et par expéditeur).
- Les demandes d’appairage par DM en attente sont limitées à 3 par canal par défaut ; les demandes supplémentaires sont ignorées jusqu’à ce que l’une expire ou soit approuvée.
Approuver un expéditeur
openclaw pairing list telegramopenclaw pairing approve telegram <CODE>Si aucun propriétaire de commandes n’est encore configuré, l’approbation d’un code d’appairage par DM initialise aussi
commands.ownerAllowFrom avec l’expéditeur approuvé, par exemple telegram:123456789.
Cela donne aux premières configurations un propriétaire explicite pour les commandes privilégiées et les invites
d’approbation d’exécution. Une fois qu’un propriétaire existe, les approbations d’appairage ultérieures n’accordent que l’accès
par DM ; elles n’ajoutent pas de propriétaires supplémentaires.
Canaux pris en charge : discord, feishu, googlechat, imessage, irc, line, matrix, mattermost, msteams, nextcloud-talk, nostr, openclaw-weixin, signal, slack, synology-chat, telegram, twitch, whatsapp, zalo, zalouser.
Groupes d’expéditeurs réutilisables
Utilisez les accessGroups de niveau supérieur lorsque le même ensemble d’expéditeurs de confiance doit s’appliquer à
plusieurs canaux de messagerie ou à la fois aux listes d’autorisation DM et de groupe.
Les groupes statiques utilisent type: "message.senders" et sont référencés avec
accessGroup:<name> depuis les listes d’autorisation des canaux :
{ accessGroups: { operators: { type: "message.senders", members: { discord: ["discord:123456789012345678"], telegram: ["987654321"], whatsapp: ["+15551234567"], }, }, }, channels: { telegram: { dmPolicy: "allowlist", allowFrom: ["accessGroup:operators"] }, whatsapp: { groupPolicy: "allowlist", groupAllowFrom: ["accessGroup:operators"] }, },}Les groupes d’accès sont documentés en détail ici : Groupes d’accès
Où réside l’état
Stocké sous ~/.openclaw/credentials/ :
- Demandes en attente :
<channel>-pairing.json - Magasin de liste d’autorisation approuvé :
- Compte par défaut :
<channel>-allowFrom.json - Compte non par défaut :
<channel>-<accountId>-allowFrom.json
- Compte par défaut :
Comportement de périmètre des comptes :
- Les comptes non par défaut lisent/écrivent uniquement leur fichier de liste d’autorisation à périmètre dédié.
- Le compte par défaut utilise le fichier de liste d’autorisation non périmétré propre au canal.
Traitez ces fichiers comme sensibles (ils contrôlent l’accès à votre assistant).
2) Appairage d’appareil Node (nœuds iOS/Android/macOS/sans interface)
Les nœuds se connectent au Gateway comme appareils avec role: node. Le Gateway
crée une demande d’appairage d’appareil qui doit être approuvée.
Appairer depuis l’interface de contrôle (recommandé)
Utilisez une session d’interface de contrôle déjà connectée avec l’accès operator.admin :
- Ouvrez l’interface de contrôle et sélectionnez Nœuds.
- Dans Appareils, cliquez sur Appairer un appareil mobile.
- Sur votre téléphone, ouvrez l’application OpenClaw → Paramètres → Gateway.
- Scannez le code QR ou collez le code de configuration, puis connectez-vous.
Les applications iOS et Android officielles d’OpenClaw sont approuvées automatiquement lorsque leurs métadonnées de code de configuration correspondent. Si Appareils affiche une demande en attente (par exemple pour un client non officiel ou des métadonnées qui ne correspondent pas), examinez son rôle et ses portées avant de l’approuver.
Le bouton est désactivé lorsque la session actuelle de l’interface de contrôle ne dispose pas de l’accès administrateur. Dans ce cas, utilisez le flux d’approbation CLI ci-dessous depuis l’hôte Gateway.
Appairer via Telegram
Si vous utilisez le Plugin device-pair, vous pouvez effectuer le premier appairage d’appareil entièrement depuis Telegram :
- Dans Telegram, envoyez un message à votre bot :
/pair - Le bot répond avec deux messages : un message d’instructions et un message séparé contenant le code de configuration (facile à copier/coller dans Telegram).
- Sur votre téléphone, ouvrez l’application iOS OpenClaw → Paramètres → Gateway.
- Scannez le code QR ou collez le code de configuration et connectez-vous.
- L’application mobile officielle se connecte automatiquement. Si
/pair pendingaffiche une demande, examinez son rôle et ses portées avant de l’approuver.
Le code de configuration est une charge utile JSON encodée en base64 qui contient :
url: l’URL WebSocket du Gateway (ws://...ouwss://...)bootstrapToken: un jeton d’initialisation de courte durée, limité à un seul appareil, utilisé pour la poignée de main d’appairage initiale
Ce jeton d’initialisation porte le profil d’initialisation d’appairage intégré :
- le profil de configuration intégré n’autorise que la base fraîche QR/code de configuration :
nodeplus un transfertoperatorborné - le jeton
nodetransféré restescopes: [] - le jeton
operatortransféré est limité àoperator.approvals,operator.read,operator.talk.secretsetoperator.write operator.adminn’est pas accordé par l’initialisation QR/code de configuration ; il nécessite un flux séparé d’appairage ou de jeton opérateur approuvé- la rotation/révocation ultérieure des jetons reste bornée à la fois par le contrat de rôle approuvé de l’appareil et par les portées opérateur de la session appelante
Traitez le code de configuration comme un mot de passe tant qu’il est valide.
Pour Tailscale, l’appairage mobile public ou un autre appairage mobile distant, utilisez Tailscale Serve/Funnel
ou une autre URL Gateway en wss://. Les codes de configuration ws:// en texte clair ne sont acceptés que
pour le local loopback, les adresses LAN privées, les hôtes Bonjour .local et l’hôte de l’émulateur
Android. Les adresses CGNAT Tailnet, les noms .ts.net et les hôtes publics échouent toujours
fermés avant l’émission du QR/code de configuration.
Approuver un appareil Node
openclaw devices listopenclaw devices approve <requestId>openclaw devices reject <requestId>Lorsqu’une approbation explicite est refusée parce que la session d’appareil appairé qui approuve
a été ouverte avec une portée limitée à l’appairage, la CLI réessaie la même demande avec
operator.admin. Cela permet à un appareil appairé disposant déjà de capacités administrateur de récupérer un nouvel
appairage d’interface de contrôle/navigateur sans modifier devices/paired.json à la main. Le
Gateway valide toujours la connexion retentée ; les jetons qui ne peuvent pas s’authentifier
avec operator.admin restent bloqués.
Si le même appareil réessaie avec des détails d’authentification différents (par exemple un
rôle/des portées/une clé publique différents), la demande en attente précédente est remplacée et un nouveau
requestId est créé.
Approbation automatique facultative des nœuds par CIDR de confiance
L’appairage d’appareil reste manuel par défaut. Pour les réseaux de nœuds strictement contrôlés, vous pouvez activer l’approbation automatique des nœuds à la première connexion avec des CIDR explicites ou des IP exactes :
{ gateway: { nodes: { pairing: { autoApproveCidrs: ["192.168.1.0/24"], }, }, },}Cela ne s’applique qu’aux nouvelles demandes d’appairage avec role: node sans
portées demandées. Les clients opérateur, navigateur, interface de contrôle et WebChat nécessitent toujours une approbation
manuelle. Les changements de rôle, portée, métadonnées et clé publique nécessitent toujours une approbation
manuelle.
Stockage de l’état d’appairage des Node
Stocké sous ~/.openclaw/devices/ :
pending.json(courte durée ; les demandes en attente expirent)paired.json(appareils appairés + jetons)
Notes
- L’ancienne API
node.pair.*(CLI :openclaw nodes pending|approve|reject|remove|rename) est un magasin d’appairage distinct possédé par le Gateway. Les nœuds WS nécessitent toujours l’appairage d’appareil. - L’enregistrement d’appairage est la source de vérité durable pour les rôles approuvés. Les jetons d’appareil actifs restent bornés à cet ensemble de rôles approuvés ; une entrée de jeton isolée en dehors des rôles approuvés ne crée pas de nouvel accès.