コンテンツにスキップ

認証

OpenAI 認証

OpenAI モデルを使用する場合、Codex では次の 2 つの方法でサインインできます。

  • ChatGPT でサインインしてサブスクリプションを利用する
  • API キーでサインインして従量課金で利用する

ChatGPT デスクトップアプリ、Codex CLI、IDE 拡張機能は、ローカル作業で両方のサインイン方法をサポートしています。Codex クラウドでは、ChatGPT でのサインインが必要です。

サインイン方法によって、適用される管理者コントロールとデータ処理ポリシーも決まります。

  • ChatGPT でサインインすると、Codex の使用には ChatGPT ワークスペースの権限、ロールベースアクセス制御(RBAC)、ChatGPT Enterprise の保持およびデータレジデンシー設定が適用されます。
  • API キーを使用すると、代わりに API 組織の保持およびデータ共有設定が適用されます。

管理対象ワークスペースでは、認証はアクセス制御の 1 つの層にすぎません。ワークスペースのメンバーシップとプロビジョニングによってサインインできるユーザーが決まり、シートとワークスペースのロールによって利用できるプロダクトサーフェスと機能が決まります。ChatGPT デスクトップアプリ、Codex CLI、または IDE 拡張機能でローカル作業を行う場合は、権限プロファイルによってデバイス上でエージェントが実行できる操作が制限されます。これらの制御を計画するには、グループとプロビジョニングおよびロールとワークスペースの権限を参照してください。

ChatGPT でサインインする

ChatGPT デスクトップアプリ、Codex CLI、または IDE 拡張機能から ChatGPT でサインインすると、サインインフローによってブラウザーウィンドウが開きます。サインインすると、ブラウザーから Codex に認証情報が返されます。

ChatGPT デスクトップアプリ

サインアウト画面で サインインを続行 を選択し、ブラウザーフローを完了します。

API キーでサインインする

ChatGPT デスクトップアプリ、Codex CLI、または IDE 拡張機能には、API キーでサインインすることもできます。OpenAI ダッシュボードから API キーを取得してください。

ChatGPT デスクトップアプリ

サインアウト画面で 別の方法でサインイン を選択し、キーを入力してから 続行 を選択します。

OpenAI は、標準 API 料金に基づき、OpenAI Platform アカウントを通じて API キーの使用量を請求します。API 料金ページを参照してください。

API キー認証はローカルの Codex ワークフローをサポートしますが、ChatGPT ワークスペースへのアクセスやクラウドサービスに依存する一部の機能は制限されるか、利用できません。プランごとのサポート状況については、機能の利用可能性を比較してください。

API キーでサインインすると、含まれている ChatGPT プランのクレジットではなく、標準 API 料金が Codex に適用されます。

CI/CD ジョブなど、プログラムによる Codex CLI ワークフローには API キー認証を使用してください。信頼できない環境や公開環境で Codex の実行を公開しないでください。

認証状態の確認またはサインアウト

プロフィールメニューを開くと、アクティブなアカウントまたは API キーの状態を確認できます。ログアウト を選択すると、現在の認証情報が消去されます。

エンタープライズオートメーションで Codex アクセストークンを使用する

ChatGPT Enterprise ワークスペースでは、管理者がアクセストークン権限を付与することで、許可されたメンバーが信頼できる非対話型の Codex ローカルワークフロー用に Codex アクセストークンを作成できるようになります。自動化で ChatGPT ワークスペースへのアクセス、ChatGPT 管理の Codex 利用資格、またはエンタープライズワークスペースのコントロールが必要で、ブラウザーによるサインインを行わない場合は、アクセストークンを使用してください。

アクセストークンは、信頼できるスクリプト、スケジューラー、非公開の CI ランナーを対象としています。一般的な OpenAI API 呼び出しには、引き続き Platform API キーを使用してください。

設定手順、権限、ローテーション、失効については、アクセストークンを参照してください。

Codex クラウドアカウントを保護する

Codex クラウドはコードベースを直接操作するため、他の多くの ChatGPT 機能よりも強固なセキュリティが必要です。多要素認証(MFA)を有効にしてください。

ソーシャルログインプロバイダー(Google、Microsoft、Apple)を使用している場合、ChatGPT アカウントで MFA を有効にする必要はありませんが、ソーシャルログインプロバイダーで設定できます。

設定手順については、以下を参照してください。

シングルサインオン(SSO)を通じて ChatGPT にアクセスする場合、組織の SSO 管理者はすべてのユーザーに MFA を適用する必要があります。

メールアドレスとパスワードを使用してログインする場合は、Codex クラウドにアクセスする前にアカウントで MFA を設定する必要があります。

アカウントが複数のログイン方法をサポートしており、そのうちの 1 つがメールアドレスとパスワードである場合は、別の方法でサインインする場合でも、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
cli_auth_credentials_store = "keyring"
  • file は、CODEX_HOME 下の auth.json(デフォルトは ~/.codex)に認証情報を保存します。
  • keyring は、オペレーティングシステムの認証情報ストアに認証情報を保存します。
  • auto は、利用可能な場合は OS の認証情報ストアを使用し、それ以外の場合は auth.json にフォールバックします。

完全な config.toml スキーマについては、設定リファレンスを参照してください。

ファイルベースの保存を使用する場合は、~/.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 はユーザーをログアウトさせて終了します。

これらの設定は、ユーザーごとの設定ではなく、管理対象の構成を通じて適用されることが一般的です。管理対象の構成を参照してください。

代替モデルプロバイダー

設定ファイルでカスタムモデルプロバイダーを定義すると、次の認証方法から 1 つを選択できます。

  • OpenAI 認証: OpenAI 認証を使用するには requires_openai_auth = true を設定します。その後、ChatGPT または API キーでサインインできます。これは、LLM プロキシサーバーを通じて OpenAI モデルにアクセスする場合に便利です。requires_openai_auth = true の場合、Codex は env_key を無視します。
  • 環境変数認証: ローカル環境の <ENV_VARIABLE_NAME> という名前の環境変数からプロバイダー固有の API キーを使用するには、env_key = "<ENV_VARIABLE_NAME>" を設定します。
  • 認証なし: requires_openai_auth を設定しない(または false に設定する)かつ env_key を設定しない場合、Codex はそのプロバイダーが認証を必要としないものと見なします。これはローカルモデルに便利です。