Skip to content
FunCoding

Search

Search docs, agents, posts, Skills and MCP servers

服务端托管设置

在 claude.ai 管理后台集中配置 Claude Code,无需设备管理基础设施:要求、与端点托管的取舍、配置步骤、验证、获取与缓存行为、限制。

服务端托管设置让组织 Owner 在 claude.ai 控制台的 Admin Settings > Claude Code > Managed settings 里集中配置 Claude Code。用户用符合条件的凭据认证后,Claude Code 客户端会自动获取这些设置(具体哪些平台支持服务端托管下发,见官方的平台可用性一节)。它适用于 Claude for Teams 和 Claude for Enterprise 客户。

要求

  • Claude for Teams 或 Enterprise 套餐
  • 在 Claude 组织里是 Owner 或 Primary Owner 角色,才能查看和编辑
  • 能访问 api.anthropic.com

服务端托管 vs 端点托管

方式适合安全模型
服务端托管设置没有 MDM 的组织,或用户在非托管设备上启动时从 Anthropic 服务器获取,会话中每小时刷新
端点托管设置有 MDM / 端点管理的组织通过 MDM 配置文件、注册表策略或托管设置文件部署到设备

如果设备已经纳入 MDM,端点托管设置提供更强的安全保证,因为设置文件可以在操作系统层面防止用户修改。端点托管设置不会到达 Anthropic 托管环境里的云端会话,所以开发者会用云端会话的组织要考虑服务端托管。

配置步骤

  1. 在 claude.ai 控制台打开 Admin Settings > Claude Code > Managed settings。如果链接把你重定向到别的页面,说明账号没有所需角色(Admin 和其他非 Owner 角色看不到也改不了),请找 Owner 或 Primary Owner。

  2. 以 JSON 定义设置:settings.json 里的所有设置都支持(仅限 OS 级策略下发的少数设置除外),包括 hooks、环境变量和仅托管可用的设置。

    下面的例子强制一份权限拒绝列表,禁止用户绕过权限,并把权限规则限制为只用托管设置里定义的:

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

    Bash(curl *) 匹配的是 Claude 写出来的 curl,不匹配 /usr/bin/curl 或 sh -c 'curl …';要不依赖命令文本的网络强制,应配合沙箱的网络设置。

    hooks 的格式与 settings.json 相同,例如在组织范围内每次文件编辑后运行审计脚本:

    {
      "hooks": {
        "PostToolUse": [
          { "matcher": "Edit|Write", "hooks": [{ "type": "command", "command": "/usr/local/bin/audit-edit.sh" }] }
        ]
      }
    }
  3. 保存后,用户下次启动或会话中的刷新时就会拿到设置。

验证设置已送达

在 Claude Code 里查看状态,可以看到几种情形:已加载下发的设置;组织没有配置服务端托管设置;获取失败(含原因,以及是否仍有缓存策略生效);Claude Code 跳过了获取(含原因)。

访问控制

只有 Primary Owner 和 Owner 能编辑这些设置。

当前限制

  • 设置对组织里的所有用户统一生效,暂不支持按组配置
  • 不能通过服务端托管设置分发 managed-mcp.json 文件,改为在其中下发 allowedMcpServers 和 deniedMcpServers 策略键
  • 仅限 OS 级策略来源的设置(如 policyHelper、wslInheritsWindowsSettings)不会被采纳,需要用 MDM 或系统 managed-settings.json 部署

设置的下发、优先级与缓存

  • 优先级:服务端托管属于托管层,与端点托管设置在托管层内有明确的优先顺序;少数键有跨来源例外(如沙箱允许列表锁、env 块按键合并、allowedProviders 的合并规则、网关登录相关键只读取特定来源)
  • 获取与缓存:开发者在启动时登录(首次运行或 /logout 之后),Claude Code 最多等待 5 秒让获取完成再打开会话,这样策略从第一屏就生效;其他启动情形下会话先打开、获取在后台继续,所以设置加载和限制生效之间有短暂窗口
  • 获取失败时,Claude Code 在没有服务端托管设置的情况下继续运行,并在交互会话里警告(端点托管设置仍然生效);如果某个托管来源设置了 forceRemoteSettingsRefresh,则可以让它在获取失败时拒绝启动(fail-closed)
  • 缓存在 ~/.claude/remote-settings.json,启动时立即应用(但缓存的 modelPricing 和 managedMcpServers 以及部分环境变量要等服务端确认后才生效),网络故障时缓存继续有效
  • 一些变量不会通过服务端托管设置生效,如代理和 TLS 配置、API 路由与提供商选择、认证凭据、配置目录选择器等,需要用端点方式部署

下发设置里的无效条目的处理规则、平台可用性清单等细节,以官方原文为准。