身份与访问管理(IAM)
身份与访问管理(Identity and Access Management,IAM)管理主体的身份、凭据与访问权限,涉及账号开通、登录认证、授权、身份联合和访问撤销。Microsoft 的 IAM 介绍将身份生命周期与访问管理纳入同一体系;用户认证是其中验证身份的一环。
只实现“密码正确后返回一个 Token”,还没有形成可以持续运行的身份与权限体系。账号关联、设备管理、角色分配、离职停权与恢复,都需要和登录状态、资源权限保持一致。
专题以面向浏览器和移动端的业务系统为背景,讨论普通用户、企业成员与管理人员的身份。实名认证、支付风控和机器身份只说明边界,不展开行业合规规则或服务间认证协议。
身份、认证、授权与审计
IAM 中的几类职责需要分别设计:
| 职责 | 输入 | 输出 |
|---|---|---|
| 身份管理:主体是谁、是否仍有效 | 注册、邀请、组织目录与成员变更 | 账号、身份关联与成员生命周期状态 |
| 认证:请求代表谁 | 密码、认证器、会话或令牌 | 已验证的主体与认证上下文 |
| 授权:能否执行操作 | 主体、租户、资源、动作与业务状态 | 允许或拒绝 |
| 审计:发生过什么 | 操作者、结果、目标、时间与追踪标识 | 可追溯的安全事件 |
例如“企业管理员删除成员”:身份管理维护管理员和目标成员的状态;登录解决操作者身份;授权检查其当前企业角色;业务逻辑处理最后一名管理员等约束;审计记录谁在何时删除了谁。把 is_admin 写进长期令牌,无法完整表达这些条件。
专题文章
账号与登录状态
- 认证边界与方案选择:身份、凭据、会话与令牌的关系,以及不同客户端的架构选择。
- 账号模型与生命周期:账号、登录标识、外部身份、成员关系、绑定、合并与注销。
- 密码、验证码与账号恢复:密码存储、登录限流、验证码消费与恢复事务。
- Cookie、Session 与设备管理:浏览器行为、会话轮换、超时、多设备退出与缓存一致性。
- Token、JWT 与刷新撤销:令牌验证、刷新轮换、重用检测与密钥管理。
身份联合与权限边界
- OAuth 2.0 与 OpenID Connect:授权码、PKCE、回调校验和第三方账号映射。
- 单点登录与企业身份接入:独立应用会话、统一退出、成员开通与离职撤权。
- 多因素认证与 Passkey:TOTP、WebAuthn、提升认证强度和认证器恢复。
- 授权、角色与多租户隔离:角色、属性、关系、访问控制列表,以及对象级权限。
工程落地
- 安全防护、审计与运行保障:威胁对应的防线、日志、故障策略、指标与验证。
- IAM 系统参考设计:组合前述机制,给出数据约束、接口契约与关键事务。
架构选择的起点
对于自有浏览器业务,优先评估服务端 Session 与同源后端;多种客户端、第三方 API 委托访问或跨组织身份接入,再引入对应协议。系统需要 OIDC 时,可以接入成熟身份提供方,应用继续维护本地账号、成员和资源权限。
这是一项工程取舍:集中保存状态便于撤销,但增加在线存储依赖;本地验证令牌减少查询,但必须承受或补偿权限与账号状态的传播延迟。具体比较见认证边界与方案选择。
贯穿专题的设计约束
- 内部账号 ID 稳定,邮箱、手机号和外部登录方式可以变化。
- “登录成功”“通过第二因素”“有权访问当前租户”分别判断。
- 密码重置、封禁与退出必须定义已有会话如何失效。
- 注册、验证码消费、账号绑定和刷新轮换都处理并发与重复请求。
参考资料
- Microsoft:什么是标识和访问管理(IAM)?