Skip to content

15 — 权限分配同步(接收方视角)

侧栏编号 15;文件名暂为 14-角色权限分配同步.md(历史路径,避免断链)。

门户在角色权限分配变更后,将「角色 + 应用入口权限」快照 HTTP 推送到你方。
组织 / 用户出向见 05-接收出向同步.md;管道细节见 doc/14
角色实体入向(你 → 门户)见 16-角色同步-HMAC.md

方向:门户 → 你方。
objectTypePERMISSION(管理端模块 PERM_MGMT / 功能项「权限分配同步」)。

含义
权限分配同步角色上勾选了哪些 PC/移动应用入口权限 → 覆盖式推给你方
角色标识报文带 systemCode / roleCode / roleName独立 ROLE 对象类型;推用户-角色绑定

1. 权限分配同步

1.1 模型约定

当前实现
推送主体角色systemCode + roleCode),不是用户
触发管理端给角色分配 / 调整权限且权限集有变化
不触发给用户分角色、岗位变动导致的有效角色变化
权限内容该角色上、挂在门户应用且端覆盖为 PC 或移动 的入口 permCode(直推,不经映射表)
空集筛选后 permissions 为空时不推送
语义对你方该角色的应用权限做覆盖式更新

1.2 配置

管理端在 SSO Client 出向配置中开启 权限下放集成(PERM_MGMT,为「默认」或「权限分配同步」(PERM_UPDATE)填写完整接收 URL。

1.3 明文业务报文(解密后)

json
{
  "syncVersion": "1.0",
  "traceId": "abc-123",
  "objectType": "PERMISSION",
  "action": "UPDATE",
  "timestamp": "2026-09-07T03:30:00Z",
  "data": {
    "systemCode": "PLATFORM",
    "roleCode": "OPS_ADMIN",
    "roleName": "运维管理员",
    "permissions": [
      "portal.app.expense",
      "portal.app.notice"
    ],
    "permSyncVersion": 1725686400000
  }
}

信封字段

字段说明
syncVersion报文协议版本
traceId链路 ID
objectType固定 PERMISSION
action当前为 UPDATE
timestampISO-8601
data见下表

data 字段(权限分配 + 角色标识)

字段类型说明
systemCodestring系统编码
roleCodestring角色编码(业务主键之一)
roleNamestring角色名称
permissionsstring[]门户应用入口权限码;覆盖式
permSyncVersionnumber下放版本;建议幂等 / 乱序丢弃

业务主键systemCode + roleCode

1.4 接收方建议

  1. 校验鉴权 → 解密 → 校验 objectType=PERMISSION
  2. systemCode/roleCode 定位本地角色。
  3. permissions[] 覆盖该角色的应用权限集合。
  4. 返回 HTTP 2xx。

2. 角色标识说明

说明
角色主数据随权限分配报文同步systemCoderoleCoderoleName;首次收到时可在本地建角色壳
独立 ROLE 推送:不存在 objectType=ROLE 的增删改通道
用户 ↔ 角色不同步:由你方自行维护人-角色绑定
角色删除本期不单独推删除事件;若角色在门户删除,受影响用户有效权由门户内部处理,第三方需按联调约定自行清理

3. 与组织 / 用户出向

objectType推什么典型触发
DEPT部门组织增删改
USER用户用户增删改 / 启停
PERMISSION角色标识 + 权限分配结果权限分配变更

全量(action=FULL)仅 DEPT/USER不含权限分配。加密与重试同 05


4. 联调检查清单

  1. Client 已配置 PERM_MGMT / 权限分配同步 URL。
  2. 给角色勾选至少一个 PC 或移动 门户应用入口并保存 → 有推送记录,明文含 roleCode / permissions
  3. 给用户改角色 → PERMISSION 推送。
  4. 角色去掉全部 PC/移动应用入口 → 推送(空集跳过)。
  5. 失败时保留 traceId 便于门户重试。