收藏 分享(赏)

组织机构与权限管理用户开发手册.doc

上传人:精品资料 文档编号:9250658 上传时间:2019-07-31 格式:DOC 页数:15 大小:763KB
下载 相关 举报
组织机构与权限管理用户开发手册.doc_第1页
第1页 / 共15页
组织机构与权限管理用户开发手册.doc_第2页
第2页 / 共15页
组织机构与权限管理用户开发手册.doc_第3页
第3页 / 共15页
组织机构与权限管理用户开发手册.doc_第4页
第4页 / 共15页
组织机构与权限管理用户开发手册.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、中国软件与技术服务股份有限公司组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司应用产品研发中心组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - I -目 录1 引言 11.1 背景 .11.2 目标 .11.3 定义 .12 系统总体设计 22.1 设计思想 .22.1.1 权限定义 22.1.2 权限类型划分 32.1.3 数据权限的数学涵义 32.1.4 数据元素的范围标识 42.1.5 数据访问授权 52.1.6 数据权限的多维性 52.1.7 逻辑模型 52.2 系统总体架构 .82.2.1 系统物理模型: 82.2.2 对象设计模型: 82.2.3 系统服

2、务组件设计: 92.2.4 安全验证 92.3 API 接口和使用说明 .92.3.1 安全管理基类 SwordSecurityManager.92.3.2 用户权限票据缓存管理器 WebSecurityManager112.3.3 数据权限服务类 DataRightService 122.3.4 系统公共服务类 SOPBaseServiceBLH132.3.5 操作权限使用说明 14组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 1 -1 引言1.1 背景本模块是 sword 业务基础平台的组件之一,为平台提供基础的组织机构和权限管理功能。1.2 目标本系统主要目标如下:

3、提供灵活的组织机构与权限管理物理模型,针对不同的业务系统需求可再扩展。 提供系统核心组件,跨数据库、灵活、稳定、算法高效、复用率高,可极大的缩短业务系统二次开发周期。 提供稳定的组织机构与权限管理对外服务接口,用以满足业务系统的需求。 提供基于以上三点的业务系统实现,在多数场景中可直接使用。1.3 定义 权限以权限授权管理为基础,使用户仅对指定数据集合中的特定数据具有访问能力。这个定义包含了几个关键要素: 用户:用户是系统的操作者,是授权的目标主体。 数据集合:被访问的目标数据集合是权限管理的基础。事实上,整个权限控制的目的就是保证非信任用户群体对系统数据的合理访问。 授权:授权是提供上述访问

4、关系的控制逻辑。 功能权限功能权限控制用户对系统功能的访问。一般来讲,功能权限的粒度是一个个具体的业务功能 数据权限数据权限本质上是用户对特定类型数据集合中数据访问的范围控制 权限资源数据资源是授权关系中数据集合内元素的标识属性,在权限管理运算中,权限资组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 2 -源是作为运算变量存在的。从大类上划分,权限资源可以分为功能权限资源和数据权限资源两大类。 权限维度权限资源的分类属性,一般用在数据权限资源定义内,用于标识不同数据范围类型的定义。 维度关联在最简单情况下,各个权限维度之间没有关联,是纯正交的关系。在这种情况下,各维度的权限运

5、算可以独立进行。维度关联是指权限维度之间的关联关系。特定的权限维度之间存在关联,不是纯正交关系。在这种情况下,各维度的权限运算不能独立进行,需要综合考虑。 业务规则业务规则是一种“假的”权限定义需求,看起来像权限控制范围,但事实上仅是业务逻辑的组成部分。辨别是否业务规则的方法是:把访问控制要求去掉后(不考虑权限访问需求) ,业务过程是否完整。如果业务过程变得不完整了,则表明这不是一项权限需求。 基本属性在本模型中,业务实体参与业务运算的属性。本下级:本下级表示机构树或职能机构树上,该机构及其该机构的所有下级机关(及下级机关的所有下级机关,以此类推) 。比如,北京市外汇局在机构树上的本下级表示所

6、有属于北京市外汇局的机构。2 系统总体设计2.1 设计思想2.1.1 权限定义在本文档中,对权限的定义为:以权限授权管理为基础,使用户仅对指定数据集合中的特定数据具有访问能力。这个定义包含了几个关键要素: 用户:用户是系统的操作者,是授权的目标主体。组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 3 - 数据集合:被访问的目标数据集合是权限管理的基础。事实上,整个权限控制的目的就是保证非信任用户群体对系统数据的合理访问。 授权:授权是提供上述访问关系的控制逻辑。2.1.2 权限类型划分按照应用系统的权限控制要求,系统权限管理按照类型划分为两大类:功能权限和数据权限。 功能权限

