Access tokens
為 Codex 程式化工作流程建立和管理存取令牌
Codex access tokens 是限定在 Codex 權限範圍內的 ChatGPT 工作區憑據。它們通過 ChatGPT 工作區身份,對受信任的非互動式本機工作流程進行認證,包括 Codex CLI 和基於 app-server 的自動化。當指令碼、定時任務或 CI runner 需要可重複的本機存取時,可以使用它們。
access token 在 ChatGPT 管理控制台的 Access tokens 頁面建立,與建立它的 ChatGPT 使用者及其工作區繫結,並作為程式化本機工作流程的智能體身份。
Access tokens 的工作方式
當 Codex CLI 或 app-server 客戶端需要在使用者不完成瀏覽器登入的情況下執行時,可以使用 access token。token 代表建立它的 ChatGPT 工作區使用者,因此執行會使用該使用者的存取權限,並出現在工作區治理資料中。
客戶端會在執行開始時檢查 token,並將這次執行繫結到對應工作區身份。應像管理其他自動化 secret 一樣管理 token:儲存到 secret manager,不寫入日誌,並定期輪換。
Access tokens 適用於:
- 由受信任自動化執行的
codex exec任務。 - 需要可重複、非互動式執行 Codex CLI 的本機指令碼。
- 受信任的 app-server 自動化。
- 用量應歸屬到 ChatGPT 工作區使用者、而非 API organization key 的企業工作流程。
需要避免的主要風險:
- Secret 洩露: 任何獲得 token 的人都可以通過 Codex CLI 或 app-server 客戶端,以 token 建立者身份開始本機執行。請儲存到 secret manager,不寫入日誌,並定期輪換。
- Runner 信任: 公開 CI、來自 fork 的 PR 或共享機器可能把 token 暴露給工作區外的人。只在受信任 runner 上使用。
- 共享身份: 多個無關團隊複用同一個人的 token,會讓所有權和審計軌跡難以解釋。應為具體工作流程負責人建立 token。
- 過期憑據: 工作流程已經改變後,長效 token 仍可能保持活躍。優先使用有時限的 token,並撤銷不再使用的 token。
- 憑據類型錯誤: Codex access tokens 用於通過 Codex CLI 或 app-server 客戶端執行受信任本機自動化。觸發已釋出的 ChatGPT 工作區智能體應使用 Workspace Agent access tokens;普通 OpenAI API 呼叫則使用 Platform API key。
啟用 access token 建立
使用工作區設定中的 access token 權限,為允許的成員開啟 token 建立能力。
該權限只控制 token 建立,不會授予 ChatGPT 桌面 App、Codex CLI 或 IDE 擴充套件存取,也不會改變成員的席位類型、內建工作區角色或本機執行時權限設定檔。請按需分別設定這些控制。
這些控制之間的關係參見角色和工作區權限。
- 前往 Workspace Settings > Permissions & roles。
- 如果所有獲准成員都應能建立 access token,請在 Access tokens 區域開啟 Allow users to create access tokens(允許使用者建立 access tokens)。
- 如果工作流程還需要受支援的本機產品形態,請確認 Codex Local 區域中的 Allow members to use Codex Local(允許成員使用 Codex Local) 已開啟。該控制項覆蓋 ChatGPT 桌面 App、Codex CLI 和 IDE 擴充套件中的本機使用。
只應向理解 token 儲存位置、使用它的自動化及輪換方式的人員或服務負責人開放 token 建立。
設定 access token 過期上限
工作區 owner 和 admin 可以設定成員建立 Codex access token 時可選擇的最長有效期。前往 Workspace Settings > Permissions & roles,再在 Codex Local 區域設定 Access token expiration limit(Access token 過期上限)。
該上限只應用於新 token;現有 token 保留當前過期時間。
建立 access token
在 Access tokens 頁面為 token 命名並選擇過期時間。
- 前往 Access tokens。
- 選擇 Create(建立)。
- 輸入能夠描述用途的名稱,例如
release-ci或nightly-docs-check。
- 選擇過期時間。優先選擇 7、30、60 或 90 天等有限期限。如果選擇 No expiration(永不過期),請按固定計劃輪換。
- 選擇 Create。
- 立即複製生成的 access token;關閉彈窗後無法再次檢視。
- 把 token 儲存到 secret manager 或 CI secret store。
自定義過期時間最短為一天。已撤銷或已過期的 token 無法開始新的認證執行。
在 Codex CLI 中使用 access token
對於臨時自動化,把 token 儲存到 CODEX_ACCESS_TOKEN,再正常執行 Codex CLI:
export CODEX_ACCESS_TOKEN="<access-token>"
codex exec --json "review this repository and summarize the top risks"要進行持久本機登入,把 token 通過 pipe 傳給 codex login --with-access-token:
printf '%s' "$CODEX_ACCESS_TOKEN" | codex login --with-access-token
codex exec "summarize the last release diff"codex login --with-access-token 會把智能體身份憑據儲存到 Codex CLI 認證儲存。如果不希望在機器上持久儲存憑據,請改用 CODEX_ACCESS_TOKEN 環境變數。
codex app-server 可以使用 CODEX_ACCESS_TOKEN 中的同一憑據,或使用通過 codex login --with-access-token 建立的登入來認證 OpenAI 請求。該憑據與客戶端到 app-server 的傳輸認證相互獨立。遠端 WebSocket 連線應按 App server說明另行設定 bearer token 或 capability token;不要把 Codex access token 複用為傳輸 token。另請參閱認證與網路環境變數。
輪換或撤銷 token
像輪換其他自動化 secrets 一樣輪換 access tokens:
- 建立替代 token。
- 更新 runner、scheduler 或 secret manager 中的 secret。
- 使用新 token 執行 smoke test。
- 從 Access tokens 撤銷舊 token。
工作區 owner 和 admin 可以在 Access tokens 頁面撤銷工作區中的任何 token;擁有 access token 權限的成員只能撤銷自己建立的 token。
權限模型
工作區 access token 權限控制 token 建立;Allow members to use Codex Local 工作區權限則單獨控制 ChatGPT 桌面 App、Codex CLI 和 IDE 擴充套件中的本機存取。成員可以擁有本機存取,但沒有建立 access token 的權限。
| 能力 | 工作區 owner 和 admin | 擁有 access token 權限的成員 | 沒有 access token 權限的成員 |
|---|---|---|---|
| 開啟 Access tokens | 是 | 是 | 否 |
| 建立 access tokens | 是,僅用於自己的 ChatGPT 工作區身份 | 是,僅用於自己的 ChatGPT 工作區身份 | 否 |
| 列出 access tokens | 工作區列表,包括每個 token 的建立者 | 僅自己建立的 token | 否 |
| 從 Access tokens 頁面撤銷 token | 工作區中的任何 token | 僅自己建立的 token | 無頁面存取權限 |
| 授予或移除 access token 權限 | 是 | 否 | 否 |
| 管理其他本機客戶端或 Codex 雲端設定 | 是,取決於工作區 admin 權限 | 否,除非另行授予 | 否 |
簡而言之:工作區 owner 和 admin 在工作區層面管理存取。成員需要 access token 權限才能建立和管理自己的 token,但該權限既不會授予管理員能力,也不會授予存取其他成員 token 的能力。
故障排查
Access tokens 頁面返回 404 或 forbidden
請讓工作區 owner 或 admin 確認你的角色包含 Allow users to create access tokens。如果工作流程還需要受支援的本機產品形態,請確認已開啟 Allow members to use Codex Local,以便在 ChatGPT 桌面 App、Codex CLI 和 IDE 擴充套件中本機使用。
codex login --with-access-token 失敗
確認複製的是生成的 access token,而不是瀏覽器 session token 或 Platform API key;同時確認 token 尚未過期或撤銷。