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,端点管理设置的安全保证更强,因为设置文件可以在操作系统层面防止用户修改。
怎么配置服务器管理设置
- 在 Claude.ai 中进入 Admin Settings > Claude Code > Managed settings。
- 以 JSON 添加配置。
settings.json中所有可用设置都支持,除了那些只允许通过 OS-level policy 交付的键;见Current limitations。这包括 hooks、environment variables 和 managed-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 dialog。autoMode 条目会影响分类器阻止什么内容,environment、allow、soft_deny 和 hard_deny 字段的行为限制见 Configure auto mode。
- 保存更改。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。应改为在其中下发allowedMcpServers和deniedMcpServerspolicy keys。 - 只允许通过 OS-level policy source 的设置,例如
policyHelper和wslInheritsWindowsSettings,不会被识别。请通过 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_URL或 LLM 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_BEDROCK、CLAUDE_CODE_USE_MANTLE、CLAUDE_CODE_USE_VERTEX、CLAUDE_CODE_USE_FOUNDRY,或设置非默认 ANTHROPIC_BASE_URL |
要检测运行时配置变更,可以使用 ConfigChange hooks 记录修改,或在生效前阻止未授权变更。
对于更强的强制执行保证,请在已加入 MDM 的设备上使用 endpoint-managed settings。
另请参阅
与 Claude Code 配置管理相关的页面:
- Settings:完整配置参考,包含所有可用设置
- Endpoint-managed settings:IT 通过设备下发的托管设置
- Authentication:配置用户访问 Claude Code
- Security:安全防护与最佳实践
常见问题
服务器管理设置下发后,用户还能改本地设置吗?
可以改本地 settings.local.json,但服务器管理设置优先级更高,遵循 settings hierarchy。也就是说,管理员禁用的功能,用户不能靠本地覆盖重新打开。
多个组织的用户会收到哪一套设置?
用户只会接收登录时所属的活跃组织设置。若用户属于多个组织,当前活跃会话决定使用哪套设置。
怎么确认服务器管理设置已经生效?
在 Claude Code 中运行 /status,可以看到当前认证类型和来自服务器的配置。你也可以配置 ConfigChange hook 来记录所有运行时配置变更。