OAuth
OpenClaw は、それを提供するプロバイダーに対して、OAuth による「サブスクリプション認証」をサポートしています (特に OpenAI Codex (ChatGPT OAuth))。Anthropic のサブスクリプションについては、新規 セットアップでは Gateway ホスト上のローカルな Claude CLI ログインパスを使うべきですが、 Anthropic は Claude Code の直接利用と OpenClaw による再利用パスを区別しています。 Anthropic の公開されている Claude Code ドキュメントでは、Claude Code の直接利用は Claude サブスクリプションの制限内に収まるとされています。一方で、Anthropic は 2026 年 4 月 4 日 午後 12:00 PT / 午後 8:00 BST に OpenClaw ユーザーへ、OpenClaw は サードパーティ製ハーネスとして扱われ、そのトラフィックには Extra Usage が必要になったと通知しました。 OpenAI Codex OAuth は、OpenClaw のような外部ツールでの利用が明示的にサポートされています。 このページでは、以下を説明します。 Anthropic を本番で使う場合は、API キー認証のほうがより安全で推奨されるパスです。- OAuth のトークン交換の仕組み(PKCE)
- トークンがどこに保存されるか(およびその理由)
- 複数アカウントの扱い方(プロファイル + セッションごとの上書き)
トークンシンク(これが存在する理由)
OAuth プロバイダーは、ログイン / リフレッシュフロー中に新しいリフレッシュトークンを発行することがよくあります。一部のプロバイダー(または OAuth クライアント)は、同じユーザー / アプリに対して新しいものが発行されると、古いリフレッシュトークンを無効化することがあります。 実際の症状:- OpenClaw と Claude Code / Codex CLI の両方でログインすると、どちらか一方が後でランダムに「ログアウト」される
auth-profiles.json をトークンシンクとして扱います。
- ランタイムは1 か所から資格情報を読み取る
- 複数のプロファイルを保持し、決定的にルーティングできる
- Codex CLI のような外部 CLI から資格情報を再利用する場合、OpenClaw は それらを出所情報付きでミラーし、自分でリフレッシュトークンをローテーションする代わりに、その外部ソースを再読込する
保存場所(トークンの保存先)
シークレットはエージェントごとに保存されます。- 認証プロファイル(OAuth + API キー + 任意の値レベル参照):
~/.openclaw/agents/<agentId>/agent/auth-profiles.json - レガシー互換ファイル:
~/.openclaw/agents/<agentId>/agent/auth.json(静的なapi_keyエントリーは見つかった時点で除去されます)
~/.openclaw/credentials/oauth.json(初回使用時にauth-profiles.jsonにインポートされます)
$OPENCLAW_STATE_DIR(state dir の上書き)にも対応しています。完全なリファレンス: /gateway/configuration
静的なシークレット参照とランタイムスナップショット有効化動作については、Secrets Management を参照してください。
Anthropic レガシートークン互換性
OpenClaw は現在、Anthropic の setup-token をレガシー / 手動パスとして再度公開しています。 Anthropic の OpenClaw 固有の請求通知はこのパスにも適用されるため、 OpenClaw 駆動の Claude ログイントラフィックには Anthropic が Extra Usage を要求するという前提で 使用してください。Anthropic Claude CLI への移行
Claude CLI がすでに Gateway ホストにインストールされ、サインイン済みである場合は、 Anthropic モデル選択をローカル CLI バックエンドへ切り替えることができます。これは、 同じホスト上でローカルな Claude CLI ログインを再利用したい場合の、OpenClaw でサポートされたパスです。 前提条件:claudeバイナリが Gateway ホストにインストールされている- Claude CLI が
claude auth loginですでにそこで認証済みである
anthropic/... から claude-cli/... に書き換えられ、
一致する Anthropic Claude フォールバックも書き換えられ、さらに
agents.defaults.models 配下に一致する claude-cli/... の許可リストエントリーが追加されます。
確認:
OAuth 交換(ログインの仕組み)
OpenClaw の対話型ログインフローは@mariozechner/pi-ai に実装されており、ウィザード / コマンドに接続されています。
Anthropic Claude CLI
フロー形状: Claude CLI パス:- Gateway ホスト上で
claude auth loginを使ってサインインする openclaw models auth login --provider anthropic --method cli --set-defaultを実行する- 新しい認証プロファイルは保存せず、モデル選択を
claude-cli/...に切り替える - 既存の Anthropic 認証プロファイルはロールバック用に保持する
claude 自体の
Claude サブスクリプション直接ログインフローが説明されています。OpenClaw はそのローカルログインを再利用できますが、
Anthropic は別途、OpenClaw によって制御されるこのパスを、請求上はサードパーティ製
ハーネス利用として分類しています。
対話型アシスタントパス:
openclaw onboard/openclaw configure→ 認証選択anthropic-cli
OpenAI Codex (ChatGPT OAuth)
OpenAI Codex OAuth は、Codex CLI の外部を含む利用、すなわち OpenClaw ワークフローでの利用が明示的にサポートされています。 フロー形状(PKCE):- PKCE verifier/challenge とランダムな
stateを生成する https://auth.openai.com/oauth/authorize?...を開くhttp://127.0.0.1:1455/auth/callbackでコールバックを捕捉しようとする- コールバックにバインドできない場合(またはリモート / ヘッドレスの場合)、リダイレクト URL / コードを貼り付ける
https://auth.openai.com/oauth/tokenで交換する- アクセストークンから
accountIdを抽出し、{ access, refresh, expires, accountId }を保存する
openclaw onboard → 認証選択 openai-codex です。
リフレッシュ + 有効期限
プロファイルはexpires タイムスタンプを保存します。
ランタイムでは:
expiresが未来なら → 保存済みアクセストークンを使う- 期限切れなら → リフレッシュし(ファイルロック下で)、保存済み資格情報を上書きする
- 例外: 再利用される外部 CLI 資格情報は外部管理のままです。OpenClaw は CLI の認証ストアを再読込し、コピーしたリフレッシュトークンを自分で消費することはありません
複数アカウント(プロファイル) + ルーティング
2 つのパターンがあります。1) 推奨: 分離されたエージェント
「個人用」と「仕事用」を絶対に相互作用させたくない場合は、分離されたエージェント (セッション + 資格情報 + ワークスペースが別々)を使ってください。2) 上級: 1 つのエージェント内で複数プロファイル
auth-profiles.json は、同じプロバイダーに対する複数のプロファイル ID をサポートしています。
どのプロファイルを使うかの指定方法:
- グローバルには設定順序(
auth.order) - セッションごとには
/model ...@<profileId>
/model Opus@anthropic:work
openclaw channels list --json(auth[]を表示します)
- /concepts/model-failover(ローテーション + クールダウンルール)
- /tools/slash-commands(コマンドサーフェス)
関連
- Authentication — モデルプロバイダー認証の概要
- Secrets — 資格情報の保存と SecretRef
- Configuration Reference — 認証設定キー