Passer au contenu principal

OAuth

OpenClaw prend en charge l’« authentification par abonnement » via OAuth pour les fournisseurs qui la proposent (notamment OpenAI Codex (ChatGPT OAuth)). Pour Anthropic, la distinction pratique est désormais la suivante :
  • Clé API Anthropic : facturation normale de l’API Anthropic
  • Authentification Anthropic Claude CLI / par abonnement dans OpenClaw : le personnel d’Anthropic nous a indiqué que cet usage est de nouveau autorisé
OpenAI Codex OAuth est explicitement pris en charge pour un usage dans des outils externes comme OpenClaw. Cette page explique : Pour Anthropic en production, l’authentification par clé API est la voie recommandée la plus sûre.
  • comment fonctionne l’échange de jetons OAuth (PKCE)
  • où les jetons sont stockés (et pourquoi)
  • comment gérer plusieurs comptes (profils + remplacements par session)
OpenClaw prend également en charge les plugins de fournisseur qui embarquent leurs propres flux OAuth ou par clé API. Exécutez-les avec :
openclaw models auth login --provider <id>

Le puits à jetons (pourquoi il existe)

Les fournisseurs OAuth émettent couramment un nouveau jeton d’actualisation lors des flux de connexion/actualisation. Certains fournisseurs (ou clients OAuth) peuvent invalider les anciens jetons d’actualisation lorsqu’un nouveau est émis pour le même utilisateur/la même application. Symptôme pratique :
  • vous vous connectez via OpenClaw et via Claude Code / Codex CLI → l’un des deux se retrouve ensuite « déconnecté » de manière aléatoire
Pour réduire cela, OpenClaw traite auth-profiles.json comme un puits à jetons :
  • l’environnement d’exécution lit les identifiants depuis un seul endroit
  • nous pouvons conserver plusieurs profils et les router de manière déterministe
  • lorsque des identifiants sont réutilisés depuis une CLI externe comme Codex CLI, OpenClaw les reflète avec leur provenance et relit cette source externe au lieu de faire tourner lui-même le jeton d’actualisation

Stockage (où vivent les jetons)

Les secrets sont stockés par agent :
  • Profils d’authentification (OAuth + clés API + références facultatives au niveau des valeurs) : ~/.openclaw/agents/<agentId>/agent/auth-profiles.json
  • Fichier de compatibilité hérité : ~/.openclaw/agents/<agentId>/agent/auth.json (les entrées statiques api_key sont supprimées lorsqu’elles sont détectées)
Fichier hérité uniquement pour l’import (toujours pris en charge, mais pas le stockage principal) :
  • ~/.openclaw/credentials/oauth.json (importé dans auth-profiles.json lors de la première utilisation)
Tout ce qui précède respecte également $OPENCLAW_STATE_DIR (remplacement du répertoire d’état). Référence complète : /gateway/configuration Pour les références statiques de secrets et le comportement d’activation des instantanés à l’exécution, voir Gestion des secrets.

Compatibilité avec les jetons hérités Anthropic

La documentation publique de Claude Code d’Anthropic indique qu’un usage direct de Claude Code reste dans les limites d’abonnement Claude, et le personnel d’Anthropic nous a indiqué qu’un usage de Claude CLI de type OpenClaw est de nouveau autorisé. OpenClaw traite donc la réutilisation de Claude CLI et l’usage de claude -p comme approuvés pour cette intégration, sauf si Anthropic publie une nouvelle politique.Pour la documentation actuelle d’Anthropic sur les offres directes Claude Code, voir Using Claude Code with your Pro or Max plan et Using Claude Code with your Team or Enterprise plan.Si vous voulez d’autres options de type abonnement dans OpenClaw, voir OpenAI Codex, Qwen Cloud Coding Plan, MiniMax Coding Plan, et Z.AI / GLM Coding Plan.
OpenClaw expose également le setup-token Anthropic comme chemin pris en charge pour l’authentification par jeton, mais il privilégie désormais la réutilisation de Claude CLI et claude -p lorsque c’est possible.

Migration Anthropic Claude CLI

OpenClaw prend de nouveau en charge la réutilisation d’Anthropic Claude CLI. Si vous avez déjà une connexion Claude locale sur l’hôte, l’intégration initiale/la configuration peut la réutiliser directement.

Échange OAuth (comment fonctionne la connexion)

Les flux de connexion interactifs d’OpenClaw sont implémentés dans @mariozechner/pi-ai et raccordés aux assistants/commandes.

Setup-token Anthropic

Forme du flux :
  1. démarrer le setup-token Anthropic ou coller le jeton depuis OpenClaw
  2. OpenClaw stocke l’identifiant Anthropic obtenu dans un profil d’authentification
  3. la sélection du modèle reste sur anthropic/...
  4. les profils d’authentification Anthropic existants restent disponibles pour le retour arrière/le contrôle de l’ordre

OpenAI Codex (ChatGPT OAuth)

OpenAI Codex OAuth est explicitement pris en charge pour un usage en dehors de Codex CLI, y compris dans les flux de travail OpenClaw. Forme du flux (PKCE) :
  1. générer un vérificateur/défi PKCE + un state aléatoire
  2. ouvrir https://auth.openai.com/oauth/authorize?...
  3. essayer de capturer le rappel sur http://127.0.0.1:1455/auth/callback
  4. si le rappel ne peut pas se lier (ou si vous êtes en distant/sans interface), coller l’URL de redirection/le code
  5. effectuer l’échange sur https://auth.openai.com/oauth/token
  6. extraire accountId du jeton d’accès et stocker { access, refresh, expires, accountId }
Le chemin de l’assistant est openclaw onboard → choix d’authentification openai-codex.

Actualisation + expiration

Les profils stockent un horodatage expires. À l’exécution :
  • si expires est dans le futur → utiliser le jeton d’accès stocké
  • s’il a expiré → actualiser (sous verrou de fichier) et écraser les identifiants stockés
  • exception : les identifiants d’une CLI externe réutilisés restent gérés en externe ; OpenClaw relit le stockage d’authentification de la CLI et n’utilise jamais lui-même le jeton d’actualisation copié
Le flux d’actualisation est automatique ; vous n’avez généralement pas besoin de gérer les jetons manuellement.

Plusieurs comptes (profils) + routage

Deux modèles :

1) Recommandé : agents séparés

Si vous voulez que « personnel » et « travail » n’interagissent jamais, utilisez des agents isolés (sessions + identifiants + espace de travail séparés) :
openclaw agents add work
openclaw agents add personal
Ensuite, configurez l’authentification par agent (assistant) et routez les discussions vers le bon agent.

2) Avancé : plusieurs profils dans un même agent

auth-profiles.json prend en charge plusieurs identifiants de profil pour le même fournisseur. Choisissez le profil utilisé :
  • globalement via l’ordre de configuration (auth.order)
  • par session via /model ...@<profileId>
Exemple (remplacement de session) :
  • /model Opus@anthropic:work
Comment voir quels identifiants de profil existent :
  • openclaw channels list --json (affiche auth[])
Documentation associée :

Voir aussi