1.概述

在数通畅联的产品体系中,AEAI Portal毫无疑问的占据了很重要的地位,在这里我们将通过参考Portal样例,讲述一下AEAI Portal权限体系的控制方法。在Portal使用过程中,因为对授权体系的不了解,操作的不当会产生一些显示和登陆操作时的问题,这时需要对权限体系有一个明确的认识。本篇文章主要用来说明Portal中的群组、用户、角色三者之间的关联关系以及对于资源的权限控制等。

2.目标读者

  • 数通畅联内部员工
  • AEAI Portal以及外围产品使用者

3.权限组成

如图,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. 目录

进入导航管理,双击进入任意一个导航。选择一个目录,如下图所示,可以在上面找到安全管理的选项卡。

4.3.3. 菜单页面

进入导航管理,双击进入任意一个菜单(或页面)。选择一个菜单(或页面),如下图所示,可以在上面找到安全管理的选项卡。

4.3.4. Portlet

在页面布局里,Portlet中有安全设置,如下图中红框的地方。点击之后,弹出安全配置页面,在安全配置中添加访问权限。

4.3.5. 栏目

在控制后台找到内容管理-->信息分组,点击进入,在左侧找到想要设置的栏目。点击安全管理,如下图所示,在安全管理中添加访问权限

4.3.6. 信息

进入后台管理,进入内容管理-->信息发布,在左侧分组列表,选择需要设置权限的信息的所在栏目。右侧选择信息,在上面会找到安全的按钮。需要注意的是,信息的认证类型有三种:public、protected、private。public表示无论用户是否登陆都可以看到这条信息。protected是指用户必须登陆之后才可以查看此条信息。而当且仅当信息的认证类型为private的时候,上面的安全按钮才会亮,代表可操作。可以选择特定的某些用户或者角色或者群组才有权限查看此条信息。

4.3.7. 应用

进入后台管理,单点登陆-->应用管理,可以看到所有的应用信息,选择需要设置权限的应用,单击上面的安全设置按钮,进入安全配置页面。如下图所示:

AEAI Portal 权限体系说明的更多相关文章

  1. AEAI Portal V3.5.2门户集成平台发版说明

    AEAI Portal门户集成平台为数通畅联的核心产品,本着分享传递的理念,数通畅联将Portal_server.Portal_portlet两个项目开源,目的在于满足客户与伙伴的OEM需求,以及为广 ...

  2. AEAI Portal V3.5.4升级说明,门户集成平台

    1 总体说明 本次升级是AEAI Portal的一次重要升级,主要扩展了开发社区(论坛).移动门户功能,同时修正一些功能BUG等,具体内容如下: 2 升级内容 功能扩展: 扩展开发社区导航 扩展移动门 ...

  3. 浅谈Oracle权限体系

    对于数据库来讲,安全性的重要程度不言而喻,今天我们就来聊一聊Oracle的权限体系. 1.账户管理 在此之前,先解释下一个容易混淆的概念:模式.所谓模式,指的是用户账户所拥有的一组对象(比如表,索引, ...

  4. sqlserver权限体系(下)

    简介 在上一篇文章中,我对主体的概念做了全面的阐述.本篇文章接着讲述主体所作用的安全对象以及所对应的权限. 理解安全对象(Securable) 安全对象,是SQL Server 数据库引擎授权系统控制 ...

  5. sqlserver权限体系(上)

    简介 权限两个字,一个权力,一个限制.在软件领域通俗的解释就是哪些人可以对哪些资源做哪些操作. 在SQL Server中,”哪些人”,“哪些资源”,”哪些操作”则分别对应SQL Server中的三个对 ...

  6. 理解SQL Server中的权限体系(下)----安全对象和权限

    原文:http://www.cnblogs.com/CareySon/archive/2012/04/12/SQL-Security-SecurableAndPermission.html 在开始阅读 ...

  7. 理解SQL Server中的权限体系(上)----主体

    原文:http://www.cnblogs.com/CareySon/archive/2012/04/10/mssql-security-principal.html 简介 权限两个字,一个权力,一个 ...

  8. sql server drop talbe 自动删除关联的外键 ,权限体系(一)

    if object_id('Proc_DropTableWithFK') is not null begin drop proc dbo.Proc_DropTableWithFK end GO ) a ...

  9. mysql数据库的权限体系介绍

    一.权限体系简介: MySQL的权限体系在实现上比较简单,相关权限信息主要存储在mysql.User.mysql.db.mysql.Host.mysql_table_priv和mysql.column ...

随机推荐

  1. Linux学习笔记:Jenkins安装

    操作系统是CentOS 7,安装Jenkins 首先安装jdk,可在Oracle jdk和Openjdk中任选其一安装Oracle jdk步骤见:   https://www.cnblogs.com/ ...

  2. tms web core 与 kbmmw 第一次亲密接触

    最近,tms 经过1年多,集合了数十名高手大牛,开发出了一个跨时代的产品,就是tms web core. 具体的介绍详见官网,https://www.tmssoftware.com/site/tmsw ...

  3. Hibernate 的Configuration、sessionFactory和session和transaction对象解释

    1.Configuration对象: Configuration conf=new Configuration(); conf.configure(); 1.1 到 src下面找到名称hibernat ...

  4. Python图表绘制:matplotlib绘图库入门(转)

    matplotlib 是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备,并 ...

  5. application.properties /application.yml官网查看配置;springboot application.properties 官网查看,info yml 查看;springboot.yml查看info;springboot.yml查看Actuator监控中心info

    官网查看: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#appendix 查看info ...

  6. Typecho 独立页面 添加自定义模板

    1.首先在主题文件夹新建一个 ***.php 文件 编写代码 <?php /** * _主题命名 * * @package custom * */$this->need('header.p ...

  7. Javascript 需要注意的细节

    1.使用 === 代替 ==JavaScript 使用2种不同的等值运算符:===|!== 和 ==|!=,在比较操作中使用前者是最佳实践.“如果两边的操作数具有相同的类型和值,===返回true,! ...

  8. 关于写css文件需要注意的事项

    通常在项目中,我们尽量不要把style样式写在html中,而是使用外部.css文件的形式添加样式.在编写.css文件时,一定一定一定要注意,不要在一个css语句中写同级class名字,否则会出错,找不 ...

  9. Jersey RESTful WebService框架学习(一)

    介绍:RESTful (Representation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序.它首次出现在 2000 年 Roy Fielding 的博士 ...

  10. 文档/视图(01):第一个Demo

    学习文档视图编程的第一个demo,程序比较简单,主要对文档模板,文档,视图等相互关系的一个了解. 功能:菜单添加一个[操作]项,然后新建四份空白文档,点击[操作]之后,在四份空白文档上面各绘制一个Bu ...