7、:功能权限控制用户对系统功能的访问。一般来讲,功能权限的粒度是一个个具体的业务功能。 数据权限:数据权限本质上是用户对特定类型数据集合中数据访问的范围控制。 本质上,功能权限和数据权限在本质上是一致的,做上述类型的分主要是考虑到功能权限在实现上的特殊性,划分后能够更加方便地实现控制权限控制逻辑。 在下述章节中,将描述的重点放在数据权限上。2.1.3 数据权限的数学涵义数据权限本质上是数据集合的选择运算(功能权限也是如此) 。下图将以数据检索为例,简要描述数据权限的实现过程。原始数据集合中存放是所有待检索的数据集,其中每一个元素均包含有一个权限控制属性(如元素上的三角形标识) 。示例集合中的该属

8、性共有两个值,分别用 和表示。第一个用户对标识为 的数据有访问权限,因此,他可以看到 4 个数据元素;第二个用户对标识为 的数据有访问权限,因此,他可以看到 2 个数据元素;第三个用户对所有数据均有访问权限,因此,他可以看到 6 个数据元素。组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 4 -上述过程可以看到,如果将原始数据集看做一个二元关系数据集合的话,上述的权限控制操作本质上就是对数据集合的选择运算。这也是数据权限控制的基础,在下述章节中,将所有的权限控制将基于这种选择运算关系实现。2.1.4 数据元素的范围标识依照上述数学关系,要实现数据的访问范围控制,首先要做的就是

9、对数据做范围标识。范围标识过程如下图所示:范围标识属性的选择可以参考如下方式:1)选取业务数据中具有业务语义的数据属性。这种方式最直接,也非常便于理解,是一种优先考虑的方式。组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 5 -2)添加新的、纯技术性质的数据属性。当原始的数据属性集合中没有可以用于标识数据范围的属性时,需要添加额外的属性来标识数据的范围归属。2.1.5 数据访问授权数据访问授权本质上就是建立用户和数据范围标识之间的映射关系。如下图所示。通过授权,用户甲获得了对标识为 的数据的访问能力,用户已获得了对标识为的数据的访问能力,用户丙获得了对所有数据的访问能力。2.

10、1.6 数据权限的多维性从数据权限的数学涵义可以看出,基于不同的元素属性做访问范围标识,可以实现多个维度的数据权限控制。这一点在应用中将具有很明显的业务特性:不同类型的业务数据可以给与不同的数据访问控制含义。如:可以按照不同的合同额度划分合同的审批权限级别;可以按照原材料类别区分采购申请的审批者;可以按照数据的地域归属做数据的查询结果限定; 同理,也可以根据业务要求,将上述多个维度做综合考虑,以不同维度的交集或并集来完成更高级别的数据访问权限控制。2.1.7 逻辑模型逻辑模型重点描述了权限模型中的要素和要素之间的关系。参考权限类型的划分,本章节中将功能权限和数据权限两个模型分别描述。组织机构与

11、权限管理用户开发手册中国软件与技术服务股份有限公司 - 6 -本逻辑模型将基于 RBAC 模型实现,在具体的设计过程中,将参考权限的要素之间的关系,将用户、角色和权限与对应的权限要素建立特定的联系。2.1.7.1 功能资源在功能权限中,首先要考虑的是功能资源。一般来讲,功能资源就是系统中用例功能的列表。依据前述的数学模型,要实现功能权限的授权管理,首先要考虑的是功能权限授权资源的离散化。很幸运,功能权限资源通常表现为一个个独立的 URI 链接描述,因此天然地具有离散化特性。更进一步考虑,可以将功能资源的“粒度”进一步细化,把一个按钮、页面中的连接等定义为一个资源项。当然,伴随着权限控制粒度的细

12、化,对系统的运行资源开销和运行效率将会出现负面化的影响。2.1.7.2 授权关系最基本的功能授权,就是建立用户到功能的映射。每一个映射就是一项功能能授权。如下图所示:功能权限集合用户 A授权用户 B授权这种模型最简单,但效果不好。因为授权项太多,太分散,非常不便于管理。因此,在本模型中,参考 RBAC 模型的要素,引入了角色的概念。角色是一类特定功能权限的集合 。先建立角色和功能资源之间的映射关系,然后再建立用户同角色之间的映射。其中一个角色可以关联多个功能资源,一个用户也可以关联多个角色。组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 7 -引入角色后,在一定程度上提高了系

