服务端托管设置
在 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 托管环境里的云端会话,所以开发者会用云端会话的组织要考虑服务端托管。
配置步骤
-
在 claude.ai 控制台打开 Admin Settings > Claude Code > Managed settings。如果链接把你重定向到别的页面,说明账号没有所需角色(Admin 和其他非 Owner 角色看不到也改不了),请找 Owner 或 Primary Owner。
-
以 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" }] } ] } } -
保存后,用户下次启动或会话中的刷新时就会拿到设置。
验证设置已送达
在 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 路由与提供商选择、认证凭据、配置目录选择器等,需要用端点方式部署
下发设置里的无效条目的处理规则、平台可用性清单等细节,以官方原文为准。