IAM 身份与访问管理
IAM 身份与访问管理
Section titled “IAM 身份与访问管理”企业里谁能用、用谁的账号、能接哪些工具、能碰哪些目录——这套问题统称 IAM(Identity and Access Management)。Claude Code 的 IAM 像一个门禁系统:进门刷卡(强制登录方式)、自动把你领到对的工位(自动选组织)、能进的房间有白名单(MCP 服务器授权)、能去的楼层有限定(额外目录授权)。
这一篇讲清楚 Claude Code 的 IAM 体系:权限层级、关键 managed-settings.json 字段、怎么锁 bypassPermissions、怎么强制登录方式与组织、怎么管 MCP 服务器白名单。
权限层级:企业级最高
Section titled “权限层级:企业级最高”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
Section titled “锁死 bypassPermissions”bypassPermissions 模式(详见 权限模式)让 Claude 不再每次问你、直接执行所有操作——开发时省心,但企业里是高风险:一次失控的命令可能造成大事故。
managed-settings.json 里这样锁:
{ "disableBypassPermissionsMode": "disable"}读这段配置:disableBypassPermissionsMode: "disable" 把 bypassPermissions 模式禁用——员工再怎么切都切不进去,必须每个操作走权限审批。这是企业部署的默认基线。
强制登录方式:forceLoginMethod
Section titled “强制登录方式:forceLoginMethod”Claude Code 支持两种账号:
claudeai:Claude.ai 账号(Pro / Max / Team 订阅)console:Claude Console 账号(API 预付)
企业通常只让员工走其中一种。forceLoginMethod 把它锁死:
{ "forceLoginMethod": "console"}读这段配置:forceLoginMethod: "console" 强制所有人走 Console 账号(API 计费、便于成本追踪与审计)。如果你想全公司走 Claude.ai 团队订阅,就配 "claudeai"。
自动选组织:forceLoginOrgUUID
Section titled “自动选组织:forceLoginOrgUUID”一个企业账号下可能有多个组织(org)——比如按部门拆、按业务线拆。员工登录后默认落进哪个 org,靠 forceLoginOrgUUID:
{ "forceLoginOrgUUID": "your-org-uuid-here"}读这段配置:forceLoginOrgUUID 把所有人自动归到指定 org——不用员工自己挑、不会归错、用量与成本都进对的 org。
your-org-uuid-here 替换成你在 Console 里看到的组织 UUID。
MCP 服务器白名单
Section titled “MCP 服务器白名单”MCP 服务器能读你的 GitHub、Slack、数据库——企业里不能让员工随便接。managed-settings.json 里有四个相关字段:
| 字段 | 作用 |
|---|---|
allowedMcpServers |
白名单——只允许接这些 MCP 服务器 |
deniedMcpServers |
黑名单——禁止接这些 MCP 服务器 |
useEnterpriseMcpConfigOnly |
设为 true 后,只用企业下发的 MCP 配置,员工/项目级 MCP 配置被忽略 |
{ "allowedMcpServers": [ "github", "internal-jira", "internal-confluence" ]}只有这三个 MCP 服务器能接,员工自己想加别的会被拒。
企业 MCP 配置独占
Section titled “企业 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"] |
企业最小基线配置
Section titled “企业最小基线配置”IT 第一次配 managed-settings.json 时,建议从下面这套最小基线起步,再按需收紧:
{ "disableBypassPermissionsMode": "disable", "forceLoginMethod": "console", "forceLoginOrgUUID": "your-org-uuid-here", "useEnterpriseMcpConfigOnly": true, "additionalDirectories": []}这套基线的含义:
- 不许绕过权限——所有敏感操作都要审批。
- 统一走 Console——API 计费、便于追踪。
- 统一归到一个 org——成本不乱跑。
- 只用企业 MCP——MCP 来源受控。
- 暂不加额外目录——需要时再加。
与沙箱、网关的配合
Section titled “与沙箱、网关的配合”IAM 管的是「谁能干啥」,但它管不到「Claude 干的时候能碰啥」。完整的企业安全是三层叠起来:
| 层 | 管什么 | 配在哪 |
|---|---|---|
| IAM | 谁能登录、能用哪些 MCP、能碰哪些目录 | managed-settings.json |
| 沙箱 | Claude 跑命令时能写哪、能联哪 | sandbox settings.json,见 沙箱 |
| 网关 | Claude 调模型时数据走哪、谁认证 | LLM 网关,见 网络与 LLM 网关 |
三层叠起来,企业部署的「门禁 + 无菌操作台 + 总关卡」就齐了。下一站:安全与合规——讲讲 Anthropic 的合规认证和 Claude Code 的内置防护。