1.概述 在数通畅联的产品体系中,AEAI Portal毫无疑问的占据了很重要的地位,在这里我们将通过参考Portal样例,讲述一下AEAI Portal权限体系的控制方法。在Portal使用过程中,因为对授权体系的不了解,操作的不当会产生一些显示和登陆操作时的问题,这时需要对权限体系有一个明确的认识。本篇文章主要用来说明Portal中的群组、用户、角色三者之间的关联关系以及对于资源的权限控制等。
2.目标读者
- 数通畅联内部员工
- AEAI Portal以及外围产品使用者
文章图片
Portal通过这样的权限体系,确保资源以及数据的安全。其中人员相关的数据表为:security_user表,群组相关数据表为:security_group表,角色相关数据表为:security_role,人员与群组关联关系表为: security_user_group_rel,人员与角色关联关系表为:security_user_role_rel,角色与群组关联关系表为:security_role_group_rel
3.1.群组 进入门户管理控制台,点击导航栏的组织权限,选择群组管理,可以对左侧的分组列表进行添加、删除、迁移各个节点的操作
文章图片
进行的操作会直接影响security_group这个数据表。如下图所示:
文章图片
3.2.用户 在群组管理中,选择一个群组。点击”用户信息”选项卡,如下图所示
文章图片
点击新增按钮,弹出用户信息新增页面,如下图所示,填入正确的用户信息,点击保存,完成对用户的新增操作。对用户的操作除了新增,还有编辑、复制、查看、过滤(查询)、迁移、删除,等等。
文章图片
上面对用户进行的相关操作,都会影响到security_user这个数据表。如下图所示:
文章图片
3.3. 角色 点击导航栏的组织权限中的角色管理,可以对左侧的分组列表中的节点进行添加、删除、迁移等操作。如下图所示:
文章图片
上面对角色添加、删除、迁移等等的操作,都会对security_role这个数据表产生影响。如下图所示:
文章图片
3.4. 关联 对群组进行设置之后,新建的用户与群组之间存在多对多关系,即同一个用户可以关联多个部门,而一个部门又关联了N多的用户。在对群组添加用户的时候,会自动创建用户和群组的关联。涉及到的数据表为security_user_group_rel。如下图所示,表中有两个字段,分别代表群组的ID(GRP_ID)和用户的ID(USER_ID)。
文章图片
创建好角色之后,在右侧选择需要关联的用户,可以对角色添加关联用户以及删除该角色已关联的用户。点击添加按钮之后,会弹出选择用户信息的页面,发现内容是群组下面的各用户。点击选择某一个群组下的用户,完成对该角色的用户关联添加操作。
文章图片
涉及到的数据表为:security_user_role_rel。如下图所示,表中有两个字段,分别为角色的ID(ROLE_ID)和用户的ID(USER_ID)。
文章图片
关联组群,点击关联群组的选项卡,进入关联群组的页面,如下图,可以通过添加和删除方法,将角色与群组关联以及解除关联。点击添加按钮,弹出选择目标目录的页面,选择想要添加的群组,点击确定,将该群组与左侧选择的角色关联在了一起。
文章图片
涉及的数据表为security_role_group_rel,如下图所示。表中有两个字段,分别为群组的ID和角色的ID。
文章图片
4.资源权限 如图所示,资源权限分配有三种形式:按群组分配、按角色分配和按用户分配。根据不同类别的资源,需要在资源各自的“安全管理”中进行权限分配。
文章图片
4.1. 授权要点 数通畅联产品,不论是AEAI Portal还是其他的外围产品,权限控制体系都是一脉相承的,授权为从上至下的树形授权形式。
例如:在portal中对某一个菜单页面进行授权后,在菜单页面中的所有Portlet都继承了这个授权控制;若对这个菜单页面中的某一个Portlet进行授权,那么就破坏了整个页面的授权控制,除了这个Portlet以外的其他同级Portlet也需要进行授权。
同理,在外围应用中,如下图所示,如果对一个父功能节点进行授权,那么该节点下的子节点都是可以进行访问的,如果对该父功能节点下的一个子节点进行授权,那么同级子节点也需要进行授权,否则就破坏了整体的授权控制。
文章图片
4.2. 资源分类 资源是组成Portal整体的一部分,同时也是用户实实在在看得见的,经常接触的一部分。所以对资源的权限分配,就显得至关重要。
资源包括以下几类:
a) 导航
b) 菜单及目录
c) 菜单页面
d) Portlet
e) 栏目
f) 信息
g) 应用
4.3. 资源关联 在数据库中以“_auth”结尾的数据表中体现,分别为:security_group_auth、security_role_auth、security_user_auth。下图
文章图片
文章图片
文章图片
在这三个表中都有两个相同的字段,一个是RES_TYPE,另一个是RES_ID。这两个字段,分别对应了资源的类型,以及资源的编号/ID,用于确定具体的资源,再与前面的GROUP_ID、ROLE_ID、USER_ID来绑定关联。注意这里的security_group_auth数据表,不但记录了资源的权限,也记录的数据的权限,详见数据权限控制部分。下面介绍如何通过后台管理控制页面,对不同的资源进行权限分配。
4.3.1. 导航
选择任意一个导航,前提该导航是“登陆后”类型的导航,点击编辑。出现下图的界面。
文章图片
点击安全管理,进入安全管理控制界面,如下图。后面的安全管理界面与这个界面都是相同的,所以只在这里说明一次。
文章图片
这里可以看到,该导航资源只能被超级用户登陆,其它的用户无法登陆,不过管理员和默认用户是特殊账号除外。
4.3.2. 目录
【技术文档|AEAI Portal 权限体系说明】进入导航管理,双击进入任意一个导航。选择一个目录,如下图所示,可以在上面找到安全管理的选项卡。
文章图片
4.3.3. 菜单页面
进入导航管理,双击进入任意一个菜单(或页面)。选择一个菜单(或页面),如下图所示,可以在上面找到安全管理的选项卡。
文章图片
4.3.4. Portlet
在页面布局里,Portlet中有安全设置,如下图中红框的地方。点击之后,弹出安全配置页面,在安全配置中添加访问权限。
文章图片
4.3.5. 栏目
在控制后台找到内容管理-->信息分组,点击进入,在左侧找到想要设置的栏目。点击安全管理,如下图所示,在安全管理中添加访问权限
文章图片
4.3.6. 信息
进入后台管理,进入内容管理-->信息发布,在左侧分组列表,选择需要设置权限的信息的所在栏目。右侧选择信息,在上面会找到安全的按钮。需要注意的是,信息的认证类型有三种:public、protected、private。public表示无论用户是否登陆都可以看到这条信息。protected是指用户必须登陆之后才可以查看此条信息。而当且仅当信息的认证类型为private的时候,上面的安全按钮才会亮,代表可操作。可以选择特定的某些用户或者角色或者群组才有权限查看此条信息。
文章图片
4.3.7. 应用
进入后台管理,单点登陆-->应用管理,可以看到所有的应用信息,选择需要设置权限的应用,单击上面的安全设置按钮,进入安全配置页面。如下图所示:
文章图片
推荐阅读
- 数据库|SQL行转列方式优化查询性能实践
- mysql|一文深入理解mysql
- 达梦数据库|DM8表空间备份恢复
- 数据技术|一文了解Gauss数据库(开发历程、OLTP&OLAP特点、行式&列式存储,及与Oracle和AWS对比)
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- 谈灾难恢复指标(RTO与RPO是什么鬼())
- RPO与RTO
- 数据库|效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...