サブスクリプションアカウント
Codex、Claude、Antigravity、Grok などのサブスクリプション型アカウントは、APIキーではなく OAuth 認可を使います。接続後は APIキー認証情報と同じスケジューラーを共有します。
APIキーとの違い§
ゲートウェイから見れば、サブスクリプションアカウントも APIキーも同じ認証情報プールの一部であり、同じローテーション、リトライ、クールダウン、健全性分離の仕組みを共有します。サブスクリプションアカウント専用の運用手順は不要です。
相違点は3か所のみ:
- 接続方式 — キーを貼り付ける代わりに OAuth 認可フローを完了します。
- 認証情報は期限切れになります — ゲートウェイが自動更新します。更新に失敗すると、アカウントは再認可が必要な状態になります。
- クォータウィンドウがある — サブスクリプションのクォータは周期ごとにリセットされ、管理画面に残りクォータとリセット時刻が表示されます。
アカウントを接続する§
サブスクリプションアカウントもGroupに属します。Group → チャネル認証情報のインポート → 新規Group作成を開き、接続方式で「サブスクリプションアカウント」を選びます。次に Codex、Claude、Antigravity、Grok のいずれかを選び、認可を完了します。
認可パネルは常に展開されています。リモートデプロイでは認可リンクとコールバック URL を手動でコピーする場面が多いため、これはフォールバックではなく主要な手順です。
認可フローはチャネルによって次の2種類に分かれます:
- ローカルコールバック(Codex、Claude、Antigravity)— ブラウザーで認可を完了すると、アップストリームがローカルの固定ポートへリダイレクトし、ゲートウェイが認可コードを受け取ります。
- デバイスコード(Grok)— GPT-Load に表示されたコードをアップストリームの Web サイトへ入力して認可します。コールバックポートは不要です。
コールバックポート§
ローカルコールバックを使う3つのチャネルでは、ポートがアップストリームクライアントによって固定されているため変更できません:
| チャネル | コールバックポート | 説明 |
|---|---|---|
| Codex | 1455 | コールバックアドレス http://localhost:1455/auth/callback |
| Claude | 54545 | アップストリームのクライアントによって固定される |
| Antigravity | 51121 | アップストリームのクライアントによって固定される |
| Grok | 必要ない | デバイスコード認証のため、本機のポートを占有しません |
Docker Compose はデフォルトで3つのポートを公開し、メインサービスと同様に127.0.0.1にだけバインドされます:
ports: - "$${HOST:-127.0.0.1}:$${PORT:-3001}:$${PORT:-3001}" - "$${OAUTH_CALLBACK_BIND_ADDRESS:-...}:1455:1455" # Codex - "$${OAUTH_CALLBACK_BIND_ADDRESS:-...}:54545:54545" # Claude - "$${OAUTH_CALLBACK_BIND_ADDRESS:-...}:51121:51121" # Antigravity
ポートはアップストリームによって固定され変更できないため、1台のホストで同時に実行できるデフォルト構成の Compose インスタンスは1つだけです。複数インスタンスを実行する場合、ローカルコールバック認可を使えるのは1つだけです。ほかはデバイスコード方式を使うか、認可中だけポートを使用しているインスタンスを停止します。
リモートデプロイでの認可方法§
ここが最もつまずきやすい点です。サービスがリモートサーバーで動作している場合、ブラウザー内のlocalhostはサーバーではなく、自分のコンピューターを指します。そのため認可後のリダイレクトは失敗します。
解決方法は2つあり、どちらかを選ぶ:
- 手動でコールバックアドレスを貼り付ける — リダイレクトに失敗したら、ブラウザーのアドレスバーから完全なコールバック URL をコピーし、管理画面のコールバック欄に貼り付けます。ゲートウェイが認可コードを取り出して処理を完了します。この方法は最も汎用的な方法で、ネットワーク設定の変更は不要です。
- SSH ポートフォワーディング — サーバーのコールバックポートをローカルに転送し、
localhostからサーバーへ到達できるようにします:
ssh -L 1455:127.0.0.1:1455 user@your-server # Claude は 54545、Antigravity は 51121 を使用 # 転送は接続を維持している間に認証完了でOK
コールバックポートをインターネットへ公開してはいけません。上記いずれかの方法で認可できるため、OAUTH_CALLBACK_BIND_ADDRESSを0.0.0.0へ変更する必要はありません。
4種類の認可状態§
各サブスクリプションアカウントには認可状態があり、トラブルシューティングの際はまずそれを確認してください:
| 状態 | 意味 | どうすべきか |
|---|---|---|
| 準備完了 | 認証情報は有効で、正常にスケジュールに参加しています | 処理不要 |
| リフレッシュ中 | 認証情報がまもなく期限切れ、ゲートウェイは自動更新中です | 待つだけで通常数秒で完了 |
| 再認可が必要 | 自動更新に失敗しました。多くの場合、アップストリームで認証が取り消されたかパスワードが変更されました。 | 認証プロセスをもう一度実行する |
| 結果不明 | リフレッシュリクエストが明確な結果を取得できなかった場合、ネットワークの問題が考えられます | まず観察し、回復しない場合は再承認 |
クォータ期間、リセット時刻、認可状態を同じ画面で確認できます。
クォータ情報の見方§
管理画面にはサブスクリプションアカウントの残りクォータとリセット時刻が表示されます。ただし、次の点に注意してください:
クォータ情報はスケジューリング判断に使いません。クォータ情報はアップストリーム応答から受動的に取得されるため、遅延があり、すべての課金項目を網羅するとは限りません。実際にアカウント切り替えを行うのは、アップストリームからのレート制限応答です。アカウントがレート制限されると、表示クォータに関係なく直ちにクールダウンさせ、別のアカウントへ切り替えます。
クォータ欄はアカウントを追加すべきか判断するために使い、ゲートウェイが次に選ぶアカウントの予測には使いません。候補Groupと利用可能な認証情報は、監視とトラブルシュートのルートチェックで確認します。
使用の前提条件§
- 利用権限のあるアカウントだけを接続し、各プロバイダーのサブスクリプション規約に従ってください。クォータの共有や転売は通常禁止されています。
- サブスクリプションチャネルはアップストリームの OAuth と互換プロトコルに依存します。アップストリームの変更に合わせて更新が必要になる場合があります。こうした変更はゲートウェイでは制御できません。
- 認証情報はローカルで暗号化されますが、復号キーとデータベースを必ず一緒にバックアップしてください。セキュリティと本番運用を参照してください。