主题
15 — 权限分配同步(接收方视角)
侧栏编号 15;文件名暂为
14-角色权限分配同步.md(历史路径,避免断链)。
门户在角色权限分配变更后,将「角色 + 应用入口权限」快照 HTTP 推送到你方。
组织 / 用户出向见 05-接收出向同步.md;管道细节见 doc/14。
角色实体入向(你 → 门户)见 16-角色同步-HMAC.md。
方向:门户 → 你方。
objectType:PERMISSION(管理端模块 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 |
timestamp | ISO-8601 |
data | 见下表 |
data 字段(权限分配 + 角色标识)
| 字段 | 类型 | 说明 |
|---|---|---|
systemCode | string | 系统编码 |
roleCode | string | 角色编码(业务主键之一) |
roleName | string | 角色名称 |
permissions | string[] | 门户应用入口权限码;覆盖式 |
permSyncVersion | number | 下放版本;建议幂等 / 乱序丢弃 |
业务主键:systemCode + roleCode。
1.4 接收方建议
- 校验鉴权 → 解密 → 校验
objectType=PERMISSION。 - 按
systemCode/roleCode定位本地角色。 - 用
permissions[]覆盖该角色的应用权限集合。 - 返回 HTTP 2xx。
2. 角色标识说明
| 项 | 说明 |
|---|---|
| 角色主数据 | 随权限分配报文同步:systemCode、roleCode、roleName;首次收到时可在本地建角色壳 |
| 独立 ROLE 推送 | 无:不存在 objectType=ROLE 的增删改通道 |
| 用户 ↔ 角色 | 不同步:由你方自行维护人-角色绑定 |
| 角色删除 | 本期不单独推删除事件;若角色在门户删除,受影响用户有效权由门户内部处理,第三方需按联调约定自行清理 |
3. 与组织 / 用户出向
| objectType | 推什么 | 典型触发 |
|---|---|---|
DEPT | 部门 | 组织增删改 |
USER | 用户 | 用户增删改 / 启停 |
PERMISSION | 角色标识 + 权限分配结果 | 权限分配变更 |
全量(action=FULL)仅 DEPT/USER,不含权限分配。加密与重试同 05。
4. 联调检查清单
- Client 已配置
PERM_MGMT/ 权限分配同步 URL。 - 给角色勾选至少一个 PC 或移动 门户应用入口并保存 → 有推送记录,明文含
roleCode/permissions。 - 给用户改角色 → 无
PERMISSION推送。 - 角色去掉全部 PC/移动应用入口 → 无推送(空集跳过)。
- 失败时保留
traceId便于门户重试。