13、统授权管理的灵活性,同时可以降低授权映射数量。如下图所示:功能权限集合用户 A授权用户 B角色2.1.7.3 功能授权实体及关系功能授权模型中共包含三个实体和三个关系。三个实体是:用户、角色和功能资源三个关系是:用户-功能资源映射、角色-功能资源映射和用户-角色映射。用户角色功能资源用户 - 功能资源用户 - 角色角色 - 功能资源组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 8 -2.2 系统总体架构2.2.1 系统物理模型:FK_YH_SJZYDMFK_SJSZY_DMFK_CZYDMFK_CZJSDMGLFK_CZJSYHIDFK_ZNJG_ZN_DMFK_ZNJG_

14、JG_DMFK_YHZN_YH_DMFK_YHGNJSDMFK_GNFZ_DMFK_ZYGN_ZY_DMFK_YHGNJS_JSIDFK_YHGNZY_YH_ID FK_YHGNDMFK_YH_JG_DMFK_GNJS_JG_DMFK_YHZN_ZN_DMFK_YHZN_JG_DMFK_YHSJS_YH_IDFK_YHSJSDMFK_YHSJZY_YH_IDFK_SJSZY_JSDMFK_SJZY_SJLX_IDFK_YHCZYIDFK_GW_JGFK_YHGW_GWFK_YHGW_YHFK_CZJS_CZYFK_CZGL_CZY上上上上ID上上上上上上上上上上上上ID上上上上上上上上上上上上

15、上上上上上上上上上上上上上上上上ID上上VARCHAR2(2)VARCHAR2(18)VARCHAR2(10)VARCHAR2(2)CHAR(1)NUMBERVARCHAR2(200)CHAR(1)CHAR(1)DATEDATEVARCHAR2(2)VARCHAR2(10)上上上上上上ID上上上上上上上上上上上上上上ID上上上上上上上上上上上上上上上上上上上上上上上上上上上上上ID上上VARCHAR2(2)VARCHAR2(18)VARCHAR2(40)VARCHAR2(18)CHAR(1)VARCHAR2(18)CHAR(1)VARCHAR2(18)NUMBERCHAR(1)CHAR(1)D

16、ATEDATEVARCHAR2(18)VARCHAR2(10)上上上上DM上上上上上上 VARCHAR2(18)VARCHAR2(10)VARCHAR2(50) 上上上上上上上上DM上上ID上上上上上上上IDVARCHAR2(18)VARCHAR2(18)VARCHAR2(20)VARCHAR2(18) 上上上上上上上上ID上上ID上上DMVARCHAR2(2)VARCHAR2(18)VARCHAR2(18)上上上上上上DM上上上上上上ID上上上上上上上上上上VARCHAR2(18)VARCHAR2(10)VARCHAR2(18)CHAR(1)CHAR(1)VARCHAR2(10)上上上上上上

17、DM上上上上上上上上上上上上DM上上URL上上上上上上上上上上上上上上上上上上VARCHAR2(18)VARCHAR2(20)CHAR(1)VARCHAR2(18)VARCHAR2(20)NUMBERCHAR(1)CHAR(1)VARCHAR2(10)VARCHAR2(10)上上上上上上上上上上DM上上IDVARCHAR2(18)VARCHAR2(2)上上上上上上上上上上DM上上DMVARCHAR2(18)VARCHAR2(18)上上上上上上上上上上ID上上上上DMVARCHAR2(2)VARCHAR2(18)上上上上上上上上上上ID上上DM上上上上DM上上DM VARCHAR2(2)VARC

18、HAR2(18)VARCHAR2(18)VARCHAR2(18) 上上上上上上DM上上上上上上上上DM上上上上上上上上上上VARCHAR2(18)VARCHAR2(10)VARCHAR2(18)VARCHAR2(100)CHAR(1)VARCHAR2(20)上上上上上上上上上上上上上上上上 VARCHAR2(18)VARCHAR2(10)VARCHAR2(10)VARCHAR2(10)上上上上上上上上上上ID上上DMVARCHAR2(2)VARCHAR2(18)上上上上上上DM上上上上上上上上上上 VARCHAR2(18)VARCHAR2(10)CHAR(1)VARCHAR2(10)上上上上上

19、上上上上上DM上上DM上上上上DM上上DM VARCHAR2(18)VARCHAR2(18)VARCHAR2(18)VARCHAR2(18)上上上上上上上上DM上上上上上上上上上上上上 VARCHAR2(18)VARCHAR2(10)CHAR(1)VARCHAR2(10)上上上上上上上上上上ID上上上上DMVARCHAR2(2)VARCHAR2(18)上上上上上上上上DM上上上上上上上上上上上上上上VARCHAR2(18)VARCHAR2(10)CHAR(1)CHAR(1)VARCHAR2(10)上上上上上上上上上上上上DM上上ID VARCHAR2(18)VARCHAR2(2)上上上上上上上

