SpyBara
Go Premium

authentication.md 2026-09-21 22:59 UTC to 2026-09-22 23:59 UTC

This page contains 2 additions and 2 deletions.

2026
Sat 12 03:02 Mon 14 22:58 Fri 18 23:58 Tue 22 23:59

身份验证

登录 Claude Code 并为个人、团队和组织配置身份验证。

Claude Code 支持多种身份验证方法,具体取决于您的设置。个人用户可以使用 claude.ai 账户登录,而团队可以使用 Claude for Teams 或 Enterprise、Claude Console 或云提供商(如 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry)。

登录 Claude Code

安装 Claude Code 后,在终端中运行 claude。首次启动时,Claude Code 会打开浏览器窗口供您登录。如果您已设置 ANTHROPIC_API_KEY 环境变量,Claude Code 会跳过登录提示,改为要求您批准该密钥。

如果浏览器没有自动打开,请按 c 将登录 URL 复制到剪贴板,然后将其粘贴到浏览器中。

如果您的浏览器在您登录后显示登录代码而不是重定向回来,请将其粘贴到终端的 Paste code here if prompted 提示符处。这种情况在浏览器无法访问 Claude Code 的本地回调服务器时会发生,这在 WSL2、SSH 会话和容器中很常见。

登录完成后,终端会显示 Login successful,并提示您按 Enter 继续。

您可以使用以下任何账户类型进行身份验证:

  • Claude Pro 或 Max 订阅:使用您的 claude.ai 账户登录。在 claude.com/pricing 订阅。
  • Claude for Teams 或 Enterprise:使用您的团队管理员邀请您的 claude.ai 账户登录。
  • Claude Console:使用您的 Console 凭证登录。您的管理员必须先 邀请您。您可以在有或没有 创建 API 密钥 的情况下登录。
  • 云提供商:如果您的组织使用 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry,请在运行 claude 之前设置所需的环境变量,或在登录提示符处选择 3rd-party platform,这将为 Bedrock 和 Vertex AI 启动交互式设置向导。不需要浏览器登录。
  • 云网关:如果您的组织运行自托管的 Claude apps gateway,请通过 /login 使用企业 SSO 登录。网关颁发的令牌是会话的唯一凭证。

管理员可以指导开发人员使用哪种登录方法,并要求 claude.ai 登录属于特定组织;请参阅 限制登录到您的组织。

要登出并重新身份验证,请在 Claude Code 提示符处输入 /logout。登出还会重置您的首次启动设置状态,因此下次运行 claude 时,它会再次引导您完成登录和设置。

如果您在登录时遇到问题,请参阅 身份验证故障排除。

设置团队身份验证

对于团队和组织,您可以通过以下方式之一配置 Claude Code 访问:

Claude for Teams 或 Enterprise

Claude for Teams 和 Claude for Enterprise 为使用 Claude Code 的组织提供最佳体验。团队成员可以访问 Claude Code 和网络版 Claude,具有集中式计费和团队管理。

  • Claude for Teams:自助服务计划,具有协作功能、管理工具、SSO、计费管理和 服务器托管设置,用于组织范围的 Claude Code 配置。最适合较小的团队。
  • Claude for Enterprise:添加域名捕获、基于角色的权限和合规性 API。最适合具有安全和合规性要求的大型组织。
1

订阅

订阅 Claude for Teams 或联系销售部门了解 Claude for Enterprise。

2

邀请团队成员

从管理员仪表板邀请团队成员。

3

安装并登录

团队成员安装 Claude Code 并使用其 claude.ai 账户登录。

Claude Console 身份验证

对于偏好基于 API 的计费的组织,您可以通过 Claude Console 设置访问权限。

1

创建或使用 Console 账户

使用您现有的 Claude Console 账户或创建新账户。

2

添加用户

您可以通过以下任一方法添加用户:

  • 从 Console 内批量邀请用户:Settings -> Members -> Invite
  • 设置 SSO
3

分配角色

邀请用户时,分配以下角色之一:

  • Claude Code 角色:用户只能创建 Claude Code API 密钥
  • Developer 角色:用户可以创建任何类型的 API 密钥
4

用户完成设置

每个受邀用户需要:

无需 API 密钥登录

