3. 身份与访问管理(IAM):统一身份认证、单点登录(SSO)、多因素认证(MFA)、身份生命周期管理
聊到零信任,很多人第一反应是网络分段、微隔离。但我个人觉得,身份才是零信任真正的基石。你想想看,零信任的核心假设是“网络内外部都不可信”,那凭什么决定谁能访问什么资源?凭的就是身份。
这一章,我们就来拆解 IAM 的四个关键模块:统一身份认证、单点登录、多因素认证,以及身份生命周期管理。嗯,这里要注意,它们不是孤立的技术选型,而是一套环环相扣的体系。
3.1 统一身份认证:把散落的身份收拢起来
很多企业早期都是“烟囱式”建设——CRM 一套用户库,OA 一套,财务系统又一套。员工要记三四个密码,IT 部门要维护七八个目录。这不仅是体验差,更是巨大的安全漏洞。
统一身份认证,说白了就是建立一个唯一的身份源。所有系统都认这一个源,不再各自为政。
3.1.1 身份源的选择
我个人习惯把身份源分为三类,你在选型时可以对照看看:
| 类型 | 典型产品 | 适用场景 | 注意点 |
|---|---|---|---|
| 本地目录 | Microsoft Active Directory | 传统企业、Windows 生态为主 | 扩展性有限,云场景适配麻烦 |
| 云身份服务 | Azure AD、Okta、Auth0 | 多云、SaaS 应用多的企业 | 数据主权、合规要求 |
| 开源方案 | Keycloak、FreeIPA | 预算有限、定制需求强 | 运维成本较高 |
我在项目中遇到过一家金融客户,他们坚持用 AD 做唯一源,但后来上云时发现 AD 和云应用的集成非常痛苦。最后不得不加了一层 Azure AD 做同步桥接。所以我的建议是:提前规划好身份源的演进路径,别等业务跑起来了再改。
3.1.2 认证协议的选择
统一身份认证不只是建个用户库,还得定好“怎么认”。目前主流协议就三个:
- LDAP:老牌协议,适合内部系统,但安全性较弱,不建议暴露到公网。
- SAML 2.0:基于 XML 的断言,企业级 SaaS 应用支持好,但比较重。
- OIDC (OpenID Connect):基于 OAuth 2.0,轻量、适合移动端和单页应用,是目前的主流趋势。
3.2 单点登录(SSO):一次认证,处处通行
SSO 是统一身份认证的自然延伸。用户登录一次,就能访问所有授权的应用,不用反复输密码。
但 SSO 有个容易被忽视的问题:单点故障。如果 SSO 服务挂了,所有应用都进不去。我曾经在项目里吃过这个亏——凌晨两点,SSO 服务宕机,全公司没法办公。后来我们做了两件事:
- SSO 服务本身要集群部署,至少跨可用区。
- 设计离线令牌机制,允许用户在短时间内使用缓存的令牌访问部分应用。
3.2.1 SSO 的实现模式
常见的 SSO 实现方式有几种:
- 反向代理模式:所有流量先经过代理,代理负责认证。适合老系统改造,不改应用代码。
- Agent/插件模式:在应用服务器上装插件,拦截请求做认证。适合 Java、.NET 等统一技术栈。
- 标准协议模式:应用直接集成 OIDC/SAML 客户端库。最灵活,但改造成本高。
我个人比较推荐反向代理 + 标准协议混合。老系统用代理兜底,新系统直接集成协议。这样既保护了历史投资,又为未来留了扩展空间。
3.3 多因素认证(MFA):密码不够,再加一把锁
密码泄露是常态。根据 Verizon 的数据报告,超过 80% 的数据泄露和弱口令或密码泄露有关。所以零信任里,MFA 不是可选项,是必选项。
MFA 的三个因素:
- 你知道的:密码、PIN 码
- 你拥有的:手机、硬件令牌、智能卡
- 你是什么:指纹、人脸、虹膜
实际部署时,我建议至少启用两个不同因素。比如密码 + 手机验证码,或者密码 + 生物识别。
3.3.1 MFA 的部署策略
不是所有场景都需要 MFA。如果每次访问都弹 MFA,员工会疯掉。我的做法是基于风险做自适应 MFA:
| 风险等级 | 触发条件 | MFA 要求 |
|---|---|---|
| 低风险 | 内网、常用设备、工作时间 | 仅密码(或 SSO 会话有效) |
| 中风险 | 外网、新设备、非工作时间 | 密码 + TOTP |
| 高风险 | 异地登录、异常行为、敏感操作 | 密码 + 硬件令牌 + 管理员审批 |
3.4 身份生命周期管理:从入职到离职,全程可控
身份不是静态的。员工入职、转岗、离职,身份权限都要跟着变。很多安全事件就出在“人走了,账号没删”上。
身份生命周期管理,核心就是自动化。手动操作太慢,还容易出错。
3.4.1 四个关键阶段
- 创建:HR 系统触发,自动在身份源创建账号,分配默认权限。
- 变更:转岗或晋升,自动调整权限组,回收旧权限。
- 暂停:长期休假或异常行为,临时禁用账号,保留数据。
- 删除:离职流程触发,自动回收所有权限,归档或删除账号。
我在项目中遇到过最典型的问题:权限回收不及时。一个员工离职了,IT 忘了删账号,三个月后这个账号被用来发起攻击。后来我们做了两件事:
- HR 系统和 IAM 系统打通,离职流程自动触发账号禁用。
- 设置定期账号审计,每周跑一次报告,找出僵尸账号。
3.4.2 权限模型:RBAC 还是 ABAC?
权限管理是生命周期里的核心。两种主流模型:
- RBAC(基于角色的访问控制):按角色分配权限。简单直观,适合组织架构稳定的企业。
- ABAC(基于属性的访问控制):按用户属性、资源属性、环境条件动态计算权限。更灵活,适合复杂场景。
我的建议是:以 RBAC 为基础,在关键场景叠加 ABAC。比如,普通员工按角色有“查看报表”权限,但 ABAC 可以再加一条:只有 IP 在内网且时间在 9:00-18:00 才能查看。
3.5 知识体系总览
下面这张图,把 IAM 在零信任中的位置和核心模块串起来了。你可以把它当作本章的思维导图:
3.6 落地建议
最后,给你几个我在实战中总结的落地建议:
- 先统一身份源,再谈其他。 没有唯一的身份源,SSO、MFA 都是空中楼阁。
- MFA 要分阶段推行。 先覆盖 VPN、管理员、敏感系统,再逐步扩展到全员。
- 生命周期管理一定要自动化。 手动操作是安全漏洞的温床。
- 定期做权限审计。 至少每季度一次,清理僵尸账号和过度授权。