接口越权问题解决方案

2022-10-14 10:15:00
廖沅静
原创
409

1 场景需求

在租户模式下,限制个别用户的接口访问权限(接口越权)

2 接口授权原理与步骤:

(1) 通过角色授权中,实现用户接口访问权限;

(2) 若用户未分配角色,用户默认有部分接口的访问权限

(3) 配置限制用户访问接口的权限:

配置两个角色

角色a:为有用接口访问角色

角色b:为无对应接口访问权限

a) 需有一个角色作为超级超级管理员权限,该角色配置有访问所有接口的权限,在角色中接口授权,需要将访问的接口添加到接口列表的中

b) 配置限制用户接口访问权限:配置一个角色,不配置需要访问的接口授权,并将无访问权限的用户分配在其中

 

(注意:避免无访问接口权限的用户出现多角色身份叠加)

 

(4) 接口授权涉及到的表

接口列表:portal_sys_method

角色接口权限表:portal_sys_role_auth


(5) 执行一下sql语句,执行时注意点 【sql文件请下载文章末尾的附件】

a) 将租户id(tend_id)字段为-1更改为租户的id

b) 上述两张表是删除对应租户下的接口列表(portal_sys_method)、角色接口权限表(portal_sys_role_auth),在对这两张表重新插入接口列表(接口菜单),在角色接口表对对应的角色进行分配对应的接口(该步骤可在执行插入接口列表的后,在角色授权中对对应角色勾选相应的接口访问权限,需要对对应的菜单进行授权)

c) 执行如下接口权限初始化sql语句(执行前请做好数据库备份!)



发表评论
评论通过审核后显示。