您可以无需创建 API 密钥即可登录到您的 Console 账户,即使您的组织不允许开发人员创建 API 密钥。在 /login 提示符处选择 Anthropic Console 账户,Claude Code 会询问您想如何登录。需要 Claude Code v2.1.242 或更高版本。两种路由都会在浏览器中将您登录到 Console,但在 Claude Code 之后存储的内容不同:

  • 使用您的 Console 账户登录,标记为 (recommended):Claude Code 保留该登录的 OAuth 令牌,并将其存储为 Anthropic 配置文件。它不创建 API 密钥
  • 创建 API 密钥,标记为 (legacy):Claude Code 为您创建 Console API 密钥,并将其与您的其他凭证一起存储

实际上,配置文件存储 OAuth 登录,而 API 密钥是静态凭证:Claude Code 自动刷新配置文件的登录,当刷新失败时,请求会失败并显示 Anthropic 配置文件登录已过期,直到您再次登录。

您不会在每台机器上都获得选择。Claude Code 在以下情况下会在不询问的情况下创建 API 密钥:

在无密钥登录之前取消设置 ANTHROPIC_API_KEY。由 Claude Code 自己的 Console 登录或由 Claude Platform CLI 的 ant auth login 编写的配置文件是相同类型的凭证,因此再次登录会替换它。

无密钥登录后,您拥有配置文件而不是存储的 API 密钥:

  • 它写入的配置文件:Claude Code 写入由 ANTHROPIC_PROFILE 命名的配置文件,或您的活跃配置文件,或 default。如果该配置文件是联合配置文件,Claude Code 会拒绝登录而不是覆盖它
  • 它将您登出的内容:Claude Code 将您登出存储在机器上的任何 claude.ai 登录
  • 如何撤销它:运行 /logout,它会删除并撤销此登录写入的凭证

如果您的组织使用 服务器托管设置,它们会在 Claude Code v2.1.257 或更高版本上应用于此登录。

关于配置文件的所有其他内容都适用于此登录,包括它在您的其他凭证中的排名、您在 /status 中获得的 Profile 行,以及需要 claude.ai 登录的功能。请参阅 Anthropic 配置文件和联合凭证。

云提供商身份验证

对于使用 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 的团队:

1
2

分发配置

将环境变量和生成云凭证的说明分发给您的用户。阅读有关如何 在此处管理配置 的更多信息。

3

安装 Claude Code

用户可以 安装 Claude Code。

限制登录到您的组织

要求开发人员的 claude.ai 登录属于特定的 Anthropic 组织,请在 托管设置 中设置 forceLoginMethod 和 forceLoginOrgUUID。将 forceLoginOrgUUID 设置为您的组织 ID,该 ID 显示在 claude.ai 管理员设置 中,适用于 Claude for Teams 或 Enterprise 组织。Claude Code 会为任何其他组织的 claude.ai 登录报告错误,如果使用中的 claude.ai 凭证属于未列出的组织,则在启动时退出。

对于 Claude Console 登录,当您将其设置为单个 Console 组织 ID(显示在 platform.claude.com/settings/organization)时,Claude Code 使用 forceLoginOrgUUID 在 Console 登录页面上预选组织。它不检查生成的 Console 凭证属于哪个组织,无论是在登录时还是在启动时,在您部署密钥之前使用 Console 账户登录的开发人员会保持登录状态。

如果您在任何设置文件中设置 forceLoginOrgUUID,Claude Code 会停止在该文件适用的会话中提供 无密钥 Console 登录,而是创建 API 密钥。要将开发人员定向到 claude.ai 登录,请将 forceLoginMethod 设置为 "claudeai"。

开发人员可以从多个路径登录:终端 /login 流程、VS Code 扩展、Agent SDK、claude setup-token、/install-github-app 和 网关 登录,适用于通过云网关路由的组织。在 Claude Code v2.1.212 或更高版本上,每个路径都应用 forceLoginMethod;在 v2.1.212 之前,只有终端登录应用任一密钥。在终端的交互式登录屏幕上,通过 /login 或首次运行入门到达,Claude Code 预选 claudeai 或 console 方法而不强制执行,因此即使设置了 forceLoginMethod 为 "claudeai",开发人员仍然可以在那里完成 Console 登录。这些路径在 forceLoginOrgUUID 上有所不同:

  • 终端、VS Code 扩展和 Agent SDK 登录:验证 claude.ai 账户登录的 forceLoginOrgUUID
  • claude setup-token 和 /install-github-app:仅强制执行 forceLoginMethod,因此它们可以在不同的组织中铸造令牌
  • 网关 登录:由 forceLoginMethod: "gateway" 选择而不是受其限制,并且不针对 Anthropic 组织进行身份验证,因此 forceLoginOrgUUID 不适用;使用您的网关身份提供商来限制访问

