身份验证
登录 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 Console
- Claude apps gateway,一个自托管网关,使用您的 IdP 为开发人员签名,并将推理路由到您配置的云提供商
- Amazon Bedrock
- Google Cloud's Agent Platform
- Microsoft Foundry
Claude for Teams 或 Enterprise
Claude for Teams 和 Claude for Enterprise 为使用 Claude Code 的组织提供最佳体验。团队成员可以访问 Claude Code 和网络版 Claude,具有集中式计费和团队管理。
- Claude for Teams:自助服务计划,具有协作功能、管理工具和计费管理。最适合较小的团队。
- Claude for Enterprise:添加 SSO、域名捕获、基于角色的权限、合规性 API 和托管策略设置,用于组织范围的 Claude Code 配置。最适合具有安全和合规性要求的大型组织。
订阅
订阅 Claude for Teams 或联系销售部门了解 Claude for Enterprise。
邀请团队成员
从管理员仪表板邀请团队成员。
安装并登录
团队成员安装 Claude Code 并使用其 claude.ai 账户登录。
Claude Console 身份验证
对于偏好基于 API 的计费的组织,您可以通过 Claude Console 设置访问权限。
创建或使用 Console 账户
使用您现有的 Claude Console 账户或创建新账户。
分配角色
邀请用户时,分配以下角色之一:
- Claude Code 角色:用户只能创建 Claude Code API 密钥
- Developer 角色:用户可以创建任何类型的 API 密钥
无需 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 密钥:
- 您针对云提供商运行,例如 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 或 AWS 上的 Claude Platform
- 任何设置文件设置
forceLoginOrgUUID,或将forceLoginMethod设置为"claudeai"或"console" - 您机器上存在托管设置源(例如托管设置文件、MDM 配置文件或缓存的服务器托管设置),但 Claude Code 无法读取它,且没有其他托管源提供策略
在无密钥登录之前取消设置 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 的团队:
限制登录到您的组织
要求开发人员的 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环境变量。
- 在 macOS 上,凭证存储在加密的 macOS Keychain 中。当 Keychain 拒绝写入时,例如在 SSH 会话中被锁定时,Claude Code 会改为将您的登录存储在
- 支持的身份验证类型: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 按以下顺序选择一个:
- 云提供商凭证,当设置了
CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX或CLAUDE_CODE_USE_FOUNDRY时。有关设置,请参阅第三方集成。 ANTHROPIC_AUTH_TOKEN环境变量。作为Authorization: Bearer标头发送。当通过LLM 网关或代理进行路由时使用此选项,该网关或代理使用持有者令牌而不是 Anthropic API 密钥进行身份验证。ANTHROPIC_API_KEY环境变量。作为X-Api-Key标头发送。用于直接 Anthropic API 访问,使用来自 Claude Console 的密钥。在交互模式下,系统会提示您一次批准或拒绝该密钥,您的选择会被记住。要稍后更改它,请使用/config中的"使用自定义 API 密钥"切换。该切换仅在ANTHROPIC_API_KEY在您的环境中设置时出现。在非交互模式(-p)下,当密钥存在时始终使用该密钥。apiKeyHelper脚本输出。用于动态或轮换凭证,例如从保管库获取的短期令牌。CLAUDE_CODE_OAUTH_TOKEN环境变量。由claude setup-token生成的长期 OAuth 令牌。用于 CI 管道和脚本,其中浏览器登录不可用。如果您在设置了该变量时运行/login,Claude Code 会将当前会话切换到新登录,但在每个新会话中都会再次读取该变量,直到您从 shell 配置文件或设置文件的env块中删除它。- Anthropic 配置文件和联合凭证,即
antCLI 和 Workload Identity Federation 使用的凭证。ant auth login写入的配置文件仅在您在ANTHROPIC_PROFILE中命名它时才排在此处;否则它排在/login下方。请参阅 Anthropic 配置文件和联合凭证。 - 来自
/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 进行身份验证。