20、上上上上上ID上上 VARCHAR2(18)VARCHAR2(10)VARCHAR2(2)VARCHAR2(10)上上上上上上上上上上上上IDVARCHAR2(18)VARCHAR2(2)上上上上上上上上上上上上上上DM上上上上DMVARCHAR2(18)VARCHAR2(18)2.2.2 对象设计模型: 值对象在用户登陆成功后需要将用户基本信息缓存起来,方便在业务系统中直接获取使用,具体属性随业务系统需求而定。注意:一定要实现 IUser 接口 。组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 9 - 领域对象继承 SOPBaseBO 或 AbsDaoBusinessObj

21、ect 类都可,推荐 SOPBaseBO。2.2.3 系统服务组件设计:2.2.4 安全验证2.2.4.1 设计模型 类图 时序图2.3 API 接口和使用说明2.3.1 安全管理基类 SwordSecurityManager负责验证登陆用户与用户票据的生成accredit public ITicket accredit(IUser logonUser) throws 组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 10 -PersistenceCheckedException,SQLException, SecurityCheckException 说明 用户权限验证输入

22、logonUser - 登录用户信息输出 票据异常 SQLException - 数据库异常PersistenceCheckedException - 框架异常SecurityCheckException - 权限异常public abstract IUser login(IUser logonUser) throws PersistenceCheckedException,SQLException, SecurityCheckException说明 用户登录输入 logonUser - 登录用户信息输出 用户对象login异常 SQLException - 数据库异常PersistenceC

23、heckedException - 框架异常SecurityCheckException - 权限异常public abstract List getFuncRight(IUser logonUser);说明 获取登录用户的功能权限输入 logonUser - 登录用户信息输出 功能资源列表getFuncRight异常 -public abstract List getDataRight(IUser logonUser);说明 获取登录用户的数据权限输入 logonUser - 登录用户信息输出 数据资源列表getDataRight异常 -public abstract List getOpt

24、ionRight(IUser logonUser);说明 获取登录用户的操作权限输入 logonUser - 登录用户信息getOperateRight输出 操作资源列表组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 11 -异常 -2.3.2 用户权限票据缓存管理器 WebSecurityManagerpublic static void registerTicket(ITicket ticket)说明 注册用户权限票据输入 ticket - 用户权限票据输出 -registerTicket异常 -public static ITicket getTicket()说明 获取

25、用户权限票据输入 -输出 权限票据getTicket异常 -public static void removeTicket()说明 清除用户权限票据输入 -输出 -removeTicket异常 -2.3.3 数据权限服务类 DataRightService public static String getDataRight (IReqData req,String dataRightSign)说明 获取当前登录用户的数据权限 sql输入 req: IReqData 请求数据dataRightSign:数据类别,数据权限的标识输出 用户的数据权限 sqlgetDataRight异常public

26、static String getDataRight (IReqData req,String dataRightSign,String scene)说明 获取当前登录用户的数据权限 sqlgetDataRight输入 req: IReqData 请求数据dataRightSign:数据类别,数据权限的标识组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 12 -scene:数据场景,默认数据场景是 0输出 用户的数据权限 sql异常2.3.4 系统公共服务类 SOPBaseServiceBLHpublic IResData createCheckedTree(IReqData

27、 reqEvt) throws RuntimeException 说明 构建选择树输入 请求参数输出createCheckedTree异常public IResData createCheckedTable(IReqData reqEvt) throws RuntimeException 说明 构建基于 Table 组件的选择树输入 请求参数输出createCheckedTable异常public IResData createTree(IReqData reqEvt) throws RuntimeException说明 构建树输入 请求参数输出createTree异常2.3.5 操作权限使用

28、说明 SwordSecurityOperate 控制组件在需要进行操作权限控制的页面上,引入 SwordSecurityOperate 控制组件。 定义操作资源在操作权限管理界面上定义操作资源:组织机构与权限管理用户开发手册中国软件与技术服务股份有限公司 - 13 -操作资源代码,在页面上体现为【operateId 】 在页面上对需要控制的标签、组件加入 operateId 属性,属性值为定义的操作资源代码例如: 说明:1、可以用 SwordSecurityOperate 组件将需要控制的组件或标签包上,也可以不包上2、operateId 的值就是定义的操作资源的代码。下面的例子也是可以的(不包上):

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报