通过您的设备管理工具部署密钥。服务器托管设置 仅到达已经通过您的组织身份验证的账户,因此它们无法重定向开发人员的首次登录。如果您的组织也分发服务器托管设置,请在两个地方设置密钥:托管设置源 不合并,缓存的服务器托管设置替换设备托管文件,除了几个 按密钥例外。forceLoginOrgUUID 和 forceLoginMethod 的 "claudeai" 和 "console" 值不在这些例外中,因此在两个地方都保留它们。

这些密钥还决定不使用登录凭证的会话是否可以启动。有关完整行为,请参阅设置参考中的 forceLoginOrgUUID。

  • ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 或 apiKeyHelper:在启动时被阻止,因为无法验证环境凭证的组织成员身份
  • 云提供商会话,例如 Amazon Bedrock:不被阻止,因为它们针对您的云提供商进行身份验证。通过您的云 IAM 策略限制这些
  • Anthropic 配置文件或联合凭证:不被阻止,密钥不检查配置文件属于哪个组织

凭证管理

Claude Code 安全地管理您的身份验证凭证:

  • 存储位置:
    • 在 macOS 上,凭证存储在加密的 macOS Keychain 中。当 Keychain 拒绝写入时,例如在 SSH 会话中被锁定时,Claude Code 会改为将您的登录存储在 ~/.claude/.credentials.json 中,文件模式为 0600,这与它在 Linux 上使用的存储相同。使用 Console 登录创建 API 密钥的操作会失败,直到 Keychain 可写。要将您的登录移回 Keychain,请按照恢复步骤进行操作。
    • 在 Linux 上,凭证存储在 ~/.claude/.credentials.json 中,文件模式为 0600。
    • 在 Windows 上,凭证存储在 %USERPROFILE%\.claude\.credentials.json 中,并继承您的用户配置文件目录的访问控制,默认情况下将文件限制为您的用户帐户。
    • 如果您设置了 CLAUDE_CONFIG_DIR 环境变量,Claude Code 会将 .credentials.json 文件保存在该目录下,包括 macOS 回退写入的文件,并且还会将 macOS Keychain 条目关键字设置为该目录,因此使用不同 CLAUDE_CONFIG_DIR 的会话会读取不同的条目。
    • Claude Code 通过 /login 和 /logout 管理 .credentials.json。要通过自定义 API 端点路由请求,请改为设置 ANTHROPIC_BASE_URL 环境变量。
  • 支持的身份验证类型:claude.ai 凭证、Claude API 凭证、Microsoft Foundry Auth、Bedrock Auth、Vertex Auth、Anthropic 配置文件和 Workload Identity Federation 凭证,以及 Claude apps gateway 会话令牌。
  • 自定义凭证脚本:配置 apiKeyHelper 设置以运行返回 API 密钥的 shell 脚本。
  • 刷新间隔:Claude Code 默认在五分钟后重新运行 apiKeyHelper。设置 CLAUDE_CODE_API_KEY_HELPER_TTL_MS 环境变量以获得自定义刷新间隔。有关 Claude Code 重新运行助手的其他情况,请参阅 apiKeyHelper。
  • 缓慢助手通知:如果 apiKeyHelper 返回密钥需要超过 10 秒,Claude Code 会在提示栏中显示警告通知,显示经过的时间。如果您经常看到此通知,请检查您的凭证脚本是否可以优化。
  • 助手失败:当脚本以错误退出、超时或不输出任何内容时,请求在三次尝试内失败,显示 Your apiKeyHelper script is failing。在 v2.1.208 之前,助手失败显示为通用 401,经过大约十次无声重试。

apiKeyHelper、ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 适用于 CLI 和包装它的表面,包括 VS Code 扩展、Agent SDK 和 GitHub Actions。Claude Desktop 和云会话不会调用 apiKeyHelper 或读取这些环境变量:它们使用 OAuth,除了运行第三方推理配置的桌面会话外,这些会话使用该配置的凭证进行身份验证。

续期即将过期的登录

当您使用 /login 创建的登录在过期前三天内时,Claude Code 会在启动时显示警告:Your login expires in 3 days · run /login to renew。需要 Claude Code v2.1.203 或更高版本。在 v2.1.217 之前,警告在五天前出现。

