Claude Code 服务器管理设置适合没有 MDM、但要给整个组织统一下发配置的场景。管理员在 Claude.ai 的 Admin Settings 里配置 JSON,客户端会在认证时和每小时轮询时拉取;如果启用 forceRemoteSettingsRefresh: true,启动时会失败关闭,且第三方模型提供商不可用。

Claude Code 服务器管理设置怎么配置

服务器管理设置让你通过 Claude.ai 的 Web 界面给组织统一配置 Claude Code,不需要设备管理基础设施。Claude Code 客户端在用户使用组织凭据认证后会自动接收这些设置。

Server-managed settings are available for Claude for Teams and Claude for Enterprise customers.

Requirements

要使用服务器管理设置,需要满足以下条件:

  • Claude for Teams 或 Claude for Enterprise 计划
  • Claude Code version 2.1.38 或更高,适用于 Claude for Teams;或者 version 2.1.30 或更高,适用于 Claude for Enterprise
  • 可以访问 api.anthropic.com

选择:服务器管理设置还是端点管理设置

Claude Code 支持两种集中配置方式。服务器管理设置由 Anthropic 的服务器下发配置;端点管理设置 通过原生 OS 策略、注册表策略或托管设置文件直接部署到设备。

Approach Best for Security model
Server-managed settings 没有 MDM 的组织,或使用未托管设备的用户 认证时从 Anthropic 服务器下发
Endpoint-managed settings 有 MDM 或 endpoint management 的组织 通过 MDM 配置文件、registry policies 或 managed settings files 部署到设备

如果设备已经加入 MDM 或 endpoint management,端点管理设置的安全保证更强,因为设置文件可以在操作系统层面防止用户修改。

怎么配置服务器管理设置

  1. Claude.ai 中进入 Admin Settings > Claude Code > Managed settings
  2. 以 JSON 添加配置。settings.json 中所有可用设置都支持,除了那些只允许通过 OS-level policy 交付的键;见Current limitations。这包括 hooksenvironment variablesmanaged-only settings,例如 allowManagedPermissionRulesOnly

这个示例会强制执行权限拒绝列表,阻止用户绕过权限,并把权限规则限制为托管设置中定义的规则:

{
  "permissions": {
    "deny": [
      "Bash(curl *)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ],
    "disableBypassPermissionsMode": "disable"
  },
  "allowManagedPermissionRulesOnly": true
}

Hooks 使用的格式与 settings.json 相同。

这个示例会在整个组织内每次文件编辑后运行审计脚本:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "/usr/local/bin/audit-edit.sh" }
        ]
      }
    ]
  }
}

要配置 auto mode 分类器,让它知道组织信任哪些仓库、bucket 和 domain:

{
  "autoMode": {
    "environment": [
      "Source control: github.example.com/acme-corp and all repos under it",
      "Trusted cloud buckets: s3://acme-build-artifacts, gs://acme-ml-datasets",
      "Trusted internal domains: *.corp.example.com"
    ]
  }
}

因为 hooks 会执行 shell 命令,用户在应用前会看到 security approval dialogautoMode 条目会影响分类器阻止什么内容,environmentallowsoft_denyhard_deny 字段的行为限制见 Configure auto mode

  1. 保存更改。Claude Code 客户端会在下次启动时,或者每小时轮询周期中收到更新。

如何验证设置是否下发成功

要确认设置已经生效,可以让用户重启 Claude Code。若配置里包含会触发 security approval dialog 的设置,用户在启动时会看到描述托管设置的提示。你也可以让用户运行 /permissions 查看实际生效的权限规则,确认 managed permission rules 已启用。

访问控制

下面这些角色可以管理服务器管理设置:

  • Primary Owner
  • Owner

请把访问权限限制给可信人员,因为设置变更会影响组织内所有用户。

Managed-only settings

大多数 settings keys 在任何作用域都可用。只有少数键只会从 managed settings 读取,放到用户或项目 settings files 中不会生效。完整列表见 managed-only settings。不在该列表中的其他设置,也可以放在 managed settings 中,并且具有最高优先级。

Current limitations

服务器管理设置有以下限制:

  • 设置会统一应用到组织内所有用户,目前不支持按组配置。
  • 不能通过服务器管理设置分发 managed-mcp.json。应改为在其中下发 allowedMcpServersdeniedMcpServers policy keys。
  • 只允许通过 OS-level policy source 的设置,例如 policyHelperwslInheritsWindowsSettings,不会被识别。请通过 MDM 或系统级 managed-settings.json 部署。

设置下发机制

设置优先级

服务器管理设置和 端点管理设置 都位于 Claude Code settings hierarchy 的最高层。其他任何设置层级都无法覆盖它们,包括命令行参数。

在 managed tier 中,第一个返回非空配置的来源会生效。系统会先检查服务器管理设置,再检查端点管理设置。两者不会合并:如果服务器管理设置下发了任何键,端点管理设置会被完全忽略;如果服务器管理设置没有下发任何内容,才会应用端点管理设置。

