chat
详细展开介绍一下 passport
我们来深入讲讲 Passport(企业级权限管理系统) —— 这是在 UMS(用户管理系统) 和 SSO(单点登录) 之后,企业迈向体系化身份与权限治理的第三层关键基座。
🧭 一、Passport 是什么?
简单来说,Passport 是企业级的权限管理中心(Access Control Center),负责集中管理:
- 谁(用户/角色/部门)
 - 能访问哪些系统(资源)
 - 可以做什么(操作粒度)
 - 在什么条件下(上下文控制,如时间、IP、环境等)
 
它的核心作用是:
让权限有章可循、全域统一、可审可控。
在技术架构中,Passport 一般会集成在 UMS + SSO 之后:
- UMS 解决「用户是谁」
 - SSO 解决「用户怎么登录」
 - Passport 解决「登录后能干什么」
 
🧩 二、Passport 的核心组成模块
我们可以把一个标准的企业级 Passport 系统分为以下几个核心模块:
1. RBAC / ABAC 权限模型
- 
    
RBAC(Role-Based Access Control) 用户通过“角色”获得权限(最常见模式)。 例:
用户A → 角色「部门管理员」 → 权限「审批报销单」 - 
    
ABAC(Attribute-Based Access Control) 根据属性动态判断权限,更灵活。 例:
条件:用户所在部门 == 资源所属部门 && 用户级别 > 3 才能访问该数据。 
✅ 企业中往往采用 “RBAC + ABAC 混合模式”。
2. 资源与操作建模
Passport 会统一抽象出企业的资源结构,比如:
| 资源类型 | 示例资源 | 操作 | 
|---|---|---|
| 系统 | 流程审批系统 | 访问 | 
| 模块 | 报销模块 | 查看、提交、审批 | 
| 数据 | 报销单#1234 | 读取、修改、删除 | 
统一资源模型(URM, Unified Resource Model) 👉 是权限中心的基础,用于支持跨系统、跨领域的权限表达。
3. 策略引擎(Policy Engine)
这是 Passport 的「大脑」:
- 接收访问请求(User + Resource + Action + Context)
 - 根据规则、角色、策略判断是否允许
 - 返回「允许/拒绝」的判定结果
 
常见技术实现:
- 自研 DSL(类似 Policy Script)
 - 使用开源策略引擎如 Casbin、OPA(Open Policy Agent) 等。
 
4. 授权管理(Authorization Service)
Passport 会暴露标准接口供业务系统调用:
| 接口 | 功能 | 
|---|---|
/authorize | 
      判断用户是否有权限 | 
/getUserPerms | 
      获取某用户在某系统下的全部权限 | 
/assignRole | 
      给用户分配角色 | 
/bindResource | 
      给资源绑定操作权限 | 
这些接口往往通过 REST / GraphQL / gRPC 提供。
5. 可视化管理控制台
Passport 通常会提供一个前端管理后台,让管理员方便操作:
- 用户/角色/权限/资源 管理
 - 授权关系图可视化
 - 审计日志查看(谁在何时访问了什么)
 - 批量授权、模板授权
 - 动态策略编辑器
 
6. 审计与合规
安全合规是 Passport 的核心目标之一。
功能包括:
- 权限变更日志(谁改了谁的权限)
 - 访问审计(谁访问了什么)
 - 异常访问报警(越权尝试)
 - 定期权限清理(去除僵尸账号/无用角色)
 
⚙️ 三、Passport 在企业架构中的位置
可以这样理解:
       ┌────────────────────┐
       │  业务系统(CRM/ERP/BI/HR等) │
       └────────┬───────────┘
                 │
                 ▼
       ┌────────────────────┐
       │  Passport(权限中心) │  ← 判断能不能访问
       └────────┬───────────┘
                 │
                 ▼
       ┌────────────────────┐
       │  SSO(登录认证中心) │  ← 判断是谁
       └────────┬───────────┘
                 │
                 ▼
       ┌────────────────────┐
       │  UMS(用户管理中心) │  ← 管理账号、组织、部门
       └────────────────────┘
这是一套典型的 IAM(Identity and Access Management)体系结构。
🚀 四、企业落地实践建议
✅ 1. 从统一资源模型开始
明确全公司系统的“资源、操作”模型,形成统一格式的资源命名(如 system:module:action)。
✅ 2. 优先实现 RBAC,再逐步扩展到 ABAC
RBAC 易于落地、易于理解; ABAC 可在后期通过策略引擎扩展(如临时授权、基于标签控制)。
✅ 3. 打通 UMS + SSO
Passport 依赖于清晰的身份信息和登录态; 最好直接与统一身份中心(UMS/SSO)集成。
✅ 4. 接口化 + SDK 化
为业务系统提供标准 SDK,让接入权限控制变成「一行代码」:
passportClient.checkPermission(userId, "finance:invoice:approve");
✅ 5. 审计与回溯机制
确保所有权限分配、访问决策、修改都有日志; 未来可追踪、可追责、可回滚。
🌐 五、对标与参考体系
| 平台 | 功能核心 | 说明 | 
|---|---|---|
| Auth0 / Okta | SSO + 权限管理 | 商业成熟方案 | 
| Keycloak | 开源 IAM,支持 SSO / RBAC | 适合自建 | 
| Casbin | 开源策略引擎 | 适合做 Passport 的决策层 | 
| OPA(Open Policy Agent) | 企业级策略引擎 | 支持复杂 ABAC | 
🎯 六、总结一句话
Passport 就是企业的「权限中枢神经系统」, 它将权限逻辑从业务中抽离,统一化、策略化、可视化、可审计化, 是构建安全、规范、可控数字化体系的核心基石。
