权限管理作为一个系统的核心功能,在一个系统中起着至关重要的作用。在 ArchOne 平台中,我们力求将权限管理尽可能的做到通用、复用。ArchOne 的权限管理主要分为两个部分,一部分为功能权限,要解决的问题是能做什么的问题,另一部分为数据权限,要解决的问题是能做多少的问题。本文将对 ArchOne 中的功能权限设计作一个详细的描述。
ArchOne 的权限管理是在“基于角色的访问控制(RBAC)”基础上进行设计的,并基于“未明确定义则视为有效”的权限验证规则。首先,我们先了解一下本文涉及到的名词:
1、名词解释
1.1 用户
用户指的是参与系统活动的主体,如操作员、系统等。
1.2 角色
角色指的是一组权限的集合。
1.3 功能权限
功能权限指的是角色在一个具体的业务对象上能够进行的具体业务操作。
1.4 应用系统
ArchOne 是一个基础平台,能更加友好的为多系统集成提供支持,而多系统集成的首要问题则是解决多个系统之间的权限共享及集成管理问题,权限管理作为整个平台的核心模块,在这方面必须提供完整的支持。应用系统指的就是需要进行集成的各个具体的应用。
1.5 安全模块
安全模块指的是在应用系统中需要进行权限控制的一组业务对象的集合。
1.6 安全资源
安全资源指的是在应用系统中需要进行权限控制的载体,在 Web 应用中通常表现为一个 Web 表单,在 Windows 应用中通常表现为一个 Windows 窗体。
1.7 功能安全对象
功能安全对象指的是应用系统中需要进行权限控制的一个业务对象,如采购清单、供应商信息、采购人信息等业务对象。
1.8 功能安全操作
功能安全操作指的是在特定的安全对象上进行的具体的业务操作,如新增采购清单、编辑供应商信息、删除采购人信息等业务操作。
1.9 功能安全点
功能安全点指的是需要具体进行权限控制的功能点,在系统中表现为一个具体的 URL 地址(不同的 ActionType 为不同的安全点)、一个具体的控件等。功能安全点承载于安全资源之上,一个安全资源中可包含多个功能安全点。
2、类图设计
本类图中忽略了用户及角色的具体类设计,我们将这两个对象纳入组织机构管理模块进行统一管理。
通过上图我们即可清晰的看出各个对象之间的关系,具体的使用方式将包含在SDK文档中。