运行 /login 以续期。该警告仅供参考,永远不会阻止请求:身份验证将继续工作,直到登录实际过期。登录生命周期本身不变;提前警告是 v2.1.203 添加的功能。

一旦存储的登录过期且无法刷新,每个模型请求都会失败,显示 Login expired · Please run /login,直到您再次登录。在 v2.1.206 之前,Claude Code 将过期的登录报告为模型错误。

您可以在请求失败之前检查此状态:/status 显示 Login 行,读取 Expired — log in again,加上它为过期登录保存的组织和电子邮件。该行仅在保存的 claude.ai 或 Claude Console 登录是活跃凭证时出现。该行需要 Claude Code v2.1.210 或更高版本。

该警告仅在 claude.ai 或 Claude Console 登录是活跃凭证时出现,而不是在云提供商、ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN 或 apiKeyHelper 提供凭证时出现。

对于运行无人值守的会话,提前续期最为重要。在 agent view 中的后台会话或 Remote Control 会话一旦凭证过期,就会停止进行,并且在您再次登录之前无法恢复。

身份验证优先级

当存在多个凭证时,Claude Code 按以下顺序选择一个:

  1. 云提供商凭证,当设置了 CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX 或 CLAUDE_CODE_USE_FOUNDRY 时。有关设置,请参阅第三方集成。
  2. ANTHROPIC_AUTH_TOKEN 环境变量。作为 Authorization: Bearer 标头发送。当通过LLM 网关或代理进行路由时使用此选项,该网关或代理使用持有者令牌而不是 Anthropic API 密钥进行身份验证。
  3. ANTHROPIC_API_KEY 环境变量。作为 X-Api-Key 标头发送。用于直接 Anthropic API 访问,使用来自 Claude Console 的密钥。在交互模式下,系统会提示您一次批准或拒绝该密钥,您的选择会被记住。要稍后更改它,请使用 /config 中的"使用自定义 API 密钥"切换。该切换仅在 ANTHROPIC_API_KEY 在您的环境中设置时出现。在非交互模式(-p)下,当密钥存在时始终使用该密钥。
  4. apiKeyHelper 脚本输出。用于动态或轮换凭证,例如从保管库获取的短期令牌。
  5. CLAUDE_CODE_OAUTH_TOKEN 环境变量。由 claude setup-token 生成的长期 OAuth 令牌。用于 CI 管道和脚本,其中浏览器登录不可用。如果您在设置了该变量时运行 /login,Claude Code 会将当前会话切换到新登录,但在每个新会话中都会再次读取该变量,直到您从 shell 配置文件或设置文件的 env 块中删除它。
  6. Anthropic 配置文件和联合凭证,即 ant CLI 和 Workload Identity Federation 使用的凭证。ant auth login 写入的配置文件仅在您在 ANTHROPIC_PROFILE 中命名它时才排在此处;否则它排在 /login 下方。请参阅 Anthropic 配置文件和联合凭证。
  7. 来自 /login 的订阅 OAuth 凭证。这是 Claude Pro、Max、Team 和 Enterprise 用户的默认设置。

一个已签名的 Claude apps gateway 会话位于此列表之外:它是一个提供商选择,如 Amazon Bedrock 或 Google Cloud 的 Agent Platform,并且它优先于它们。当网关会话存在时,即使设置了 CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX 或 CLAUDE_CODE_USE_FOUNDRY,CLI 也会使用网关令牌进行身份验证,上面的持有者令牌、API 密钥、apiKeyHelper 和配置文件等凭证源不会被使用。

如果您的机器的托管设置将 forceLoginMethod 设置为 "gateway" 或设置 forceLoginGatewayUrl,并且您没有通过 CLAUDE_CODE_USE_BEDROCK 或 CLAUDE_CODE_USE_VERTEX 等变量选择云提供商,您的会话仅使用网关登录。Claude Code 跳过其他凭证源并要求您使用 /login 登录。有关每个剩余凭证的情况,请参阅管理员策略需要云网关登录。在 v2.1.261 之前,或在仅设置 forceLoginGatewayUrl 的机器上在 v2.1.265 之前,Claude Code 在这些机器上使用剩余的保存登录,直到您登录到网关。

如果您有活跃的 Claude 订阅,但环境中也设置了 ANTHROPIC_API_KEY,Claude Code 会在您批准后使用 API 密钥。如果密钥属于已禁用或过期的组织,这可能会导致身份验证失败。

