OpenAI 認証
OpenAI モデルを使用する場合、Codex では次の 2 つの方法でサインインできます。
- ChatGPT でサインインしてサブスクリプションを利用
- API キーでサインインして従量課金で利用
ChatGPT デスクトップアプリ、Codex CLI、IDE 拡張機能は、ローカルでの作業で両方のサインイン方法に対応しています。Codex Cloud を利用するには ChatGPT でのサインインが必要です。
適用される管理者向けの制御機能とデータの取り扱いに関するポリシーも、サインイン方法によって決まります。
- ChatGPT でサインインすると、Codex の利用には、ChatGPT ワークスペースの権限、ロールベースのアクセス制御(RBAC)、および ChatGPT Enterprise のデータ保持とデータレジデンシーに関する設定が適用されます。
- API キーを使用する場合は、代わりに API 組織のデータ保持とデータ共有に関する設定が適用されます。
管理対象のワークスペースでは、認証はアクセス制御の一要素にすぎません。 サインインできるユーザーはワークスペースのメンバーシップとプロビジョニングで決まり、 利用できるプロダクトの各画面や機能は、シートとワークスペースのロールによって決まります。 ChatGPT デスクトップアプリ、Codex CLI、IDE 拡張機能でローカル作業を行う場合は、 権限プロファイルによって、エージェントがデバイス上で実行できる操作が制限されます。 これらの制御を計画する際は、「グループとプロビジョニング」 および「ロールとワークスペースの権限」 を参照してください。
ChatGPT でのサインイン
ChatGPT デスクトップアプリ、Codex CLI、または IDE 拡張機能から ChatGPT でサインインすると、ブラウザウィンドウが開きます。サインイン後、ブラウザから認証情報が Codex に返されます。
ChatGPT Web
ChatGPT を開いてサインインし、作業するワークスペースを選択します。 ChatGPT Web の認証済みセッションはブラウザに保持されます。
ChatGPT デスクトップアプリ
サインアウト状態の画面で「 サインインを続ける」を選択し、 ブラウザでの手続きを完了します。
Codex CLI
codex login を実行し、ブラウザでの手続きを完了します。
有効なセッションがない場合は、これがデフォルトの認証手順となります。
IDE 拡張機能
サインアウト状態の画面で「 ChatGPT でサインイン」を選択し、 ブラウザでの手続きを完了します。
API キーでのサインイン
ChatGPT デスクトップアプリ、Codex CLI、または IDE 拡張機能には、API キーでもサインインできます。API キーは OpenAI ダッシュボードから取得してください。
ChatGPT デスクトップアプリ
サインアウト状態の画面で「 別の方法でサインイン」を選択してキーを入力し、 「 続ける」を選択します。
Codex CLI
キーを stdin 経由で codex login にパイプします。
printenv OPENAI_API_KEY | codex login --with-api-key IDE 拡張機能
サインアウト状態の画面で「 API キーを使用」を選択してキーを入力し、 「OK」を選択します。
OpenAI は、API キーの使用料金を標準の API 料金に基づき、OpenAI Platform アカウントを通じて請求します。詳しくは、API 料金ページを参照してください。
API キー認証はローカルの Codex ワークフローに対応していますが、 ChatGPT ワークスペースへのアクセスやクラウドサービスに依存する一部の機能は、制限されるか利用できません。 プランごとの対応状況は、 「機能の提供状況」で比較できます。
Codex CLI および ChatGPT デスクトップアプリの Codex では、 API キー認証でも OpenAI が選定した対応プラグインを利用できます。 一部のプラグインは、接続フローで未対応の OAuth 機能が必要になるため利用できません。 詳しくは、「プラグインの使用」を参照してください。
API キーでサインインすると、Codex には ChatGPT プランに含まれるクレジットではなく、標準の API 料金が適用されます。
CI/CD ジョブなど、プログラムから実行する Codex CLI ワークフローでは API キー認証を使用してください。信頼できない環境や公開環境で Codex を実行できるようにしないでください。
認証状態の確認またはサインアウト
プロファイルメニューを開き、使用中のアカウントとワークスペースを確認します。 そのブラウザの ChatGPT Web セッションを終了するには、「 ログアウト」を選択します。
プロファイルメニューを開くと、使用中のアカウントまたは API キーの状態を確認できます。 現在の認証情報を消去するには、「ログアウト 」を選択します。
使用中の認証方法を確認するには、codex login status を実行します。
保存された認証情報を使用している場合は、codex logout を実行して現在の認証情報を消去します。
プロセスでワークロード ID が選択されている場合、認証はプロセス環境によって制御されるため、Codex は codex login と
codex logout を拒否します。
プロファイルメニューを開くと、使用中のアカウントまたは API キーの状態を確認できます。 現在の認証情報を消去するには、「ログアウト 」を選択します。
エンタープライズ自動化での Codex アクセストークンの使用
ChatGPT Enterprise ワークスペースでは、管理者がアクセストークンの権限を付与できます。権限を付与されたメンバーは、信頼できる非対話型の Codex ローカルワークフローで使用する Codex アクセストークンを作成できます。自動化において、ブラウザでサインインせずに ChatGPT ワークスペースへのアクセス、ChatGPT で管理される Codex の利用資格、またはエンタープライズワークスペースの制御機能が必要な場合は、アクセストークンを使用してください。
アクセストークンは、信頼できるスクリプト、スケジューラー、プライベート CI ランナーでの使用を目的としています。一般的な OpenAI API の呼び出しには、引き続き Platform API キーを使用してください。
セットアップ手順、権限、ローテーション、失効に関するガイダンスについては、 「アクセストークン」を参照してください。
クラウドプラットフォーム、CI システム、またはクラスターが、 すでに有効期間の短いワークロードトークンを発行している場合は、 OpenAI の認証情報を保存する代わりに、ワークロード ID フェデレーション を使用してください。
環境ですでに Codex アクセストークンが提供されている場合は、トークンを CLI にパイプします。
printenv CODEX_ACCESS_TOKEN | codex login --with-access-token Codex Cloud アカウントの保護
Codex Cloud はコードベースを直接操作するため、他の多くの ChatGPT 機能よりも強固なセキュリティが必要です。多要素認証(MFA)を有効にしてください。
ソーシャルログインプロバイダー(Google、Microsoft、Apple)を使用する場合、ChatGPT アカウントで MFA を有効にする必要はありませんが、ソーシャルログインプロバイダー側で設定できます。
セットアップ手順については、以下を参照してください。
シングルサインオン(SSO)で ChatGPT にアクセスする場合は、組織の SSO 管理者がすべてのユーザーに MFA の利用を義務付けることが推奨されます。
メールアドレスとパスワードでログインする場合は、Codex Cloud にアクセスする前に、アカウントで MFA を設定する必要があります。
アカウントが複数のログイン方法に対応しており、その一つがメールアドレスとパスワードによるログインである場合は、別の方法でサインインするときでも、Codex にアクセスする前に MFA を設定する必要があります。
ログイン情報のキャッシュ
ChatGPT または API キーを使用して ChatGPT デスクトップアプリ、Codex CLI、または IDE 拡張機能にサインインすると、ログイン情報がキャッシュされ、再利用されます。CLI と拡張機能は同じログイン情報のキャッシュを共有します。どちらかでログアウトすると、次回 CLI または拡張機能を起動したときに、再度サインインする必要があります。
Codex は、ログイン情報をローカルの平文ファイル ~/.codex/auth.json または OS 固有の認証情報ストアにキャッシュします。
ChatGPT でサインインしたセッションでは、Codex が使用中にトークンを期限切れになる前に自動更新するため、通常、アクティブなセッションはブラウザで再度ログインしなくても継続します。
認証情報の保存
cli_auth_credentials_store を使用して、Codex CLI が認証情報をキャッシュする際の保存先を指定します。
# file | keyring | auto | ephemeral
cli_auth_credentials_store = "keyring"fileは、CODEX_HOME(デフォルトは~/.codex)配下のauth.jsonに認証情報を保存します。keyringは、OS の認証情報ストアに認証情報を保存し、そのストアを利用できない場合は失敗します。autoは、OS の認証情報ストアを利用できる場合はそれを使用し、利用できない場合はauth.jsonにフォールバックします。ephemeralは、現在のプロセスのメモリ内にのみ認証情報を保持します。
config.toml の完全なスキーマについては、
構成リファレンスを参照してください。
管理者は、
ローカル認証要件を通じて cli_auth_credentials_store と chatgpt_base_url の設定を強制できます。
ユーザーは、config.toml や CLI のオーバーライドでこれらの要件を上書きできません。
ファイルに保存する場合、~/.codex/auth.json はパスワードと同様に扱ってください。
アクセストークンが含まれています。コミットしたり、チケットに貼り付けたり、
チャットで共有したりしないでください。
ログイン方法またはワークスペースの強制
管理対象の環境では、管理者がユーザーに許可する認証方法を次のように制限できます。
# Only allow ChatGPT login or only allow API key login.
forced_login_method = "chatgpt" # or "api"
# When using ChatGPT login, restrict users to a specific workspace.
forced_chatgpt_workspace_id = "00000000-0000-0000-0000-000000000000"使用中の認証情報が設定された制限に合致しない場合、Codex はユーザーをログアウトさせて終了します。
これらの設定は、従来の管理対象の設定を通じて指定することもできます。 管理者によるログイン制限の強制については、 ローカルでの認証管理を参照してください。
ログインの診断
codex login を直接実行すると、設定済みのログディレクトリに
専用の codex-login.log ファイルが書き込まれます。ブラウザログインやデバイスコード認証の失敗を
デバッグする場合や、サポートからログイン専用のログを求められた場合に使用してください。
カスタム CA バンドル
ネットワークで企業の TLS プロキシやプライベートルート CA を使用している場合は、
ログイン前に CODEX_CA_CERTIFICATE に PEM バンドルを設定してください。
CODEX_CA_CERTIFICATE が未設定の場合、Codex は代わりに SSL_CERT_FILE を使用します。
同じカスタム CA 設定が、ログイン、通常の HTTPS リクエスト、
セキュアな WebSocket 接続に適用されます。
export CODEX_CA_CERTIFICATE=/path/to/corporate-root-ca.pem
codex loginヘッドレスデバイスでのログイン
Codex CLI で ChatGPT にサインインする際、次のような状況ではブラウザベースのログイン UI が動作しない場合があります。
- リモート環境またはヘッドレス環境で CLI を実行している場合
- サインイン後に Codex が OAuth トークンを CLI に返すために使用する localhost コールバックが、ローカルのネットワーク設定によってブロックされている場合
このような場合は、デバイスコード認証(ベータ版)を推奨します。対話型のログイン UI で「 デバイスコードでサインイン」を選択するか、codex login --device-auth を直接実行してください。お使いの環境でデバイスコード認証が動作しない場合は、いずれかの代替方法を使用してください。
推奨:デバイスコード認証(ベータ版)
- 個人アカウントの場合は ChatGPT のセキュリティ設定で、ワークスペース管理者の場合は ChatGPT のワークスペース権限で、デバイスコードによるログインを有効にしてください。
- Codex を実行しているターミナルで、次のいずれかの方法を選択してください。
- 対話型のログイン UI で「 デバイスコードでサインイン」を選択します。
codex login --device-authを実行します。
- ブラウザでリンクを開いてサインインし、ワンタイムコードを入力します。
お使いの環境でデバイスコードによるログインを利用できない場合は、以下のいずれかの代替方法を使用してください。
代替方法:ローカルでの認証と認証キャッシュのコピー
ブラウザを使えるマシンでログインフローを完了できる場合は、キャッシュされた認証情報をヘッドレスマシンにコピーできます。
- ブラウザベースのログインフローを利用できるマシンで、
codex loginを実行します。 - ログインキャッシュが
~/.codex/auth.jsonに存在することを確認します。 ~/.codex/auth.jsonをヘッドレスマシンの~/.codex/auth.jsonにコピーします。
~/.codex/auth.json はパスワードと同様に扱ってください。アクセストークンが含まれています。コミットしたり、チケットに貼り付けたり、チャットで共有したりしないでください。
OS が認証情報を ~/.codex/auth.json ではなく認証情報ストアに保存している場合、この方法は使えないことがあります。
ファイルへの保存を設定する方法については、認証情報の保存を参照してください。
SSH 経由でリモートマシンにコピーします。
ssh user@remote 'mkdir -p ~/.codex'
scp ~/.codex/auth.json user@remote:~/.codex/auth.jsonまたは、scp を使わないワンライナーを使用します。
ssh user@remote 'mkdir -p ~/.codex && cat > ~/.codex/auth.json' < ~/.codex/auth.jsonDocker コンテナにコピーします。
# Replace MY_CONTAINER with the name or ID of your container.
CONTAINER_HOME=$(docker exec MY_CONTAINER printenv HOME)
docker exec MY_CONTAINER mkdir -p "$CONTAINER_HOME/.codex"
docker cp ~/.codex/auth.json MY_CONTAINER:"$CONTAINER_HOME/.codex/auth.json"信頼できる CI/CD ランナーでこの方法を応用する場合は、
CI/CD での Codex アカウント認証の維持(上級)を参照してください。
このガイドでは、通常の実行中に Codex が auth.json を更新し、
更新済みのファイルを次のジョブのために保持する方法を説明しています。
自動化には、引き続き API キーの使用を標準として推奨します。
代替方法:SSH 経由での localhost コールバックの転送
ローカルマシンとリモートホストの間でポート転送ができる場合は、Codex のローカルコールバックサーバー(デフォルトは localhost:1455)へのトンネルを作成することで、標準のブラウザベースのフローを使用できます。
- ローカルマシンからポート転送を開始します。
ssh -L 1455:localhost:1455 user@remote- その SSH セッションで
codex loginを実行し、表示されたアドレスをローカルマシンで開きます。
その他のモデルプロバイダー
構成ファイルでカスタムモデルプロバイダーを定義する場合は、次の認証方法から選択できます。
- OpenAI 認証:
requires_openai_auth = trueを設定すると、OpenAI 認証を使用できます。これにより、ChatGPT または API キーでサインインできます。LLM プロキシサーバーを経由して OpenAI モデルにアクセスする場合に便利です。requires_openai_auth = trueの場合、Codex はenv_keyを無視します。 - 環境変数による認証:
env_key = "<ENV_VARIABLE_NAME>"を設定すると、<ENV_VARIABLE_NAME>という名前のローカル環境変数から、プロバイダー固有の API キーを使用できます。 - 認証なし:
requires_openai_authを設定しない(またはfalseに設定する)場合で、かつenv_keyも設定しない場合、Codex はプロバイダーが認証を必要としないものとして扱います。ローカルモデルで便利です。