身份驗證
ChatGPT Web 端和 Codex 客戶端的登入方式
- ChatGPT 桌面應用 在桌面端處理專案、檔案和耗時較長的任務。
- ChatGPT 網頁版 在瀏覽器中使用聊天、專案和 Work。
- Codex CLI 在終端中使用 Codex。
- Codex IDE 擴充套件 在編輯器中使用 Codex。
如需在登入或不登入 ChatGPT 的情況下將本機客戶端連線到組織的閘道器,請參閱連線到閘道器。 直接存取 Bedrock 使用 Amazon Bedrock 身份驗證選項。
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 登入
要在桌面端、移動端和網頁端使用 Work Cloud 的本機電腦存取功能:
使用 ChatGPT 登入符合條件的工作區。
請工作區所有者啟用 Work Cloud,然後在 Work Cloud 下開啟允許存取本機電腦。在 ChatGPT 桌面應用上本機使用 Codex 不是前提條件。
API key 和 Codex 存取令牌無法啟用 Work Cloud 的本機電腦存取功能。有關前提條件,請參閱角色和工作區權限及 Work 管理員常見問題;有關設定方法,請參閱 Work Cloud 和 dots 的本機電腦存取。
從 ChatGPT 桌面應用、Codex CLI 或 IDE 擴充套件使用 ChatGPT 登入時,登入流程會開啟瀏覽器視窗。登入後,瀏覽器會將你的憑據傳回給 Codex。
ChatGPT 網頁版
開啟 ChatGPT,登入並選擇你希望 使用的工作區。ChatGPT 網頁版會在瀏覽器中保留已認證的會話。
ChatGPT 桌面應用
在已退出登入的介面上,選擇 繼續登入(Continue to sign in),然後完成 瀏覽器流程。
Codex CLI
執行 codex login,然後完成瀏覽器中的流程。這是在沒有有效會話時
使用的預設認證方式。
IDE 擴充套件
在未登入介面上,選擇使用 ChatGPT 登入,然後完成 瀏覽器中的流程。
使用 API key 登入
你也可以使用 API key 登入 ChatGPT 桌面應用、Codex CLI 或 IDE 擴充套件。從 OpenAI 控制面板取得 API key。
ChatGPT 桌面應用
在已退出登入的介面上,選擇 使用其他方式登入(Sign in another way),輸入金鑰,然後 選擇 繼續(Continue)。
Codex CLI
通過 stdin 將金鑰以管道方式傳入 codex login:
printenv OPENAI_API_KEY | codex login --with-api-keyIDE 擴充套件
在未登入介面上,選擇 使用 API key,輸入你的金鑰,然後選擇 確定。
OpenAI 會通過你的 OpenAI Platform 帳號按標準 API 費率對 API key 用量計費。請參閱 API 定價頁面。
API key 身份驗證支援本機 Codex 工作流程,但部分依賴 ChatGPT 工作區存取權限或雲服務的功能會受限或不可用。 請在 功能可用性中比較不同套餐支援的功能。
在 Codex CLI 和 ChatGPT 桌面應用中的 Codex 中,使用 API key 進行身份驗證 即可存取受支援的 OpenAI 精選外掛。部分外掛 不可用,因為其連線流程需要尚不支援的 OAuth 功能。參閱使用外掛。
使用 API key 登入時,Codex 採用標準 API 定價,而不使用 ChatGPT 套餐內含的額度。
請將 API key 身份驗證用於程式設計式 Codex CLI 工作流程,例如 CI/CD 作業。請勿在不受信任或公開的環境中開放 Codex 執行能力。
檢查身份驗證狀態或退出登入
打開個人資料選單,確認當前帳戶和工作區。要結束該瀏覽器中的 ChatGPT 網頁會話,請選擇 退出登入。
打開個人資料選單,檢視當前帳戶或 API key 狀態。選擇 退出登入,清除當前憑據。
執行 codex login status,檢視當前身份驗證方式。對於已儲存的
身份驗證憑據,執行 codex logout 可清除當前憑據。當
程序選擇工作負載身份時,Codex 會拒絕 codex login 和
codex logout,因為身份驗證由程序環境控制。
打開個人資料選單,檢視當前帳戶或 API key 狀態。選擇 退出登入,清除當前憑據。
使用 Codex 存取令牌進行企業自動化
在 ChatGPT Enterprise 工作區中,管理員可以授予存取令牌 權限,使獲准的成員能夠為受信任的 非互動式 Codex 本機工作流程建立 Codex 存取令牌。當自動化 需要 ChatGPT 工作區存取權限、由 ChatGPT 管理的 Codex 權益,或 無需瀏覽器登入即可應用企業工作區控制時,請使用存取令牌。
存取令牌適用於受信任的指令碼、排程程式和私有 CI 執行器。對於一般的 OpenAI API 呼叫,請繼續使用 Platform API key。
有關設定步驟、權限、輪換和撤銷指南,請參閱 存取令牌。
如果你的環境已提供 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。
如果你使用電子郵件和密碼登入,則必須先在帳號上設定 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 | ephemeral
cli_auth_credentials_store = "keyring"file將憑據儲存在auth.json中,該檔案位於CODEX_HOME下(預設為~/.codex)。keyring將憑據儲存在作業系統的憑據儲存中,如果該儲存不可用則失敗。auto在作業系統憑據儲存可用時使用它,否則回退到auth.json。ephemeral僅在當前程序的記憶體中保留憑據。
有關完整的
config.toml 架構,請參閱設定參考。
管理員可以強制執行 cli_auth_credentials_store 和 chatgpt_base_url,具體通過
本機身份驗證要求進行設定。
使用者無法通過 config.toml 或 CLI 覆蓋項來覆蓋這些要求。
強制使用登入方式或工作區
在託管環境中,管理員可以限制允許使用者採用的身份驗證方式:
# 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,在某些情況下,基於瀏覽器的登入介面可能無法正常工作:
- 你在遠端或無頭環境中執行 CLI。
- 你的本機網路設定阻止了 localhost 回呼,Codex 使用該回呼在你登入後將 OAuth 令牌傳回給 CLI。
在這些情況下,優先使用裝置碼身份驗證(測試版)。在互動式登入介面中,選擇 使用裝置碼登入,或直接執行 codex login --device-auth。如果裝置碼身份驗證在你的環境中無法正常工作,請使用一種備用方法。
首選:裝置碼身份驗證(測試版)
- 在 ChatGPT 安全設定(個人帳戶)或 ChatGPT 工作區權限(工作區管理員)中啟用裝置碼登入。
- 在執行 Codex 的終端中,選擇以下任一選項:
- 在互動式登入介面中,選擇 使用裝置碼登入。
- 執行
codex login --device-auth。
- 在瀏覽器中開啟連結,登入,然後輸入一次性驗證碼。
如果你的環境無法使用裝置碼登入,請使用下方的一種 備用方法。
備用方法:在本機完成身份驗證並複製身份驗證快取
如果你能在有瀏覽器的機器上完成登入流程,就可以將快取的憑據複製到無頭機器上。
- 在可以使用瀏覽器登入流程的機器上,執行
codex login。 - 確認登入快取位於
~/.codex/auth.json。 - 將
~/.codex/auth.json複製到無頭機器上的~/.codex/auth.json。
請像保護密碼一樣保護 ~/.codex/auth.json:其中包含存取令牌。不要將其提交到版本控制、貼上到工單中或在聊天中分享。
如果你的作業系統將憑據儲存在憑據儲存中,而不是 ~/.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.json複製到 Docker 容器中:
# 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 key。
備用方法:通過 SSH 轉發 localhost 回呼
如果你可以在本機機器與遠端主機之間轉發埠,就可以通過隧道連線 Codex 的本機回呼伺服器(預設為 localhost:1455),使用標準的瀏覽器登入流程。
- 在本機機器上啟動埠轉發:
ssh -L 1455:localhost:1455 user@remote- 在該 SSH 會話中,執行
codex login,然後在本機機器上開啟輸出的地址。
其他模型供應商
在設定檔中定義自定義模型供應商時,可以選擇以下任一種身份驗證方式:
- 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。 - 原生閘道器 OAuth:設定
[model_providers.<id>.gateway_oauth],以通過組織的身份供應商在瀏覽器中登入。無論是否登入 ChatGPT,均可使用此方式。有關閘道器要求和設定,請參閱原生閘道器 OAuth。 - 命令驅動的身份驗證:設定
[model_providers.<id>.auth],以從已安裝的憑據助手取得令牌。 - 無身份驗證:對於不需要憑據的本機模型,不設定
requires_openai_auth,或將其設為false,並省略憑據設定,包括env_key、experimental_bearer_token、auth和gateway_oauth。