如果你在管理控制台清空了服务器管理配置,想回退到端点管理的 plist 或 registry policy,要注意 cached settings 会留在客户端机器上,直到下一次成功获取。运行 /status 可以查看当前激活的是哪一种 managed source。

获取和缓存行为

Claude Code 会在启动时从 Anthropic 服务器获取设置,并在活跃会话期间每小时轮询更新。

首次启动且没有缓存设置时:

  • Claude Code 会异步获取设置
  • 如果获取失败,Claude Code 会在没有管理设置的情况下继续运行
  • 设置加载前会有一小段未强制执行窗口

后续启动且有缓存设置时:

  • 启动时会立即应用缓存设置
  • 然后在后台获取最新设置
  • 缓存设置会在网络故障时继续生效

Claude Code 会自动应用设置更新,不需要重启;但像 OpenTelemetry 配置这类高级设置,需要完整重启后才会生效。

怎么强制失败时关闭启动

默认情况下,如果启动时远程设置获取失败,CLI 会在没有管理设置的情况下继续运行。对于不能接受这段短暂未强制执行窗口的环境,可以在 managed settings 中设置 forceRemoteSettingsRefresh: true

{
  "forceRemoteSettingsRefresh": true
}

启用后,CLI 会在启动时阻塞,直到成功拉取最新远程设置。如果拉取失败,CLI 会直接退出,不会继续运行。这个设置会自我延续:一旦从服务器下发,它也会缓存到本地,因此后续启动即使在新会话第一次成功拉取前,也会继续执行同样的行为。

启用前先确认网络策略允许访问 api.anthropic.com。如果这个端点不可达,CLI 会在启动时退出,用户无法启动 Claude Code。

从 v2.1.139 开始,claude auth 子命令(例如 claude auth login)不受这个检查影响,因此当过期凭据导致设置拉取失败时,用户仍然可以重新认证。

Security approval dialogs

某些可能带来安全风险的设置,在应用前必须由用户明确批准:

  • Shell command settings:执行 shell 命令的设置
  • Custom environment variables:不在已知安全 allowlist 中的变量
  • Hook configurations:任何 hook 定义

当这些设置出现时,用户会看到一个说明正在配置什么内容的安全对话框。用户必须批准才能继续。如果用户拒绝,Claude Code 会退出。

在带 -p 标志的非交互模式下,Claude Code 会跳过安全对话框,直接应用设置。

Platform availability

服务器管理设置需要直接连接 api.anthropic.com,使用第三方模型提供商时不可用:

  • Amazon Bedrock
  • Google Vertex AI
  • Microsoft Foundry
  • 通过 ANTHROPIC_BASE_URLLLM gateways 配置的自定义 API endpoints

Audit logging

设置变更的 audit log events 可以通过 compliance API 或 audit log export 获取。请联系你的 Anthropic account team 开通访问权限。

审计事件会包含执行动作的类型、执行动作的 account 和 device,以及前后值的引用。

Security considerations

服务器管理设置提供集中式策略执行,但它仍然是客户端侧控制。在未托管设备上,拥有 admin 或 sudo 权限的用户可以修改 Claude Code binary、filesystem 或 network configuration。

Scenario Behavior
用户编辑缓存的设置文件 篡改后的文件会在启动时生效,但在下一次服务器拉取时会恢复正确设置
用户删除缓存的设置文件 会回到首次启动行为:异步获取设置,并出现短暂未强制执行窗口
API 不可用 如果有缓存则应用缓存设置;否则在下一次成功获取前不会强制执行。启用 forceRemoteSettingsRefresh: true 时,CLI 会退出而不是继续运行,claude auth 子命令除外
用户使用不同组织的账号认证 对不属于受管组织的账号不会下发设置
用户配置第三方模型提供商 服务器管理设置会被绕过。这包括设置 CLAUDE_CODE_USE_BEDROCKCLAUDE_CODE_USE_MANTLECLAUDE_CODE_USE_VERTEXCLAUDE_CODE_USE_FOUNDRY,或设置非默认 ANTHROPIC_BASE_URL

要检测运行时配置变更,可以使用 ConfigChange hooks 记录修改,或在生效前阻止未授权变更。

对于更强的强制执行保证,请在已加入 MDM 的设备上使用 endpoint-managed settings

另请参阅

与 Claude Code 配置管理相关的页面:

常见问题

服务器管理设置下发后,用户还能改本地设置吗?

可以改本地 settings.local.json,但服务器管理设置优先级更高,遵循 settings hierarchy。也就是说,管理员禁用的功能,用户不能靠本地覆盖重新打开。

多个组织的用户会收到哪一套设置?

用户只会接收登录时所属的活跃组织设置。若用户属于多个组织,当前活跃会话决定使用哪套设置。

怎么确认服务器管理设置已经生效?

在 Claude Code 中运行 /status,可以看到当前认证类型和来自服务器的配置。你也可以配置 ConfigChange hook 来记录所有运行时配置变更。