中文

认证

身份验证

ChatGPT Web 端和 Codex 客户端的登录方式

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 登录

从 ChatGPT 桌面应用、Codex CLI 或 IDE 扩展使用 ChatGPT 登录时,登录流程会打开浏览器窗口。登录后,浏览器会将你的凭据返回给 Codex。

ChatGPT 桌面应用

在已退出登录的界面上,选择 Continue to sign in,然后完成 浏览器流程。

使用 API key 登录

你也可以使用 API key 登录 ChatGPT 桌面应用、Codex CLI 或 IDE 扩展。从 OpenAI 控制面板获取 API key。

ChatGPT 桌面应用

在已退出登录的界面上,选择 Sign in another way,输入密钥,然后 选择 Continue

OpenAI 会通过你的 OpenAI Platform 账号按标准 API 费率对 API key 用量计费。请参阅 API 定价页面

API key 身份验证支持本地 Codex 工作流,但部分依赖 ChatGPT 工作区访问权限或云服务的功能会受限或不可用。 请在 功能可用性中比较不同套餐支持的功能。

使用 API key 登录时,Codex 采用标准 API 定价,而不使用 ChatGPT 套餐内含的额度。

请将 API key 身份验证用于编程式 Codex CLI 工作流,例如 CI/CD 作业。请勿在不受信任或公开的环境中开放 Codex 执行能力。

检查身份验证状态或退出登录

打开个人资料菜单,查看当前账号或 API key 状态。选择 Log out 以清除当前凭据。

在 Codex CLI 中,运行 codex login status 以查看当前身份验证方式。 对于存储的身份验证信息,运行 codex logout 以清除当前凭据。 当进程选择工作负载身份时,Codex 会拒绝 codex logincodex logout,因为身份验证由进程环境控制。

使用 Codex 访问令牌进行企业自动化

在 ChatGPT Enterprise 工作区中,管理员可以授予访问令牌 权限,使获准的成员能够为受信任的 非交互式 Codex 本地工作流创建 Codex 访问令牌。当自动化 需要 ChatGPT 工作区访问权限、由 ChatGPT 管理的 Codex 权益,或 无需浏览器登录即可应用企业工作区控制时,请使用访问令牌。

访问令牌适用于受信任的脚本、调度程序和私有 CI 运行器。对于一般的 OpenAI API 调用,请继续使用 Platform API key。

有关设置步骤、权限、轮换和撤销指南,请参阅 访问令牌

如果你的云平台、CI 系统或集群已签发短期 工作负载令牌,请使用工作负载身份联合, 而不是存储 OpenAI 凭据。

保护你的 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
cli_auth_credentials_store = "keyring"
  • file 将凭据存储在 CODEX_HOME 下的 auth.json 中(默认为 ~/.codex)。
  • keyring 将凭据存储在操作系统的凭据存储区中。
  • auto 会在可用时使用操作系统凭据存储区,否则回退到 auth.json

有关完整的 config.toml 架构,请参阅配置参考

强制使用登录方式或工作区

在托管环境中,管理员可以限制允许用户采用的身份验证方式:

# 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 会将用户退出登录并终止运行。

这些设置通常通过托管配置应用,而非由每位用户单独设置。请参阅托管配置

其他模型提供商

在配置文件中定义自定义模型提供商时,可以选择以下任一种身份验证方式:

  • 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。
  • 无身份验证:如果未设置 requires_openai_auth(或将其设置为 false),并且也未设置 env_key,Codex 会假定该提供商不需要身份验证。这适用于本地模型。