中文

访问令牌

访问令牌

为 Codex 程序化工作流创建和管理访问令牌

Codex 访问令牌是范围限定为 Codex 权限的 ChatGPT 工作区凭据。它们使用 ChatGPT 工作区身份,对可信的非交互式本地工作流(包括 Codex CLI 和基于 app-server 的自动化)进行身份验证。当脚本、计划任务或 CI runner 需要可重复的本地访问时,请使用访问令牌。

从 ChatGPT 管理控制台的访问令牌页面创建的个人访问令牌,会绑定到创建令牌的 ChatGPT 用户及其工作区。这些令牌作为程序化本地工作流的智能体身份。有关从专用非人类工作区身份的详情页面创建的令牌,请参阅服务账号

访问令牌的工作原理

当 Codex CLI 或 app-server 客户端需要在用户不完成浏览器登录的情况下运行时,请使用访问令牌。该令牌代表创建它的 ChatGPT 工作区用户,因此运行可以使用该用户的访问权限,并显示在工作区治理数据中。

客户端会在运行开始时检查令牌,并将该运行关联到相应的工作区身份。请像对待其他自动化密钥一样对待该令牌:将其存储在密钥管理器中、避免写入日志并定期轮换。

访问令牌适用于:

  • 从可信自动化运行的 codex exec 作业。
  • 需要以可重复、非交互方式运行 Codex CLI 的本地脚本。
  • 可信的基于 app-server 的自动化。
  • 使用情况应关联到 ChatGPT 工作区用户而非 API 组织密钥的企业工作流。

需要规避的主要风险:

  • **密钥泄露:**任何持有令牌的人都能以令牌创建者的身份,通过 Codex CLI 或 app-server 客户端启动本地运行。请将令牌存储在密钥管理器中、避免写入日志并定期轮换。
  • **Runner 信任:**公共 CI、来自 fork 的拉取请求或共享计算机可能会将令牌暴露给工作区外部人员。只能在可信 runner 上使用访问令牌。
  • **共享身份:**在互不相关的团队之间复用同一个人的令牌,会让所有权和审计跟踪更难解读。请为特定工作流负责人创建令牌。
  • **过期凭据:**工作流发生变化后,长期令牌可能仍处于有效状态。应优先使用有时限的令牌,并撤销不再使用的令牌。
  • **凭据类型错误:**Codex 访问令牌用于通过 Codex CLI 或 app-server 客户端执行可信本地自动化。请使用 Workspace Agent 访问令牌触发已发布的 ChatGPT 工作区智能体,并使用 Platform API key 进行常规 OpenAI API 调用。

启用访问令牌创建

使用工作区设置中的访问令牌权限,为获准成员开启访问令牌创建功能。

访问令牌权限控制令牌创建。它不会授予对 ChatGPT 桌面应用、Codex CLI 或 IDE 扩展的访问权限,也不会更改 成员的席位类型、内置工作区角色或本地运行时权限 配置文件。请根据需要配置这些控制项。

有关这些控制项之间的关系,请参阅 角色和工作区权限

ChatGPT 工作区 RBAC 设置中的访问令牌访问权限
  1. 前往工作区设置 > 权限和角色
  2. 访问令牌部分,如果所有获准成员都应能够创建访问令牌,请开启允许用户创建访问令牌
  3. 如果工作流还需要适用的本地界面,请确保在 Codex Local 部分开启允许成员使用 Codex Local。此控制项涵盖 ChatGPT 桌面应用、Codex CLI 和 IDE 扩展中的本地使用。

只应允许了解令牌存储位置、使用令牌的自动化以及令牌轮换方式的人员或服务负责人创建访问令牌。

设置访问令牌过期限制

工作区所有者和管理员可以设置成员创建 Codex 访问令牌时可选择的最长期限。前往工作区设置 > 权限和角色,然后在 Codex Local 部分设置访问令牌过期限制

ChatGPT 工作区权限设置中的访问令牌过期限制

该限制适用于新访问令牌。现有令牌将保留当前过期时间。

创建访问令牌

使用“访问令牌”页面命名令牌并选择过期时间。

  1. 前往访问令牌
  2. 选择创建
带有“创建”按钮的访问令牌页面
  1. 输入描述性名称,例如 release-cinightly-docs-check
包含名称和过期时间字段的创建访问令牌对话框
  1. 选择过期时间。应优先选择 7、30、60 或 90 天等有限期限。如果选择永不过期,请按固定计划轮换令牌。
  2. 选择创建
  3. 立即复制生成的访问令牌。关闭对话框后将无法再次查看。
  4. 将令牌存储在密钥管理器或 CI 密钥存储中。

最短自定义有效期为一天。已撤销和已过期的令牌无法用于启动新的已验证运行。

在 Codex CLI 中使用访问令牌

对于临时自动化,请将令牌存储在 CODEX_ACCESS_TOKEN 中,然后照常运行 Codex CLI:

export CODEX_ACCESS_TOKEN="<access-token>"
codex exec --json "review this repository and summarize the top risks"

若要进行持久本地登录,请将令牌通过管道传给 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 或 capability token;不要复用 Codex 访问令牌作为 传输令牌。请参阅 身份验证和网络环境变量

轮换或撤销令牌

轮换访问令牌的方式与轮换其他自动化密钥相同:

  1. 创建替代令牌。
  2. 更新 runner、调度器或密钥管理器中的密钥。
  3. 使用新令牌运行冒烟测试。
  4. 访问令牌中撤销旧令牌。

在“访问令牌”页面中,工作区所有者和管理员可以撤销工作区内的任何令牌。拥有访问令牌权限的成员只能撤销自己创建的令牌。

权限模型

工作区访问令牌权限控制令牌创建。允许 成员使用 Codex Local工作区权限单独控制 ChatGPT 桌面应用、Codex CLI 和 IDE 扩展中的本地使用权限。成员即使 无权创建访问令牌,也可以拥有该本地访问权限。

功能 工作区所有者和管理员 拥有访问令牌权限的成员 没有访问令牌权限的成员
打开访问令牌
创建访问令牌 是,为自己的 ChatGPT 工作区身份创建 是,为自己的 ChatGPT 工作区身份创建
列出访问令牌 工作区列表,包括每个令牌的创建者 仅自己创建的令牌
从“访问令牌”页面撤销访问令牌 工作区内的任何令牌 仅自己创建的令牌 无页面访问权限
授予或移除访问令牌权限
管理其他本地客户端或 Codex cloud 设置 是,取决于工作区管理员权限 否,除非另行授予

简而言之:工作区所有者和管理员在工作区级别管理访问权限。 成员需要访问令牌权限才能创建和管理自己的令牌, 但该权限既不会授予管理员权限,也不会授予对其他成员令牌的访问权限。

故障排除

访问令牌页面返回 404 或 forbidden

请让工作区所有者或管理员确认你的角色包含允许用户创建访问令牌。如果工作流还需要适用的本地界面,请确认已启用允许成员使用 Codex Local,以便在 ChatGPT 桌面应用、Codex CLI 和 IDE 扩展中进行本地使用。

codex login --with-access-token 失败

确认你复制的是生成的访问令牌,而不是浏览器会话令牌或 Platform API key。还要确认令牌尚未过期或被撤销。

相关文档