Appearance
服务器管理设置
服务器管理设置让管理员通过 Claude.ai Web 界面向所有组织用户集中下发 Claude Code 配置,无需设备管理基础设施。Teams 和 Enterprise 计划可用,支持权限规则、hooks、环境变量等所有设置键。设置在认证时自动推送,每小时轮询更新,支持 forceRemoteSettingsRefresh 实现 fail-closed 启动。不支持 Bedrock/Vertex/Foundry 等第三方提供商。
服务器管理设置允许管理员通过 Claude.ai 的 Web 界面集中配置 Claude Code。Claude Code 客户端在用户使用组织凭据认证时自动接收这些设置。适合没有设备管理基础设施、或需要为非托管设备用户管理设置的组织。
前提条件
- Claude for Teams 或 Claude for Enterprise 计划
- Teams 版需要 Claude Code v2.1.38+,Enterprise 版需要 v2.1.30+
- 能访问
api.anthropic.com
选择:服务器管理 vs 端点管理
| 方式 | 最适合 | 安全模型 |
|---|---|---|
| 服务器管理设置 | 没有 MDM 的组织,或非托管设备上的用户 | 认证时从 Anthropic 服务器下发 |
| 端点管理设置 | 有 MDM 或端点管理的组织 | 通过 MDM 配置文件、注册表策略或托管设置文件部署到设备 |
如果设备已注册 MDM,端点管理设置提供更强的安全保证,因为设置文件可在操作系统级别防止用户修改。
配置服务器管理设置
步骤 1:在 Claude.ai 中导航到 Admin Settings > Claude Code > Managed settings。
步骤 2:以 JSON 定义配置。支持 settings.json 中所有可用设置,包括钩子、环境变量和仅管理员设置。
强制执行权限拒绝列表示例:
json
{
"permissions": {
"deny": [
"Bash(curl *)",
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
],
"disableBypassPermissionsMode": "disable"
}
}全组织运行审计脚本的钩子示例:
json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "/usr/local/bin/audit-edit.sh" }
]
}
]
}
}步骤 3:保存更改。Claude Code 客户端在下次启动或每小时轮询时收到更新的设置。
访问控制
可管理服务器管理设置的角色:
- Primary Owner
- Owner
将访问权限限制为受信任人员,因为设置变更会应用于组织内所有用户。
当前限制
测试版期间的限制:
- 设置统一应用于组织内所有用户,尚不支持按组配置
- MCP 服务器配置无法通过服务器管理设置分发
设置下发机制
优先级
服务器管理设置和端点管理设置都位于 Claude Code 设置层级的最高层,其他任何设置级别(包括命令行参数)都无法覆盖。
在管理层级内,第一个提供非空配置的来源胜出:服务器管理设置先检查,再检查端点管理设置。两者不合并:如果服务器管理设置下发了任何键值,端点管理设置会被完全忽略;如果服务器管理设置下发了空内容,才应用端点管理设置。
如果你在管理控制台清除了服务器管理配置,意图回退到端点管理的 plist 或注册表策略,请注意缓存设置会在客户端机器上持续存在,直到下次成功获取。运行 /status 查看当前活跃的管理来源。
获取和缓存行为
Claude Code 在启动时从 Anthropic 服务器获取设置,并在活跃会话期间每小时轮询更新。
首次启动(无缓存设置):
- 异步获取设置
- 如果获取失败,Claude Code 在没有管理设置的情况下继续运行
- 设置加载前有短暂的未强制执行窗口
后续启动(有缓存设置):
- 启动时立即应用缓存设置
- 在后台获取最新设置
- 缓存设置在网络故障中持续有效
Claude Code 无需重启即可自动应用设置更新,但 OpenTelemetry 配置等高级设置需要完整重启才能生效。
强制失败时关闭(fail-closed 启动)
默认情况下,如果启动时远程设置获取失败,CLI 会在没有管理设置的情况下继续运行。对于这段短暂的未强制执行窗口不可接受的环境,可以在管理设置中设置 forceRemoteSettingsRefresh: true:
json
{
"forceRemoteSettingsRefresh": true
}启用此设置后,CLI 在启动时阻塞,直到远程设置成功获取。如果获取失败,CLI 退出而不是继续运行。此设置具有自持续性:一旦从服务器下发,也会缓存到本地,使后续启动在新会话首次成功获取之前就强制执行相同行为。
启用前请确保网络策略允许访问 api.anthropic.com,否则 CLI 在启动时退出,用户无法启动 Claude Code。
安全审批对话框
某些可能存在安全风险的设置在应用前需要用户明确批准:
- Shell 命令设置:执行 Shell 命令的设置
- 自定义环境变量:不在已知安全允许列表中的变量
- 钩子配置:任何钩子定义
用户必须批准才能继续。如果用户拒绝,Claude Code 退出。
使用
-p标志的非交互模式下,Claude Code 跳过安全对话框,直接应用设置。
平台可用性
服务器管理设置需要直接连接到 api.anthropic.com,使用以下第三方模型提供商时不可用:
- Amazon Bedrock
- Google Vertex AI
- Microsoft Foundry
- 通过
ANTHROPIC_BASE_URL或 LLM 网关配置的自定义 API 端点
安全注意事项
服务器管理设置提供集中式策略执行,但作为客户端控制运行。在非托管设备上,具有管理员或 sudo 访问权限的用户可以修改 Claude Code 二进制文件、文件系统或网络配置。
| 场景 | 行为 |
|---|---|
| 用户编辑缓存的设置文件 | 篡改的文件在启动时应用,但下次服务器获取时正确设置会恢复 |
| 用户删除缓存的设置文件 | 发生首次启动行为:异步获取设置,有短暂未强制执行窗口 |
| API 不可用 | 如有缓存则应用缓存设置,否则直到下次成功获取前不强制执行。设置了 forceRemoteSettingsRefresh: true 时,CLI 退出而不是继续 |
| 用户使用不属于管理组织的账号认证 | 不下发设置 |
用户设置了非默认的 ANTHROPIC_BASE_URL | 使用第三方 API 提供商时绕过服务器管理设置 |
要检测运行时配置变更,使用 ConfigChange 钩子记录修改或阻止未授权变更。
相关资源
常见问题
Q: 服务器管理设置下发后,用户还可以修改本地设置吗?
A: 用户可以修改本地 settings.local.json,但服务器管理设置的优先级高于用户设置(遵循设置层级)。也就是说,如果管理员禁用了某个功能,用户无法在本地覆盖开启它。
Q: 多个组织的用户会收到哪个组织的设置?
A: 用户只接收其登录时所属的活跃组织的设置。如果用户属于多个组织,当前活跃的会话决定使用哪套设置。
Q: 如何验证服务器管理设置是否已生效?
A: 在 Claude Code 中运行 /status 命令,会显示当前认证类型和来自服务器的配置。也可以通过配置 ConfigChange Hook 来记录所有运行时配置变更。