IAM 和 sso ums passport 的关系?
下面我把 IAM、SSO、UMS、Passport 之间的关系,用体系化 + 超清晰的方式讲透。这四个你都在做,但容易混淆边界,我给你一个业内通用、平台级的理解框架。
🧩 先一句话总概括
IAM 是一个“超级集合”,SSO / UMS / Passport 都是 IAM 的子模块。 你现在做的 UMS + Passport 实际是 IAM 的底座,但还不是一个完整的 IAM。
🧱 1. 各模块一句话定义
| 模块 | 作用 | 是否属于 IAM |
|---|---|---|
| UMS(User Management System) | 管理用户 / 组织 / 角色 / 属性 | ✔ IAM 的一部分(身份层 Identity) |
| Passport(认证中心) | 登录、Token、Session、安全 | ✔ IAM 的一部分(认证层 Authentication) |
| SSO(Single Sign-On) | 多系统统一登录 | ✔ Passport 之上的应用能力 |
| IAM(Identity & Access Management) | 身份 + 认证 + 授权 + 策略 + 权限治理 | ⭐ 完整体系(最大集合) |
🧊 2. 它们之间的层级关系图(最清晰的解释)
[ IAM 权限中心 ]
┌─────────────────────────────────┐
│ │
│ 身份管理(UMS) │ ← 用户、组织、角色、岗位、属性
│ 认证中心(Passport) │ ← 登录、Token、MFA、风险识别
│ 单点登录(SSO) │ ← 基于 Passport 的多系统统一登录
│ 授权中心(RBAC/ABAC) │ ← 权限、策略、数据权限
│ 资源中心(API/菜单/按钮) │
│ 审计中心(日志/追踪) │
│ 策略引擎(Policy Engine) │
└─────────────────────────────────┘
简单说:
- UMS = “我是谁”
- Passport = “我怎么证明我是我”
- SSO = “我登录一次就行”
- IAM = “我有什么权限,我能干什么”
IAM 是总管家,其他都是部门。
🧱 3. 四者间最清晰责任边界(企业级)
① UMS —— 身份层(Identity Layer)
负责:
- 用户
- 组织(部门)
- 用户组
- 岗位、职级
- 用户属性(ABAC 的基础)
- 角色集合(RBAC 的基础)
UMS 关注 “谁”。
② Passport —— 认证层(Authentication Layer)
负责:
- 登录
- Session / Token
- 刷新 Token
- OAuth2 / OIDC(可选)
- MFA、风险识别(可选)
Passport 关注 “如何证明我是我”。
③ SSO —— 登录体验层(Single Sign-On)
负责:
- 全系统统一登录体验
- 各子系统 Token 派发
- 登录态保持
- 退出统一处理
SSO 关注 “一次登录,全网通行”。
注意: SSO 不做权限!只是登录!
④ IAM —— 授权层(Authorization Layer)
负责:
- RBAC(角色权限)
- ABAC(属性权限)
- ReBAC(关系权限,未来趋势)
- 资源管理(菜单、按钮、接口、数据字段)
- 策略管理(Policy)
- 权限判定(Policy Engine)
- 权限审计与变更记录
IAM 关注 “我能干什么?什么时候能干?能对谁干?”
IAM = 身份 + 认证 + 授权 + 审计 + 策略。
🧩 4. 四者之间的完整调用链(你未来的平台会用到)
一个用户访问一个业务系统的完整链路:
Step1: 用户访问系统
Step2: 系统跳转到 Passport 登录(SSO 流程)
Step3: Passport 验证身份(密码/MFA设备/IP风险)
Step4: Passport 颁发 Token(JWT / Session)
Step5: 业务系统拿到 Token,请求 IAM 判断权限(RBAC/ABAC)
Step6: IAM 测策略:用户属性 + 资源属性 + 环境属性
Step7: IAM 返回 Allow / Deny
Step8: 业务系统根据结果执行业务逻辑
所以:
- Passport 做 “你是谁”
- IAM 做 “你能干什么”
这是两个环节,千万不能混。
🧨 5. 一个更好理解的现实类比
| 模块 | 类比现实世界 |
|---|---|
| UMS | 公民数据库(记录所有人的信息) |
| Passport | 出入境办证中心(颁发护照) |
| SSO | 机场快速通道(一次刷证即可进入多个区域) |
| IAM | 安检 + 门禁系统(决定你能进入哪些地方) |
所以:
- 拿到护照 ≠ 能进入任何区域
- SSO 只是减少刷卡次数
- IAM 才是决定权限的真正大脑
🧱 6. 你的 UMS + Passport 距离真正 IAM 还差什么?
你已经有:
✔ 用户 / 角色 / 权限(RBAC) ✔ 登录 / Token(Passport) ✔ 基础 SSO(通过 Token)
你还需要补:
核心能力(必补)
- 资源中心(API/按钮/菜单)统一抽象
- 策略中心(ABAC)
- 策略引擎
- 数据级权限
- 权限实时下发(Cache + Push)
高阶能力(企业级)
- 权限变更审计
- 权限申请与审批(IAM 工作流)
- 系统接入 SPI(统一鉴权 SDK)
- 数百万级关系授权(Zanzibar)
完成这些,你平台就从 “SSO + RBAC” 升级为:
🔥 企业级 IAM 权限中心(对标阿里 / 字节 / 腾讯)
🎯 7. 最终一句话总结
IAM = 身份(UMS) + 认证(Passport/SSO) + 授权(RBAC/ABAC) + 策略引擎 + 审计治理。 SSO 只负责登录,UMS 负责用户基本信息,IAM 才是权限大脑。
正常在实现 IAM 平台的时候,一般拆分为几个子系统?我目前已有 ums passport sso
下面我把“一个企业级 IAM 平台通常拆成哪些子系统”讲得非常清晰,并且结合你的现状(已有:UMS + Passport + SSO)给出推荐架构。
这是所有大厂(阿里、腾讯、字节、华为)统一的拆分方式。
🧩 一、标准 IAM 平台一般拆成 6~8 个子系统
你已经完成了前两个,本质上已经站上了 IAM 一半山腰。
一个完整的企业级 IAM(身份与访问管理)通常包含:
✅ 1. UMS —— 用户与组织系统(Identity)
你已经有了。
负责:
- 用户
- 部门 / 组织树
- 岗位 / 职级
- 用户属性(ABAC 基础)
- 租户(企业级可选)
- 用户生命周期(在职、离职等)
✅ 2. Passport —— 认证系统(Authentication)
你也已经有了。
负责:
- 登录
- Token / Session
- 短信 / 邮箱 / MFA
- 登录风险识别
- 密码策略
- 第三方登录(OAuth2 / OIDC)
✅ 3. SSO —— 单点登录系统(Login Center)
你也有了。
负责:
- 统一登录跳转
- 一次登录多系统通行
- 登出同步
- App / Web 登录打通
注意:SSO 不做任何权限!只是登录入口统一化。
到这里,你已有 3 个模块,但只是“身份 + 认证”。
真正的 IAM 还需要“授权 + 审计 + 策略 + 接入”。
🟧 4. Auth 权限中心(Authorization Center) ⭐重点
这是 IAM 的核心,需要独立为一个子系统。
它决定用户 “能干什么”。
功能:
🔸 RBAC(已有基础)
- 角色管理
- 权限组(system/module/page/button/api)
- 多维权限资源树
🔸 ABAC(需要补)
- 属性模型(User/Resource/Action/Environment)
- 策略管理
- 条件表达式(DSL)
- 数据级权限
🔸 统一鉴权接口(业务系统调用)
- checkPermission(user, resource, action, context)
- getUserPermissions(userId)
这个模块你现在还没有,是你下一步最重要的。
🟧 5. ResourceCenter(资源中心:菜单、按钮、接口)
为什么需要独立出一个 Resource Center?
因为你的“权限”和“资源”是互相依赖的。
资源中心负责:
- 系统注册:system / module
- 菜单管理
- 页面管理
- 按钮/操作点管理
- API 接口管理(URL + 方法)
- 数据资源模型(列、字段、表)
权限系统引用资源系统,不耦合业务。
这是大厂 IAM 必须拆开的模块。
🟧 6. PolicyEngine(策略引擎)
如果你要实现 ABAC / 数据权限,这个模块是必需的。
典型实现方式:
- 自研 DSL(推荐你基于 JsonLogic / SpEL)
- Casbin(支持 RBAC/ABAC)
- OPA Rego(通用)
- Cedar(AWS 授权模型,未来趋势)
功能:
- 策略解析
- 属性获取
- 权限判定(Allow / Deny)
- 缓存(百万级 QPS)
- 回溯与审计集成
🟩 7. AuditCenter(审计中心)
权限系统最大价值不止“有权限”,而是审计 + 责任归因。
审计系统负责:
- 登录审计(Passport)
- 访问审计(Auth)
- 权限变更审计
- 管理操作审计
- 查询溯源(谁看过谁的数据)
- 合规报表(SOX等)
很多企业最后最重视的反而是这个。
🟦 8. AccessGateway(统一网关,可选)
大公司一般会做一个统一网关(可选):
- 统一鉴权
- Token 校验
- RBAC/ABAC 缓存验证
- 流量隔离
- 灰度
如果你未来接入几十个系统,网关会非常必要。
🧱 总结:大厂 IAM 的典型子系统拆分结构
1. UMS:用户组织系统(你已有)
2. Passport:认证中心(你已有)
3. SSO:统一登录系统(你已有)
4. Auth:权限中心(权限模型、授权、判定)
5. Resource Center:资源中心(系统/菜单/按钮/API)
6. Policy Engine:策略引擎(ABAC、RBAC扩展)
7. Audit Center:审计中心(访问、变更、登录)
8. Access Gateway:统一网关(可选)
🔥 如果你要快速做成一个“企业级 IAM”,你可以这么拆:
⭐ 必须做(4 个):
- UMS(已有)
- Passport(已有)
- SSO(已有)
- Auth Center(你下一步)
⭐ 建议做(2 个):
- Resource Center(抽取资源体系)
- Audit Center(审计与溯源)
⭐ 进阶做(1 个):
- Policy Engine(ABAC、数据权限)
这样,你的平台就可以对标:
- 阿里 RAM + 授权中心
- 腾讯 TAPD 权限中心
- 字节 FireAuth
- AWS IAM Policy 模型
子系统
这是一个非常经典且扎实的起步架构。你的 ums + passport/sso + permission 构成了 IAM 的 “最小可行性产品” (MVP),已经能够跑通“用户存在 -> 登录认证 -> 鉴权访问”的主流程。
但是,如果要从“这就一个登录功能”演进为企业级的 “身份中台”,目前的架构在 安全性、合规性、运维效率 和 被集成能力 上会有明显的缺失。
基于你现有的 4 个模块,建议按以下优先级补充完善:
第一优先级:必须补充的“地基”
这些是系统上线运行不可或缺的模块。
1. 审计中心 (Audit / Log Service)
为什么需要: 目前你的架构中,如果有人删库了,或者某个账号深夜异常登录,你可能无法快速追溯。
- 补充内容:
- 操作日志: 记录管理员在
ums和permission里的所有增删改查(如:谁把张三的权限改了)。 - 登录日志: 记录
passport/sso的所有登录行为(IP、设备、时间、成功/失败原因)。 - 鉴权日志: 记录
permission的判定结果(谁访问了什么接口,是被 Allow 还是 Deny)。
- 操作日志: 记录管理员在
2. 应用管理 (App Manager / Client Registry)
为什么需要: sso 和 passport 发放令牌时,必须知道是发给“谁”的。如果你的公司有 20 个内部系统要接入 SSO,你不能把 ClientID 和 Secret 硬编码在数据库里。
- 补充内容:
- 应用注册: 管理接入方(Relying Party)的生命周期。
- 配置管理: 每个应用的回调地址(Redirect URI)、令牌有效期、所需的 Scope(权限范围)、签名公钥/私钥管理。
第二优先级:解决“数据孤岛”和“效率”
当接入系统变多,或者组织架构变复杂时,你需要这些。
3. 同步/分发中心 (Provisioning / Sync Engine)
为什么需要: ums 是主数据,但下游业务系统(如 OA、Jira、GitLab)也需要账号数据。目前你可能需要人工去各个系统建号,或者写死脚本。
- 补充内容:
- 下游推送 (Push): 当
ums新增员工时,自动调下游 API 创建账号(SCIM 协议或自定义 Connector)。 - 上游拉取 (Pull): 如果你们用钉钉/飞书做源头,需要定时把组织架构拉回
ums。
- 下游推送 (Push): 当
4. 审批工作流 (Workflow / Request Center)
为什么需要: permission 模块现在可能只有管理员能操作。业务人员想申请某个系统的权限,现在可能要靠“发邮件”或“吼一声”,缺乏流程管控。
- 补充内容:
- 自助申请: 普通用户登录后,发起“申请 A 系统管理员权限”的工单。
- 审批流: 对接
ums中的 Leader 信息,自动流转给上级审批。
第三优先级:增强“安全”和“体验”
5. 风控与安全策略 (Risk & Security Policy)
为什么需要: passport 仅仅验证密码是不够的。
- 补充内容:
- MFA (多因素认证): 如果你没把 MFA 做在 passport 里,建议单独抽离。
- 策略引擎: 定义规则,例如“连续输错 5 次密码锁定账号”、“禁止非公司 IP 段登录”。
架构映射:新旧对比
为了帮你理清关系,我们将你现有的模块与建议补充的模块进行融合:
| 你的模块 | 标准定位 | 建议拆分/扩充/新增的子系统 |
|---|---|---|
| ums | IDM (Identity) | + 同步中心 (Sync):负责与钉钉/AD/业务系统的数据同步。 + 审批中心 (Workflow):处理入职、权限申请流程。 |
| passport | AuthN (Auth) | + MFA 服务:独立处理短信/OTP验证。 + 风控组件:识别撞库、异地登录。 |
| sso | Federation | + 应用管理 (App Mgr):管理 ClientID/Secret 和回调白名单。 + 会话管理 (Session):统一踢人下线的能力。 |
| permission | AuthZ (Auth) | + 策略引擎 (Policy Engine):如果是复杂场景,从代码逻辑中抽离出规则。 + 审计中心 (Audit):这是全新的,记录上述所有模块的流水。 |
总结建议
如果你资源有限,建议按照以下顺序开发:
- 应用管理 (App Manager):为了配合 SSO 标准协议(OIDC/OAuth2),这个是硬性要求。
- 审计日志 (Audit):为了出事能甩锅(划掉)能追责,这个性价比极高。
- 同步服务:如果系统超过 5 个,手动维护账号会崩溃,此时再做同步。
- IAM 和 sso ums passport 的关系?
- 🧩 先一句话总概括
- 🧱 1. 各模块一句话定义
- 🧊 2. 它们之间的层级关系图(最清晰的解释)
- 🧱 3. 四者间最清晰责任边界(企业级)
- 🧩 4. 四者之间的完整调用链(你未来的平台会用到)
- 🧨 5. 一个更好理解的现实类比
- 🧱 6. 你的 UMS + Passport 距离真正 IAM 还差什么?
- 🎯 7. 最终一句话总结
- 正常在实现 IAM 平台的时候,一般拆分为几个子系统?我目前已有 ums passport sso
- 🧩 一、标准 IAM 平台一般拆成 6~8 个子系统
- ✅ 1. UMS —— 用户与组织系统(Identity)
- ✅ 2. Passport —— 认证系统(Authentication)
- ✅ 3. SSO —— 单点登录系统(Login Center)
- 🟧 4. Auth 权限中心(Authorization Center) ⭐重点
- 🟧 5. ResourceCenter(资源中心:菜单、按钮、接口)
- 🟧 6. PolicyEngine(策略引擎)
- 🟩 7. AuditCenter(审计中心)
- 🟦 8. AccessGateway(统一网关,可选)
- 🧱 总结:大厂 IAM 的典型子系统拆分结构
- 🔥 如果你要快速做成一个“企业级 IAM”,你可以这么拆:
- 子系统
