繁體中文

身份驗證

身份驗證

ChatGPT Web 端和 Codex 客戶端的登入方式

OpenAI 身份驗證

使用 OpenAI 模型時,Codex 支援兩種個人登入方式:

  • 使用 ChatGPT 登入,以獲得訂閱存取權限
  • 使用 API key 登入,以按用量存取

ChatGPT 桌面應用、Codex CLI 和 IDE 擴充套件均支援使用這兩種登入 方式開展本機工作。Codex cloud 要求使用 ChatGPT 登入。

你的登入方式還決定了適用的管理控制和資料處理政策。

  • 使用 ChatGPT 登入時,Codex 的使用遵循你的 ChatGPT 工作區 權限、基於角色的存取控制 (RBAC),以及 ChatGPT Enterprise 的 資料保留和駐留設定。
  • 使用 API key 時,用量則遵循你的 API 組織的資料保留和 資料共享設定。

對於託管工作區,身份驗證只是存取控制的一層。工作區 成員資格和預配決定誰可以登入,而席位和 工作區角色決定他們可以使用哪些產品介面和功能。 對於 ChatGPT 桌面應用、Codex CLI 或 IDE 擴充套件中的本機工作, 權限設定檔會約束智能體可以在裝置上執行的操作。請參閱 組和預配 以及角色和工作區權限, 以規劃這些控制。

使用 ChatGPT 登入

從 ChatGPT 桌面應用、Codex CLI 或 IDE 擴充套件使用 ChatGPT 登入時,登入流程會開啟瀏覽器視窗。登入後,瀏覽器會將你的憑據傳回給 Codex。

ChatGPT 桌面應用

在已退出登入的介面上,選擇 Continue to sign in,然後完成 瀏覽器流程。

使用 API key 登入

你也可以使用 API key 登入 ChatGPT 桌面應用、Codex CLI 或 IDE 擴充套件。從 OpenAI 控制面板取得 API key。

ChatGPT 桌面應用

在已退出登入的介面上,選擇 Sign in another way,輸入金鑰,然後 選擇 Continue

OpenAI 會通過你的 OpenAI Platform 帳號按標準 API 費率對 API key 用量計費。請參閱 API 定價頁面

API key 身份驗證支援本機 Codex 工作流程,但部分依賴 ChatGPT 工作區存取權限或雲服務的功能會受限或不可用。 請在 功能可用性中比較不同套餐支援的功能。

使用 API key 登入時,Codex 採用標準 API 定價,而不使用 ChatGPT 套餐內含的額度。

請將 API key 身份驗證用於程式設計式 Codex CLI 工作流程,例如 CI/CD 作業。請勿在不受信任或公開的環境中開放 Codex 執行能力。

檢查身份驗證狀態或退出登入

打開個人資料選單,檢視當前帳號或 API key 狀態。選擇 Log out 以清除當前憑據。

在 Codex CLI 中,執行 codex login status 以檢視當前身份驗證方式。 對於儲存的身份驗證資訊,執行 codex logout 以清除當前憑據。 當程序選擇工作負載身份時,Codex 會拒絕 codex logincodex logout,因為身份驗證由程序環境控制。

使用 Codex 存取令牌進行企業自動化

在 ChatGPT Enterprise 工作區中,管理員可以授予存取令牌 權限,使獲准的成員能夠為受信任的 非互動式 Codex 本機工作流程建立 Codex 存取令牌。當自動化 需要 ChatGPT 工作區存取權限、由 ChatGPT 管理的 Codex 權益,或 無需瀏覽器登入即可應用企業工作區控制時,請使用存取令牌。

存取令牌適用於受信任的指令碼、排程程式和私有 CI 執行器。對於一般的 OpenAI API 呼叫,請繼續使用 Platform API key。

有關設定步驟、權限、輪換和撤銷指南,請參閱 存取令牌

如果你的雲平台、CI 系統或叢集已簽發短期 工作負載令牌,請使用工作負載身份聯合, 而不是儲存 OpenAI 憑據。

保護你的 Codex cloud 帳號

Codex cloud 會直接與你的程式碼庫互動,因此它需要比許多其他 ChatGPT 功能更強的安全保護。請啟用多重身份驗證 (MFA)。

如果你使用社交登入供應商(Google、Microsoft、Apple),則無需在 ChatGPT 帳號上啟用 MFA,但可以通過社交登入供應商進行設定。

有關設定說明,請參閱:

如果你通過單點登入 (SSO) 存取 ChatGPT,你所在組織的 SSO 管理員應為所有使用者強制啟用 MFA。

如果你使用電子郵件和密碼登入,則必須先在帳號上設定 MFA,才能存取 Codex cloud。

如果你的帳號支援多種登入方式,且其中一種是電子郵件和密碼,則必須先設定 MFA 才能存取 Codex,即使你使用其他方式登入也是如此。

登入快取

無論使用 ChatGPT 還是 API key 登入 ChatGPT 桌面應用、Codex CLI 或 IDE 擴充套件,登入資訊都會被快取並複用。CLI 和擴充套件共享同一份快取的登入資訊。如果從其中任一端退出登入,則下次啟動 CLI 或擴充套件時需要重新登入。

Codex 會將登入資訊以明文檔案形式快取在本機的 ~/.codex/auth.json 中,或存入作業系統專用的憑據儲存區。

對於使用 ChatGPT 登入的會話,Codex 會在令牌過期前於使用期間自動重新整理令牌,因此活躍會話通常無需再次通過瀏覽器登入即可繼續。

憑據儲存

使用 cli_auth_credentials_store 控制 Codex CLI 儲存快取憑據的位置:

# file | keyring | auto
cli_auth_credentials_store = "keyring"
  • file 將憑據儲存在 CODEX_HOME 下的 auth.json 中(預設為 ~/.codex)。
  • keyring 將憑據儲存在作業系統的憑據儲存區中。
  • auto 會在可用時使用作業系統憑據儲存區,否則回退到 auth.json

有關完整的 config.toml 架構,請參閱設定參考

強制使用登入方式或工作區

在託管環境中,管理員可以限制允許使用者採用的身份驗證方式:

# 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 會將使用者退出登入並終止執行。

這些設定通常通過託管設定應用,而非由每位使用者單獨設定。請參閱託管設定

其他模型供應商

在設定檔中定義自定義模型供應商時,可以選擇以下任一種身份驗證方式:

  • OpenAI 身份驗證:設定 requires_openai_auth = true 以使用 OpenAI 身份驗證。隨後可以使用 ChatGPT 或 API key 登入。通過 LLM 代理伺服器存取 OpenAI 模型時,這種方式非常實用。當 requires_openai_auth = true 時,Codex 會忽略 env_key
  • 環境變數身份驗證:設定 env_key = "<ENV_VARIABLE_NAME>",以使用名稱為 <ENV_VARIABLE_NAME> 的本機環境變數中供應商專用的 API key。
  • 無身份驗證:如果未設定 requires_openai_auth(或將其設定為 false),並且也未設定 env_key,Codex 會假定該供應商不需要身份驗證。這適用於本機模型。