繁體中文

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 擴充套件存取,也不會改變成員的席位類型、內建工作區角色或本機執行時權限設定檔。請按需分別設定這些控制。

這些控制之間的關係參見角色和工作區權限

ChatGPT 工作區 RBAC 設定中的 Access token access 權限
  1. 前往 Workspace Settings > Permissions & roles
  2. 如果所有獲准成員都應能建立 access token,請在 Access tokens 區域開啟 Allow users to create access tokens(允許使用者建立 access tokens)
  3. 如果工作流程還需要受支援的本機產品形態,請確認 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 過期上限)

ChatGPT 工作區權限設定中的 Access token expiration limit

該上限只應用於新 token;現有 token 保留當前過期時間。

建立 access token

在 Access tokens 頁面為 token 命名並選擇過期時間。

  1. 前往 Access tokens
  2. 選擇 Create(建立)
Access tokens 頁面上的 Create 按鈕
  1. 輸入能夠描述用途的名稱,例如 release-cinightly-docs-check
建立 access token 的彈窗,包含名稱和過期時間欄位
  1. 選擇過期時間。優先選擇 7、30、60 或 90 天等有限期限。如果選擇 No expiration(永不過期),請按固定計劃輪換。
  2. 選擇 Create
  3. 立即複製生成的 access token;關閉彈窗後無法再次檢視。
  4. 把 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:

  1. 建立替代 token。
  2. 更新 runner、scheduler 或 secret manager 中的 secret。
  3. 使用新 token 執行 smoke test。
  4. 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 尚未過期或撤銷。

相關文件