跳转到内容

IAM 身份与访问管理

企业里谁能用、用谁的账号、能接哪些工具、能碰哪些目录——这套问题统称 IAM(Identity and Access Management)。Claude Code 的 IAM 像一个门禁系统:进门刷卡(强制登录方式)、自动把你领到对的工位(自动选组织)、能进的房间有白名单(MCP 服务器授权)、能去的楼层有限定(额外目录授权)。

这一篇讲清楚 Claude Code 的 IAM 体系:权限层级、关键 managed-settings.json 字段、怎么锁 bypassPermissions、怎么强制登录方式与组织、怎么管 MCP 服务器白名单。

Claude Code 的配置分四层(详见 Settings),优先级从高到低:

企业级 managed-settings.json > 用户级 > 项目级 > 本地级

企业级最高——IT 在 managed-settings.json 里定的红线,员工、项目、本地三层都改不动。这是 IAM 设计的基础:企业的安全红线不可绕过。

层级 谁来维护 作用域 能改吗
企业级 managed-settings.json IT / 安全 全公司 员工改不动
用户级 ~/.claude/settings.json 个人 当前用户所有项目 自己改
项目级 .claude/settings.json 团队 当前项目 团队改
本地级 .claude/settings.local.json 个人 当前项目、本机 自己改

bypassPermissions 模式(详见 权限模式)让 Claude 不再每次问你、直接执行所有操作——开发时省心,但企业里是高风险:一次失控的命令可能造成大事故。

managed-settings.json 里这样锁:

{
"disableBypassPermissionsMode": "disable"
}

读这段配置:disableBypassPermissionsMode: "disable" 把 bypassPermissions 模式禁用——员工再怎么切都切不进去,必须每个操作走权限审批。这是企业部署的默认基线

Claude Code 支持两种账号:

  • claudeai:Claude.ai 账号(Pro / Max / Team 订阅)
  • console:Claude Console 账号(API 预付)

企业通常只让员工走其中一种。forceLoginMethod 把它锁死:

{
"forceLoginMethod": "console"
}

读这段配置:forceLoginMethod: "console" 强制所有人走 Console 账号(API 计费、便于成本追踪与审计)。如果你想全公司走 Claude.ai 团队订阅,就配 "claudeai"

一个企业账号下可能有多个组织(org)——比如按部门拆、按业务线拆。员工登录后默认落进哪个 org,靠 forceLoginOrgUUID

{
"forceLoginOrgUUID": "your-org-uuid-here"
}

读这段配置:forceLoginOrgUUID 把所有人自动归到指定 org——不用员工自己挑、不会归错、用量与成本都进对的 org。

your-org-uuid-here 替换成你在 Console 里看到的组织 UUID。

MCP 服务器能读你的 GitHub、Slack、数据库——企业里不能让员工随便接managed-settings.json 里有四个相关字段:

字段 作用
allowedMcpServers 白名单——只允许接这些 MCP 服务器
deniedMcpServers 黑名单——禁止接这些 MCP 服务器
useEnterpriseMcpConfigOnly 设为 true 后,只用企业下发的 MCP 配置,员工/项目级 MCP 配置被忽略
{
"allowedMcpServers": [
"github",
"internal-jira",
"internal-confluence"
]
}

只有这三个 MCP 服务器能接,员工自己想加别的会被拒。

{
"useEnterpriseMcpConfigOnly": true
}

设上之后,企业通过 managed-mcp.json 下发的 MCP 配置是唯一来源——员工级、项目级的 MCP 配置都被忽略。这是最严的管控方式:IT 把内部 Jira、Confluence、数据库代理全在 managed-mcp.json 里写好,员工一打开 Claude Code 就自动加载,没人能私下接外部 MCP。

额外目录授权:additionalDirectories

Section titled “额外目录授权:additionalDirectories”

默认情况下,Claude Code 在一个目录下启动,就只能访问那个目录。但有些场景需要让它多访问几个目录——比如 monorepo 之外还引用了某个共享库。

managed-settings.json 里:

{
"additionalDirectories": [
"/Users/shared/your-company-libs",
"/opt/internal/templates"
]
}

读这段配置:additionalDirectories 把这两个目录也加进 Claude 可访问范围——员工不必每次手动加,IT 统一配好。

注意:这个字段是企业级授权的额外目录,作用域是全公司。给单个项目加目录、给员工个人加目录,分别走项目级、用户级 settings.json。

想锁的 字段 取值
禁用 bypassPermissions disableBypassPermissionsMode "disable"
强制走 Console 账号 forceLoginMethod "console"
强制走 Claude.ai 账号 forceLoginMethod "claudeai"
自动归到指定 org forceLoginOrgUUID "your-org-uuid"
只允许这几个 MCP allowedMcpServers ["github", "internal-jira"]
禁止这几个 MCP deniedMcpServers ["external-db-proxy"]
只用企业 MCP 配置 useEnterpriseMcpConfigOnly true
全公司可访问的额外目录 additionalDirectories ["/path/to/libs"]

IT 第一次配 managed-settings.json 时,建议从下面这套最小基线起步,再按需收紧:

{
"disableBypassPermissionsMode": "disable",
"forceLoginMethod": "console",
"forceLoginOrgUUID": "your-org-uuid-here",
"useEnterpriseMcpConfigOnly": true,
"additionalDirectories": []
}

这套基线的含义:

  • 不许绕过权限——所有敏感操作都要审批。
  • 统一走 Console——API 计费、便于追踪。
  • 统一归到一个 org——成本不乱跑。
  • 只用企业 MCP——MCP 来源受控。
  • 暂不加额外目录——需要时再加。

IAM 管的是「谁能干啥」,但它管不到「Claude 干的时候能碰啥」。完整的企业安全是三层叠起来:

管什么 配在哪
IAM 谁能登录、能用哪些 MCP、能碰哪些目录 managed-settings.json
沙箱 Claude 跑命令时能写哪、能联哪 sandbox settings.json,见 沙箱
网关 Claude 调模型时数据走哪、谁认证 LLM 网关,见 网络与 LLM 网关

三层叠起来,企业部署的「门禁 + 无菌操作台 + 总关卡」就齐了。下一站:安全与合规——讲讲 Anthropic 的合规认证和 Claude Code 的内置防护。