跳转到主要内容

Claude Code 从控制台到企业版迁移

Claude 控制台 (API) → Claude 企业版

概述

本指南适用于从基于控制台的 Claude Code 访问迁移到 Claude 企业版的团队。请注意,个人用户无需迁移 CLI 会话历史记录,因为这些记录存储在本地。您只需为每个用户配置 Claude 企业版账户,然后用户应将其登录方式从控制台切换到 Claude 企业版。


Claude 企业版与控制台的对比

功能

Claude 控制台/API

Claude 企业版

网页和移动应用上的 Claude Code

Slack 上的 Claude Code

代码审查

强制 Claude Code 可以使用的工具

❌ 无原生 UI

*可以通过 MDM (Jamf、Intune) 或配置管理 (Ansible、Puppet 等) 将设置推送到开发者机器。

✅ 原生 UI 用于设置 managed-settings.json 允许/拒绝规则

阻止特定 bash 命令

❌ 无原生 UI*

✅ Bash(curl:*)、Bash(sudo:*) 等

防止访问敏感文件

❌ 无原生 UI*

✅ Read(.env)、Read(./secrets/**)

控制允许的 MCP 服务器

❌ 无原生 UI*

✅ allowedMcpServers / deniedMcpServers

在整个组织范围内部署预批准的 MCP 服务器

❌ 无原生 UI*

✅ managed-mcp.json

强制沙箱模式

❌ 无原生 UI*

✅ sandbox.enabled

禁用 --dangerously-skip-permissions

❌ 无原生 UI*

✅ permissions.disableBypassPermissionsMode: disable

禁用自动模式

❌ 无原生 UI*

✅ disableAutoMode: disable

自定义角色 (RBAC)

✅ 按组限制功能访问权限,并委派特定的管理员区域(如计费、用户管理和身份验证),无需授予所有者角色。在企业计划上管理自定义角色

模型治理

❌ 无原生 UI*

✅ 从管理控制台为聊天和 Cowork (beta) 设置组织默认模型,并使用托管设置中的 availableModels 限制 Claude Code 模型选择。为您的组织设置默认模型

审计日志

❌ 不支持审计日志

🟡 Claude Code 确实支持 OpenTelemetry

🟡 审计日志和 合规性 API,其中包括审计日志事件。本地 CLI 会话的记录保存在开发者的计算机上,无法通过合规性 API 访问。

使用情况分析

✅ 编写的代码行数、接受率、日活跃用户、日支出。

✅ 编写的代码行数、接受率、日活跃用户和每个成员的本月至今支出,位于 组织设置使用情况

程序化使用情况和成本报告

Claude 企业分析 API 返回每个用户的参与度和 Claude Code 指标(提交、拉取请求、代码行数)以及使用情况和成本端点。管理 API 涵盖程序化组织管理。

贡献指标

✅ 通过 Claude Code 分析 API

✅ 使用 Claude Code 协助创建的拉取请求和提交的代码行数。

细粒度支出控制

✅ 组织和工作区限制,加上 Claude Code 工作区中的每个开发者限制

✅ 组织 → 组 → 个人,与 RBAC 组集成


SCIM 配置

以下是您的身份团队需要做的事情:

  1. 更新 IdP 组映射 — 创建或重新利用 IdP 组以将用户映射到 Claude 企业组织。启用组映射以自动分配席位。

  2. 确保购买了足够的席位 — 在触发 SCIM 同步之前,验证 Claude 企业组织有足够的可用席位。没有可用席位的用户将被设置为"未分配"状态。

  3. 确认 Claude Code 访问已启用 — 确认在管理设置中为企业组织启用了 Claude Code,并且 — 如果您使用自定义角色或组来限定功能范围 — 您的开发者组被授予了 Claude Code 访问权限。

  4. 触发同步 — 导航到 组织设置 → 组织和访问,找到 目录同步 (SCIM),然后单击"同步"。请注意,这可能会很慢,因为这可能会触发大型同步。

  5. 验证席位分配 — 同步后,检查 组织设置 → 组织和访问 以确认用户分配到了正确的席位类型。

  6. 可选:调整控制台组织映射 — 如果某些用户应该保留控制台 API 访问权限,请将其组保持映射到控制台组织。用户可以同时属于两个组织。

注意:Microsoft Entra SCIM 更改每约 40 分钟同步一次。在组更改后使用"同步"按钮触发按需同步。

如果您的企业组织的 SSO 配置为仅登录,登录不会创建账户 — 用户必须手动邀请。在指导开发者登录之前启用 JIT 或 SCIM 配置。请参阅 设置 JIT 或 SCIM 配置


支出限制

Claude 企业计划提供分层支出控制系统。限制级联 — 用户永远不能超过组织限制。

级别

范围

谁设置

它控制什么

1. 组织

整个企业组织

主要所有者 / 所有者

所有席位和使用情况的最大月支出

2. 组控制

具有 RBAC 的组

主要所有者 / 所有者

使用 RBAC 的组的支出限制

3. 个人

特定用户

主要所有者 / 所有者

单个团队成员的支出限制

如何设置和编辑支出限制

  1. 以所有者或主要所有者身份登录。

  2. 设置组织级别限制 — 这是所有月支出的全局上限。

  3. 设置组级别限制 — 在

  4. 设置个人级别限制 — 在"按成员"选项卡下的支出默认值部分中查找特定用户。

所有者可以将限制设置为"无限制",但所有消费仍会被计费。如果消费席位上的用户达到其限制,他们将无法使用 Claude 或 Claude Code,直到下一个计费周期或管理员增加其限制。


发放新席位和重新身份验证

添加席位

  1. 以主所有者或所有者身份登录。

  2. 单击"席位"下的铅笔图标。

  3. 输入新的席位数量。

  4. 查看并单击"升级"以确认。新席位按比例分配。

将用户分配到席位

  1. 单击"添加成员"(或"批量添加"以添加多个)。

  2. 输入用户的 @ 电子邮件地址。

  3. 设置角色(用户、管理员、所有者)并发送邀请。

对于 SCIM 配置的用户,席位分配会根据群组映射自动进行。如果未配置群组映射,用户将默认使用最高可用席位层级。

Claude Code 用户的重新身份验证

当前针对 Console 组织进行身份验证的开发人员需要针对 Claude Enterprise 组织重新进行身份验证:

  1. 登录前删除任何剩余的 Console 凭据。检查 shell 配置文件、dotfiles 和 CI 配置中的 ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKEN 环境变量,并删除任何 apiKeyHelper 设置。还要检查 CLAUDE_CODE_OAUTH_TOKENANTHROPIC_BASE_URLCLAUDE_CODE_USE_BEDROCK / _VERTEX / _FOUNDRY 标志 — 这些也会覆盖或绕过 /login。凭据也可能隐藏在 Claude Code 自己的设置文件的 env 块中(~/.claude/settings.json 和存储库中的 .claude/settings*.json 文件)。如果这些仍然存在,它们会默认优先于新登录:/login 看起来会成功,但使用情况会继续向旧 Console 组织计费。

  2. 在终端中,运行 claude,然后运行 /login 以切换身份验证方法。

  3. 选择"带订阅的 Claude 账户"作为登录方法。

  4. 选择 Claude Enterprise 组织(不是 Console 组织或个人账户)。

  5. 授权,返回终端,并运行 /status 以确认 Claude Code 显示您的 Enterprise 组织。

CI 和自动化

管道和脚本不使用 /login。要么保留一个 Console 组织(及其 API 密钥)用于自动化,仅迁移交互式开发人员席位,要么将 CI 切换到 Enterprise 凭据:在登录到 Enterprise 组织时运行 claude setup-token,并将打印的令牌设置为 CI 环境中的 CLAUDE_CODE_OAUTH_TOKEN。在其中一个就位之前,不要删除 CI 凭据。

IT 提示:部署托管设置,将 forceLoginOrgUUID 设置为您的 Enterprise 组织 UUID,作为每次迁移的标准部分。将 pin 作为端点管理的文件或 MDM 策略交付 — 服务器管理的设置仅在用户登录后才会到达,因此无法捕获错误的首次登录。如果您还使用服务器管理的设置,也在那里设置 forceLoginOrgUUID:这两个通道不会合并。这会阻止登录到任何其他组织,并将上述剩余凭据故障模式从无声的错误计费转变为明显的故障:Claude Code 拒绝启动并告诉用户必须删除剩余凭据(ANTHROPIC_API_KEYANTHROPIC_AUTH_TOKENapiKeyHelper)。

验证迁移后

从 Console 组织中删除已迁移的开发人员(或轮换其密钥)。删除会撤销其 Console 登录令牌并禁用其 Claude Code 工作区密钥,停止来自交互式使用的进一步 Console 计费。他们在其他 Console 工作区中创建的 API 密钥不会因删除而被禁用 — 请单独查看并禁用这些密钥。在确认 Enterprise 访问有效之前,不要删除成员;没有自动回滚。


报告改进

从 Console API 迁移到 Claude Enterprise 可以为 Claude Code 使用情况解锁更丰富的分析:

指标

Console API

Claude Enterprise

令牌消耗

接受的代码行数

建议接受率

使用 Claude Code 协助创建的 PR

✅ 通过 Claude Code Analytics API

使用 Claude Code 协助提交的代码行数

✅ 通过 Claude Code Analytics API

支出限制通知

✅ 可配置收件人的限额通知电子邮件

阈值警报

每个成员的月度支出

管理员设置 → 使用情况

合规审计跟踪

合规 API 包括审计日志事件。本地 CLI 会话的记录保存在开发者的计算机上,无法通过合规 API 访问。

所有报告都可从 Claude 管理面板中的 分析 访问。如需以编程方式访问,Claude 企业分析 API 返回每个用户的参与度指标、Claude Code 活动(提交、拉取请求、代码行数)以及使用情况和成本数据。分析不会迁移:企业组织从全新的报告历史记录开始,其分析/管理 API 需要在企业组织中创建的新 API 密钥——控制台密钥不会转移。在切换前,导出您需要的任何控制台分析以用于历史仪表板。保留在控制台 API 密钥上的流量(例如 CI)继续仅在控制台报告中显示。


托管策略设置——深入探讨

这是安全和 IT 团队最重要的升级。服务器托管设置 允许对每个开发者计算机上 Claude Code 的功能进行集中的、可强制执行的控制。有两种方式来部署它们,您不需要 MDM 来使用第一种方式。

工作原理

Claude Code 从设置源的层次结构中读取配置。managed-settings.json 文件位于顶部,无法被用户或项目设置覆盖:

优先级

来源

范围

谁控制它

1(最高)

托管设置(服务器托管或端点托管)

企业范围

所有者/主要所有者(从 claude.ai 管理控制台推送时)或您的 IT/MDM 团队(作为文件部署时)。

2

命令行参数

会话

开发者

3

.claude/settings.local.json

项目(个人)

开发者

4

.claude/settings.json

项目(共享,在 Git 中)

团队

5(最低)

~/.claude/settings.json

用户(全局)

开发者

两种方式来部署托管设置

服务器托管设置(无需 MDM):所有者或主要所有者在管理控制台的 组织设置Claude Code托管设置 中定义设置。每个登录到该组织的 Claude Code 客户端在启动时自动获取这些设置,并每小时轮询一次更新。这是适合没有设备管理基础设施或用户在非托管设备上的组织的选择。了解更多关于 服务器托管设置

端点托管设置:IT 直接将设置部署到设备,可以通过本机操作系统策略(macOS 托管首选项或 Windows 注册表,通过 Jamf、Intune、组策略等)或作为推送到下面系统路径的 managed-settings.json 文件。使用操作系统级权限保护该文件,以便最终用户无法修改它。在已注册的设备上,这比服务器托管交付提供更强的保证,因为操作系统可以防止用户篡改。

注意:两个通道占据相同的最高优先级层,并使用相同的 JSON 格式,但它们不会合并。第一个提供非空配置的来源获胜:首先检查服务器托管设置,如果它们提供任何密钥,端点托管设置将被完全忽略。运行 /status 查看哪个托管来源处于活动状态。

文件位置(端点托管)

操作系统

路径

macOS

/Library/Application Support/ClaudeCode/managed-settings.json

Linux

/etc/claude-code/managed-settings.json

Windows

C:\Program Files\ClaudeCode\managed-settings.json

关键设置参考

这些是与控制台到企业迁移最相关的设置。Claude Code 支持更多设置:有关完整的当前列表,请参阅 Claude Code 设置

设置

用途

示例

permissions.deny

在整个组织范围内阻止特定工具/命令

Bash(curl:*), Read(.env)

permissions.allow

明确允许受信任的命令

Bash(npm run test:*)

permissions.ask

每次都需要用户批准

Bash(rm:*)

permissions.disableBypassPermissionsMode

防止 --dangerously-skip-permissions

"disable"

forceLoginOrgUUID

限制登录到特定企业组织。接受一个组织 UUID 或数组;阻止登录到任何其他组织。单个 UUID 也会在登录时自动选择该组织。

"298e7cb2…"

forceLoginMethod

强制登录方法(claudeai、console 或 gateway)。建议与 forceLoginOrgUUID 一起使用,以便用户跳过账户类型选择器,但不是应用组织限制所必需的。

"claudeai"

allowedMcpServers

仅允许已批准的 MCP 服务器,按名称、命令或 URL 模式匹配

[{"serverName": "github"}]

deniedMcpServers

黑名单特定 MCP 服务器

[{"serverName": "filesystem"}]

allowManagedPermissionRulesOnly

仅应用托管设置中的权限规则;用户和项目无法添加自己的规则

true

allowManagedMcpServersOnly

仅应用托管 MCP 允许列表;拒绝列表仍从所有来源合并

true

allowManagedHooksOnly

仅运行托管和管理员批准的钩子

true

enforceAvailableModels

availableModels 允许列表扩展到默认模型选项

true

sandbox.enabled

强制沙箱模式

true

sandbox.allowUnsandboxedCommands

阻止非沙箱执行

false

cleanupPeriodDays

本地会话数据(记录和其他应用程序文件)的保留期。默认值:30 天

7

companyAnnouncements

向所有 Claude Code 用户显示消息

字符串数组

部署:使用您的 MDM 工具(Intune、Jamf、SCCM、Puppet 等)将 managed-settings.json 推送到所有开发者计算机。使用操作系统级权限保护该文件,以防最终用户修改。

这是否解答了您的问题?