运行 unset ANTHROPIC_API_KEY 以回退到您的订阅,并检查 /status 以确认哪种方法处于活跃状态。当登录和 API 密钥都已配置时,/status 会标记未在使用的凭证。

Cloud sessions 始终使用您的订阅凭证。如果您在云环境中设置 ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN,它不会覆盖您的订阅凭证。

Anthropic 配置文件和联合凭证

配置文件是您的 Anthropic 配置目录中的命名凭证配置文件,在 macOS 和 Linux 上默认为 ~/.config/anthropic,在 Windows 上为 %APPDATA%\Anthropic。当您为 Workload Identity Federation (WIF) 设置配置文件时,其身份验证模式为 oidc_federation,或当 ant auth login 写入它或您在没有 API 密钥的情况下登录到 Console 帐户时为 user_oauth。

Claude Code 不在裸模式、Claude Desktop 或云会话中读取配置文件或联合变量。在这些会话中,/status 不显示 Profile 行。

Claude Code 按此顺序检查三个源,并在第一个设置的源处停止。该表显示设置每个源的内容以及它相对于您的 /login 凭证的排名。

源 设置者 相对于 /login 的排名
命名配置文件 ANTHROPIC_PROFILE 上方,无论配置文件具有什么身份验证模式
联合变量 ANTHROPIC_FEDERATION_RULE_ID 和 ANTHROPIC_ORGANIZATION_ID,两者都设置 上方
活跃配置文件 您的配置目录中的 active_config 文件,或名为 default 的配置文件 当其身份验证模式为 oidc_federation 时上方;当其身份验证模式为 user_oauth 时在工作的 /login 凭证下方

user_oauth 规则防止剩余的 ant auth login 配置文件将您的请求移出您使用 /login 登录的帐户。对于联合变量,Claude Code 还会在交换您的身份令牌时读取 WIF 参考中的其他变量,例如 ANTHROPIC_IDENTITY_TOKEN_FILE。对于配置文件格式,请参阅 WIF 参考。

要确认 Claude Code 选择了哪个源,请运行 /status。Profile 行用源名称代替 Login method 行。当配置文件是正在使用的凭证时,Organization 和 Email 行显示其帐户。

如果您使用 --debug 启动 Claude Code,它还会在 ~/.claude/debug/<session-id>.txt 的调试日志中写入 Using Anthropic profile auth 行,其中包含源名称。当 Claude Code 因为您有工作的 /login 凭证而跳过 user_oauth 活跃配置文件时,它会向调试日志写入警告,说它改为使用 claude.ai 登录。

当 user_oauth 配置文件的登录已过期且 Claude Code 无法续期时,请求会失败,显示 Anthropic 配置文件登录已过期。

需要您的 claude.ai 登录的功能,例如 claude.ai 连接器和 /schedule,在选择这些源之一时不可用。要停止 Claude Code 选择源:

  • 命名配置文件或联合变量:取消设置 ANTHROPIC_PROFILE,或取消设置任一联合变量
  • 活跃配置文件:对于通过在没有 API 密钥的情况下登录到 Console 帐户写入当前凭证的 user_oauth 配置文件运行 /logout,对于 ant auth login 写入当前凭证的配置文件运行 ant auth logout,或对于任一身份验证模式从您的配置目录中的 configs/ 删除配置文件的文件

生成长期令牌

对于 CI 管道、脚本或其他不可用交互式浏览器登录的环境,使用 claude setup-token 生成一年期 OAuth 令牌:

claude setup-token

该命令会打开与 /login 相同的浏览器授权流程,在您在浏览器中批准访问后,令牌会打印到终端。它不会将令牌保存在任何地方;复制它并将其设置为 CLAUDE_CODE_OAUTH_TOKEN 环境变量,无论您想在何处进行身份验证:

export CLAUDE_CODE_OAUTH_TOKEN=your-token

此令牌使用您的 Claude 订阅进行身份验证,需要 Pro、Max、Team 或 Enterprise 计划。它只能进行模型请求,因此无法建立 Remote Control 会话或获取 claude.ai 连接器。您在本地配置的 MCP 服务器仍然有效。

裸模式不读取 CLAUDE_CODE_OAUTH_TOKEN。如果您的脚本传递 --bare,请改用 ANTHROPIC_API_KEY 或 apiKeyHelper 进行身份验证。