参考文献<o:p></o:p>
1. MSDN 文档<o:p></o:p>
2. MS Authorization and Profile Application Block Help 文档<o:p></o:p>
1. 概述<o:p></o:p>
在应用程序设计中,常常需要根据不同用户控制其在程序中的行为。例如:管理员、经理、员工在程序中的访问级别存在差异,而一个用户可以扮演多个角色。用户访问受保护资源或执行受保护操作的能力称为权限,可表述为“判断WHO对WHAT(WHICH)进行HOW的操作”的逻辑表达式。<o:p></o:p>
现有的权限认证主要基于两种机制:ACL(访问控制列表)和基于角色的控制。<o:p></o:p>
ACL为安全对象建立访问控制列表(DACLS)。通过比较用户的权限是否存在于列表中,决定用户可以访问资源。<o:p></o:p>
基于角色(Role-based)通过将系统按角色划分权限。当用户关联到某个角色,将自动获得该角色所拥有的权限。
在企业应用方面,基于角色的控制方法,由于减小了授权管理的复杂性,易于操作,具有较好的前景。<o:p></o:p>
值得注意的是,权限并不是简单的判定过程。权限的检查常常需要应用业务逻辑。例如:合同只能被其创建者删除,同组用户可以修改,授权用户可以查看。通常,与权限控制对象的实例相关的称为细粒度权限,而只与对象类型关联的称为粗粒度权限。<o:p></o:p>
1. 设计目标<o:p></o:p>
权限系统模块提供基本架构支持基于角色方式的授权。<o:p></o:p>
1. 向系统中的用户授权<o:p></o:p>
2. 支持角色的继承<o:p></o:p>
3. 支持权限系统的多种存储方式<o:p></o:p>
4. 支持业务逻辑验证<o:p></o:p>
5. 具有较好的扩展性和性能<o:p></o:p>
2. 分析<o:p></o:p>
2.1. 权限系统的工作流程<o:p></o:p>
总体上讲,权限系统的工作由下列过程组成:<o:p></o:p>
① 权限系统初始化<o:p></o:p>
② 权限系统接收用户对资源的访问请求<o:p></o:p>
③ 权限系统根据用户具有的权限,返回true或false<o:p></o:p>
④ 最后,权限系统释放其资源,销毁实例。<o:p></o:p>
<o:p></o:p>
2.2. 权限系统的对象<o:p></o:p>
n 资源<o:p></o:p>
资源是权限系统的保护对象。资源可以是某个实体,如文件系统中的文件;也可以是概念。在应用程序中,资源更多以模块划分。<o:p></o:p>
资源间存在嵌套关系。如:现金流量表属于财务报表。<o:p></o:p>
对资源的访问方式称为操作。显然,资源可以具有多种操作。如:合同具有录入、查看、修改、删除、执行、审核、打印等不同操作。<o:p></o:p>
操作间存在重叠关系,比如对合同审核者当然可以查看合同。<o:p></o:p>
概念模型如下:<o:p></o:p>
<v:shapetype o:spt="75" coordsize="21600,21600" stroked="f" id="_x0000_t75" filled="f" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path gradientshapeok="t" o:extrusionok="f" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype>
n 用户和角色<o:p></o:p>
用户是权限系统的访问实体。角色是具有某类权限集的用户的统称。角色之间存在继承关系,比如财务主管同时也是财务人员。<o:p></o:p>
概念模型如下:
值得注意的是,权限与角色并不存在一致性。如:某用户希望拥有其角色外的权限;某角色希望屏蔽属于其类别的某个(些)用户的权限。<o:p></o:p>
概念模型扩展如下:
<o:p></o:p>
① 用户可以直接赋权限<o:p></o:p>
② 角色与受控列表关联。受控列表即存储角色中某些用户禁止对角色中允许的资源进行访问列表。<o:p></o:p>
2.3. 权限系统的模块<o:p></o:p>
n 资源管理<o:p></o:p>
系统中的受控资源通常都是可确定的。如果资源发生变化,常意味着代码的更迭(包含资源分配与验证部分)。因此,在系统中的受控资源在程序运行态时不可变的前提下,资源管理的功能较为简单:<o:p></o:p>
a) 获取系统中所有资源列表<o:p></o:p>
b) 根据资源(操作)标识,取得资源信息。<o:p></o:p>
<o:p></o:p>
n 权限管理<o:p></o:p>
权限管理是系统中的关键部分,决定权限分配到实体对象中的过程。<o:p></o:p>
权限管理的功能如下:<o:p></o:p>
a) 增加、删除、更新用户或角色对资源访问的权限。<o:p></o:p>
b) 获取系统中某用户或角色所赋有的所有权限。<o:p></o:p>
c) 获取系统中某用户或角色对某种资源(操作)的权限<o:p></o:p>
d) 增加、删除角色受控列表条目<o:p></o:p>
<o:p></o:p>
值得注意的是用户权限是用户所具有的角色权限和其本身所赋予的权限的交集。因此在权限对象中设置角色用户标志加以区分。<o:p></o:p>
<o:p></o:p>
n 权限检查<o:p></o:p>
权限检查是系统中的应用部分。 权限检查包含业务逻辑检查。
<o:p></o:p>
① 权限检查使用权限管理器的功能。<o:p></o:p>
② 业务逻辑检查共发生两次。一次在权限检查之前,一次在权限检查之后。权限检查之前的业务逻辑检查可以直接返回结果,而不用再进行权限检查。<o:p></o:p>
3. 权限系统架构<o:p></o:p>
权限系统设计为可扩展性结构。使用Provider接口用于权限模型与数据存储间的交互。通过实现自定义的Provider,经过配置入口插入权限系统中。
<o:p></o:p>
配置文件以XML文件为主流格式。Provider接口定义如下:<o:p></o:p>
Element为XML文件元素类型<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
分享到:
相关推荐
### 权限系统概要分析 #### 权限系统概要理解 权限系统是现代软件系统中的关键组成部分,主要用于管理用户对系统资源的访问控制。一个完善的权限管理系统能够确保系统的安全性与灵活性,使得不同级别的用户根据其...
【权限系统概要设计说明书】 本文档主要针对基于J2EE的Web系统中的权限管理系统进行概要设计,旨在实现一个高效、灵活且安全的权限管理框架。通用权限管理系统旨在为各类应用提供统一的用户访问控制,确保不同角色...
新闻发布系统是基于JSP(JavaServer Pages)技术开发的一种Web应用程序,主要用于在线发布、管理和更新各类新闻信息。该系统通常包括新闻的添加、修改、删除、查询等功能,同时具备用户权限管理、新闻分类管理等特性...
在学籍管理系统中,概要设计可能涉及用户权限管理、学生信息管理、课程管理、成绩录入与查询等多个模块的设计,每个模块的功能、相互之间的关系以及数据流程都需要清晰地表述。 其次,学籍管理系统结构化图是一种...
【统一用户及权限管理系统概要设计说明书】 在电子政务领域,构建统一用户及权限管理系统是提升信息化水平和保障数据安全的关键。本系统旨在解决多应用系统登录不便、管理分散及安全性降低的问题,通过统一规划和...
《超市管理系统概要设计与需求分析实例》 在软件工程领域,系统的设计和需求分析是项目开发的关键步骤,尤其对于一款面向超市管理的系统来说,更需要严谨细致地进行。本篇文章将深入探讨一个小型超市后台管理系统的...
本文档详细介绍了该系统的概要设计,包括系统的目的、功能需求、技术需求、实现环境以及性能需求。 1. **系统目的**: 学生成绩管理系统旨在规范学校的成绩管理工作,适应学生数量的增长,确保成绩的快速、准确和...
- **背景**:介绍协同办公系统的背景,可能包括当前工作流程的痛点、需求分析或市场趋势,说明为何需要这样一个系统。 - **基线**:定义项目的基础版本,作为后续开发和修改的起点。 - **范围**:明确系统将涵盖...
综上所述,企业人事管理系统概要设计说明书涵盖了系统的需求分析、总体架构设计、数据结构设计以及异常处理等多个方面。通过这些详细的设计方案,可以确保系统的稳定运行,并满足企业的实际管理需求。
"1 权限系统范围.doc"和"权限系统概要.doc"可能是对整个权限系统边界和核心功能的概述,明确了系统需要解决的问题和目标。 "权限管理.doc"可能是关于权限管理的全面指南,包含了权限的创建、修改、删除,以及权限...
xx集团的办公自动化系统概要设计是该系统的蓝图,涵盖了系统的需求分析、功能模块设计、系统架构规划等多个方面。 1. **需求分析** 在设计之初,需要对xx集团的业务流程进行深入理解,明确各部门的办公需求。这...
支票打印系统是一种专门用于处理金融交易中支票制作与管理的应用程序。概要设计说明书文档是系统开发过程中的重要组成部分,它详细描述了系统的架构、功能模块、数据流和处理逻辑,为后续的详细设计和编码阶段提供...
本概要设计说明书旨在基于前期需求分析阶段得出的成果,进一步规划超市销售管理系统的整体架构和技术实现方案。文档详细记录了系统的主要组成部分、模块划分及其之间的交互方式等内容,为后续的详细设计、编码、测试...
OA 系统概要设计书的参考资料包括信宏科技的《峪口大坝自动管理系统概要设计书》、计算机应用科技的《元莘 OA 需求分析书》、Eric Jendrock 等人的《Java EE 6》、Horstmann Cay S. 和 Gary Cornell 的《Java 核心...
### 基于WEB的航班查询和订票系统概要设计说明书 #### 1. 引言 ##### 1.1 编写目的 本文档旨在详细阐述基于WEB的航班查询和订票系统的概要设计思路,明确系统的设计目标、架构、主要功能模块及其相互关系。通过本...
《系统需求分析以及概要设计说明书》是软件开发过程中至关重要的文档,主要涵盖了对系统功能、性能、运行环境等多方面的详细描述。这份文档对于商业银行中间业务定价系统的设计与实现具有指导意义,以下是对其中关键...
### 学生选课系统概要设计文档...综上所述,学生选课系统的概要设计涵盖了从需求分析到最终系统部署的各个环节。通过对这些设计要点的深入理解和实现,可以确保系统不仅能满足当前的需求,还能适应未来的变化和发展。