权限托管接入指南
2025年1月18日大约 4 分钟
工作台待办接入指南
提示
该文档主要介绍第三方业务系统如何将业务系统托管至网办平台中进行统一授权操作。
前置条件
- 需能访问网办平台服务地址。
- 需要联系实施人员进行接入应用授权,获取调用接口应用编号。
第三方业务系统集成步骤
- 主动同步托管权限信息流程
注意
- 权限维护:网办平台不负责业务系统权限效验功能及主动抓取权限信息,需业务系统根据自身需求,再业务系统定时同步来维护托管权限信息。
- 业务系统权限实现:网办平台再认证后再用户信息中同步回传当前登录用户所拥有的权限标识列表,需业务系统根据自身业务进行识别用户菜单权限。
同步权限信息:当业务系统需要进行权限托管时,需业务系统根据自身需求,整理权限信息,并主动调用
同步应用权限接口,进行权限同步。
- 业务系统权限实现流程
权限处理逻辑改造:业务系统托管权限至网办平台后,需要进行权限识别,接入系统通过集成网办平台
统一身份认证单点登录,再认证成功后会同步返回授权字段,具体流程入下图。
步骤一、同步托管权限信息
注意
注:此接口存在鉴权限制,当遇到此问题时,接口返回结果的msg中会有体现。
同步应用权限接口
1. 接口描述
接口地址:/integration-service/openApi/v1/sync/hosting
请求方式:POST
2. 请求参数
注意
参说说明:
- permission - 托管权限信息,该参数存在两种场景,请根据实际业务场景选择合适场景进行授权(详细参数见下面章节示例参数):
- 第一种场景:授权基于菜单及功能,此场景属于权限完全托管,全部由网办平台进行授权,此场景存在业务系统权限标识变动,由于授权细致到菜单功能点,每次变动需要手动再网办平台中进行二次授权。
- 第二种场景:授权基于角色,此场景属于业务系统根据自身需求,将系统进行拆分为固定角色方式,该方式好处再于某个授权角色下功能变动无需重新授权,只需业务系统自行根据权限标识变动即可。
| 参数名称 | 参数发送方式 | 必选 | 长度 | 类型 | 描述 |
|---|---|---|---|---|---|
| appId | Body | 是 | String | 应用编号(再后台管理-应用管理中获取) | |
| permission | Body | 是 | String | 托管权限信息json字符串 |
3. 输出参数
| 参数名称 | 说明 | 类型 | 描述 |
|---|---|---|---|
| code | 状态码 | int | 状态码返回为0表示请求成功。 |
| msg | 消息内容 | String | 返回的提示消息。 |
| data | 返回结果数据 | Long | 返回数据 |
4. 请求示例
注意
参数中 节点id 请采用 UUID 避免授权编号冲突导致功能异常,业务系统再生成授权节点时需保证本系统权限内 节点id 唯一性
- 授权基于菜单及功能示例
{
"appId": "10003424",
"permission": [
{
// 节点id
"id": "Hv6AIWhyfjYTciwN",
// 节点名称
"name": "考勤信息管理",
// 节点类型:1-菜单、2-功能权限
"type": 1,
// 子权限节点
"children": [
{
"id": "qHbDAmfTBXEx6pCI",
"name": "查询考勤列表",
"type": 2
},
{
"id": "LsbNkt0DK7R2VfTh",
"name": "同步考勤信息",
"type": 2
}
]
},
{
"id": "fC2Eq5WSmINlkau3",
"name": "人事信息管理",
"type": 1,
"children": [
{
"id": "2XunMm0vPasbqxUO",
"name": "查询员工列表",
"type": 2
},
{
"id": "S308yDksbvMNP4Id",
"name": "添加员工",
"type": 2
},
{
"id": "1r6IsyZWpEkdUTmF",
"name": "编辑员工",
"type": 2
},
{
"id": "VP3pahE81RKxJLeT",
"name": "删除员工",
"type": 2
}
]
}
]
}- 授权基于角色示例
注意
角色权限标识,是由业务系统,自行根据业务场景定义固定角色标识,进行授权操作,此场景可避免,业务系统经常权限变动,导致同步网办平台后,需要重新进行授权操作。
{
"appId": "10003424",
"permission": [
{
"id": "tN0BLowijebyPHGV",
"name": "管理员",
"type": 2
},
{
"id": "anStiXvpFxwd6zoH",
"name": "教师",
"type": 2
}
]
}5. 返回示例
- 返回示例
{
"code": 0,
"msg": "操作成功",
"ok": true
}