访问令牌
访问令牌
为 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 客户端启动本地运行。请将令牌存储在密钥管理器中,避免写入日志,并根据组织的策略轮换令牌。
- **运行器可信度:**公共 CI、来自复刻仓库的拉取请求或共享计算机可能会将令牌暴露给工作区之外的人员。仅在可信运行器上使用访问令牌。
- **共享身份:**在互不相关的团队间重复使用同一个人的令牌,会使所有权和审计记录变得不够清晰。请为特定的工作流负责人创建令牌。
- **过期凭据:**工作流发生变化后,长期有效的令牌仍可能保持活跃。应优先选择有时限的令牌,并撤销不再使用的令牌。
- **范围或凭据类型错误:**Codex 自动化需要 Codex 访问权限, 工作区智能体触发器需要 Workspace Agents 访问权限,而常规 OpenAI API 调用需要 Platform API keys。如果显示 作用域,请仅授予 工作流所需的权限。
启用访问令牌创建
使用工作区设置中的访问令牌权限,为获准成员开启访问令牌创建功能。
访问令牌权限控制令牌创建。它不会授予对 ChatGPT 桌面应用、Codex CLI 或 IDE 扩展的访问权限,也不会更改 成员的席位类型、内置工作区角色或本地运行时权限 配置文件。通过令牌进行身份验证的 Codex CLI 和 app-server 工作流还需要 该用户具有本地 Codex 权限。
有关这些控制项之间的关系,请参阅 角色与工作区权限。
- 请工作区所有者打开 工作区设置 > 权限和角色。
- 如果显示 访问令牌 部分,请启用 允许用户创建个人访问令牌。如果该部分不可用,请在 Codex and Work Local 或 Codex Local 中启用 允许成员使用 Codex 访问令牌。
- 为工作流负责人启用相应的本地 Codex 权限: 在 Codex and Work Local 中启用 允许成员在本地使用 Codex 和 Work, 或在 Codex Local 中启用 允许成员在本地使用 Codex。当 Work Local 有独立部分时,在本地使用 Work 控制 Work, Codex 令牌并不需要此权限。
仅允许了解令牌存储位置、预期自动化用途和轮换计划的人员或服务负责人创建访问令牌。
禁用本地 Codex 权限会暂停受影响成员所拥有的有效 Codex 令牌, 但不会撤销这些令牌。恢复本地 Codex 访问权限后,这些令牌会重新 激活。如果必须永久终止其访问权限,请撤销令牌。
设置访问令牌过期限制
工作区所有者可以设置成员为新访问令牌选择的最长有效期。 请打开 工作区设置 > 权限和角色。 如果显示 访问令牌 部分,请在其中设置 访问令牌有效期限制。 否则,请在 Codex and Work Local 或 Codex Local 中查找该设置。
此限制适用于新访问令牌。现有令牌会保留其当前有效期。
创建访问令牌
在访问令牌页面中为令牌命名、查看所有可用的产品 范围,并选择适当的有效期。
- 前往访问令牌。
- 选择创建。
- 输入描述性名称,例如
release-ci或nightly-docs-check。
- 如果对话框显示 作用域,请选择 Codex。仅当同一工作流还需要 触发工作区智能体时,才选择 Workspace Agents。如果对话框没有作用域选择器,则会创建仅限 Codex 的令牌。
- 选择有限的有效期,例如 7、30、60 或 90 天。带范围的 个人访问令牌必须设置到期时间。早期仅限 Codex 的对话框 可能提供 永不过期;除非组织批准使用该选项, 并按既定计划轮换令牌,否则请避免选择它。
- 选择 创建。
- 立即复制生成的访问令牌。关闭对话框后, 将无法再次查看该令牌。
- 将令牌存储在密钥管理器或 CI 密钥存储区中。
自定义有效期最短为一天。已撤销或过期的令牌无法用于启动新的身份验证运行。
在 Codex CLI 中使用访问令牌
如果令牌创建对话框列出了所需的 Codex CLI 版本,请先将 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 访问令牌作为
传输令牌。请参阅
身份验证和网络环境变量。
轮换或撤销令牌
轮换访问令牌的方式与轮换其他自动化密钥相同:
- 创建替代令牌。
- 更新 runner、调度器或密钥管理器中的密钥。
- 使用新令牌运行冒烟测试。
- 从访问令牌中撤销旧令牌。
在“访问令牌”页面中,工作区所有者和管理员可以撤销工作区内的任何令牌。拥有访问令牌权限的成员只能撤销自己创建的令牌。
权限模型
工作区访问令牌权限控制令牌创建。根据 工作区布局,本地 Codex 访问权限由 Codex and Work Local 中的 允许成员在本地使用 Codex 和 Work 或 Codex Local 中的 允许成员在本地使用 Codex 控制。如果 Work Local 有独立部分, 在本地使用 Work 控制 Work,但不会授予 Codex 访问权限。成员 需要同时具备本地 Codex 访问权限和访问令牌权限,才能使用通过令牌进行身份验证的 Codex 工作流。成员可以拥有本地 Codex 访问权限,但没有 创建访问令牌的权限。
| 功能 | 工作区所有者和管理员 | 拥有访问令牌权限的成员 | 没有访问令牌权限的成员 |
|---|---|---|---|
| 打开访问令牌 | 是 | 是 | 否 |
| 创建访问令牌 | 是,为自己的 ChatGPT 工作区身份创建 | 是,为自己的 ChatGPT 工作区身份创建 | 否 |
| 列出访问令牌 | 工作区级列表,包括每个令牌的创建者 | 仅限自己创建的令牌 | 否 |
| 从访问令牌页面撤销访问令牌 | 工作区中的任意令牌 | 仅限自己创建的令牌 | 无页面访问权限 |
| 授予或移除访问令牌权限 | 仅限工作区所有者 | 否 | 否 |
| 管理其他本地客户端或 Codex 云端设置 | 是,取决于工作区管理员权限 | 否,除非所有者授予访问权限 | 否 |
简而言之:工作区所有者和管理员在工作区级别管理访问权限。 成员需要访问令牌权限才能创建和管理自己的令牌, 但该权限既不会授予管理员权限,也不会授予对其他成员令牌的访问权限。
故障排除
访问令牌页面返回 404 或 forbidden
请工作区所有者确认,你的角色包含 允许用户创建个人访问令牌 或 允许成员使用 Codex 访问 令牌,具体取决于可用界面。对于通过令牌进行身份验证的 Codex 工作流,还需确认 允许成员在本地使用 Codex 和 Work 或 允许成员在本地使用 Codex 已启用。
codex login --with-access-token 失败
确认你复制的是生成的访问令牌,而不是浏览器会话令牌 或 Platform API key。还需确认令牌处于有效状态、尚未过期, 并且属于拥有所需本地 Codex 权限的用户。