Skip to content

服务器管理设置

服务器管理设置让管理员通过 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 来记录所有运行时配置变更。