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 就是企业的「权限中枢神经系统」, 它将权限逻辑从业务中抽离,统一化、策略化、可视化、可审计化, 是构建安全、规范、可控数字化体系的核心基石。

参考资料