统一用户及权限管理Word文档下载推荐.docx
《统一用户及权限管理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《统一用户及权限管理Word文档下载推荐.docx(35页珍藏版)》请在冰豆网上搜索。
权限控制,只实现功能权限控制,而不实现数据(范围)权限控制,主要由于各个业务的数据访问规则很难归纳为标准的访问规则。
而功能从权限的控制包括:
●不做权限控制的功能,即不登陆就可操作,如:
对外新闻、公告查询
●公共功能:
用户只要登陆就可操作的功能,如:
内部新闻、内部公告查询
●需权控制的功能:
只有当用户拥有该功能的权限才能操作的功能
3、提供统一的用户及权限认证接口
提供的统一的用户及权限认证接口同时满足C/S和B/S应用的用户认证和权限控制的需求;
且对于B/S应用,既满足基于windows平台的应用,也满足与基于J2ee架构的应用。
4、提供统一的数据访问接口
统一用户及权限管理平台提供各类数据访问接口,如:
获取操作人员的信息、获取机构信息、获取系统功能信息等。
5、系统具有较好的扩展性和灵活性
组织机构、用户的属性要求可以进行适当的增加,以满足各个不同企业的统一权限管理的需要。
统一权限管理,既满足与单个应用授权,也满足所有应用集中授权。
统一权限管理既满足一个机构集中授权,也满足多机构逐级受权。
在统一授权管理中,每个应用权限控制的粒度不一致,有的应用或模块控制得较粗,有的控制得较精确,如:
对于数据的维护只是一个“数据维护”权限粗的控制,也可以控制到“数据新增”、“数据修改”和“数据删除”权限的精确控制上。
//以下由沈伟补充
6、系统的单点登录(包括跨系统的应用调用)
7、权限模型配置(包括模块与部分可通用的数据权限;
数据权限做到什么程度需思考)。
对于第2点中细节描述部分,则形成需建成独立服务模式,而非源程序加载模式。
此需求需讨论。
建议:
对SSO项目进行继承。
2.2
系统架构
如图所示,统一用户及权限管理平台系统功能由四部分组成:
1、用户注册系统
用户注册系统提供用户网上注册。
2、统一用户及授权管理系用系统
该系统主要由应用系统的系统管人员使用。
系统提供组织机构管理、用户管理、应用系统管理、应用系统权限(功能)配置管理、角色管理、角色权限分配、用户权限(角色)分配、用户登录管理功能。
3、认证与服务
认证服务提供应用系统身份认证接口、权限认证接口、数据访问接口。
应用系统同过调用身份认证接口实现用户身份认证;
调用实现对用户权限认证;
通过调用数据接口读取如用户信息、组织机构信息等数据。
4、认证中心数据库
认证中心数数据库负责存储统一用户及权限管理的数据。
2.2.1
统一用户、权限管理数据流程图
从以上图中可知,在进行统一用户、授权管理时,一方面对认证中心的用户信息、权限分配数据进行维护,另一方面,根据需要,可以对门户系统(如LiferayPortal、IBMWebspherePortal)中的相关的用户、权限分配信息进行同步更新,以及对邮件系统中的邮件帐户信息进行同步更新,以及对其它系统的认证信息进行同步更新。
通过以上方案,既满足了统一用户和授权管理,同时,又解决了门户系统、邮件系统等的用户管理、授权和认证问题。
避开了去了解甚至重新构造门户系统、邮件系统等中的用户认证、权限认证问题。
2.2.2新建应用、门户的身份认证、权限认证机制
✧门户权限的认证由门户服务器提供的认证服务完成。
✧新的应用系统建设,其用户、权限是基于统一的用户、权限管理平台建设,用户身份认证、权限认证由我们提供的统一用户权限管理的认证服务完成。
2.2.3老的应用系统的认证机制
老的应用系统的用户认证、权限认证仍然由老系统完成。
若老的应用系统整合到门户,首先通过门户认证,然后再通过老的系统的用户、权限认证。
具体如下:
2.2.4关于邮件系统的用户认证问题
邮件系统的用户认证仍然由邮件系统提供的认证服务完成,只是,若需要进行统邮件系统的账户时,在对认证中心的用户进行维护时,对邮件系统的帐户信息(主要是用户名和口令)进行同步更新。
2.3主要技术路线
●统一用户和权限管理系统
该系统采用jsp+struts+hibernate的J2ee架构。
J2eeWEB中间件采用TOMCAT。
●认证接口
提供给应用系统的接口以webservice方式提供,实现方法采用一般的javabean实现。
●数据库
在本方案中,数据库系统采用mysql数据库。
3用户注册系统设计
此部分主要是想用户网上注册功能。
4统一用户及授权管理系统设计
统一用户及授权管理系统主要实现的功能包括:
●组织机构及用户管理
●应用系统及功能管理
●角色管理
●角色权限分配
●用户权限分配
●用户登录日志管理
系统主界面如下:
4.1组织机构及用户管理
1、功能描述
采用树形结构对机构及人员进行维护管理。
具体包括:
1)机构的维护
●机构新增
●机构删除
●机构修改
2)人员的维护
●人员新增
●人员删除
●人员修改
●人员口令修改
●注册用户审查
●帐户开通/停止
3)用户授权
●用户角色授权
4)用户权限查询
●用户拥有的角色查询
●用户拥有的权限查询
2、界面样式
4.2角色管理
对角色的维护管理,包括角色的新增、修改、删除。
4.3角色权限分配
4.4用户权限(角色)分配
4.5登录(在线)用户管理
提供在线用户查询和注销在线用户功能。
4.6辅助功能
4.6.1系统操作管理
实现操作日志的查询和导出。
4.6.2用户登录日志管理
实现对用户历史登录日志的查询和导出。
4.6.3系统代码表管理
代码类别维护
代码维护
4.7应用系统及功能管理
此部分功能一般只提供给开发应用开发上维护。
主要实现应用系统目录维护和系统功能维护。
5认证与服务接口设计
5.1概述
企业的信息化建设通常是要建设多个应用系统,多个应用系统共用一套组织机构及权限管理子系统。
组织机构中包括不同业务部门、不同行政级别的人员,不仅组织机构非常庞大,并且各个组织单元之间的关系错综复杂。
为方便组织机构管理工作和授权管理工作的顺利进行,在组织机构及权限管理部分实行“逐级授权”的策略,将组织机构及权限管理子系统建设成为一个独立的Web应用,各个行政级别的系统系统管理员都可以登录到Web服务器上,进行组织机构和权限的管理和维护工作。
由于这是一个多应用系统,各个业务系统对权限分配的结果都有各自不同的展现方式,为使各个应用系统能够将组织机构管理和权限分配的结果实实在在的应用到各个业务系统中,组织机构及权限管理子系统向各个业务系统提供了统一的应用程序接口。
接口以WEBSERVICE形式提供,为方便各个业务系统操作,接口的返回值以XML格式为主。
各个业务系统根据权限管理子系统的返回值可以自行决定如何展现权限分配的结果。
5.2接口详细描述
统一用户及权限管理平台以WEBSERVICE形式提供对外接口,返回信息以XML形式提供,接口如下:
5.2.1判断用户是否合法
类名称
OrgManager
函数名称
功能描述:
根据用户登录名、口令判断用户是否为合法用户
调用语法:
参数描述:
参数标识参数名称数据类型输入/输出
userID用户ID号String输入
返回值说明:
备注:
5.2.2用户注销
根据用户登录名注销登录用户
5.2.3用户修改密码
用户修登录名注销登录用户
5.2.4获取用户登录信息
根据用户登录名或用户ID号获取用户登录信息
5.2.5获取组织机构信息
5.2.6获取用户完整信息
getUserInfo
根据用户ID号获取用户完整信息
StringgetUserInfo(StringuserID)
throwsAppException,RemoteException
存在相应的结果信息时,返回值格式如下:
<
?
xmlversion="
"
encoding="
GBK"
>
org>
personid="
xxxx"
--人员标识-->
name>
xxxx<
/name>
--用户姓名-->
admin_level>
/admin_level>
--管理级别-->
<
ownerd_unit>
/ownerd_unit>
--设立机构-->
department>
/department>
--部门-->
district>
/district>
--行政区划-->
telephone>
/telephone>
--办公电话-->
email>
/email>
usb_state>
/usb_state>
--USB发放状态-->
/person>
/org>
没有相应的结果信息时返回空字符串””。
5.2.7获取用户拥有的功能模块的完整信息
PrivilegeManager
getModulesOfUser
根据用户ID号获取用户拥有的功能模块的完整信息
StringgetModulesOfUser(StringuserID)
返回值:
privilege>
applicationid="
name="
--应用。
返回值中包含1个以上应用-->
menuid="
name"
title="
--枝干菜单-->
--枝干菜单可以嵌套-->
itemid="
location="
/>
--一个枝干菜单下包含1个以上叶子菜单项-->
/menu>
--一个应用下包含1个以上枝干菜单-->
/application>
/privilege>
5.2.8获取用户拥有的一级功能模块
getRootModulesOfUser(StringuserID)
根据用户ID号获取用户拥有的一级功能模块
StringgetRootModulesOfUser(StringuserID)
name=”xxxx”>
menuid=”xxxx”name="
title=”xxxx”/>
5.2.9获取用户拥有的某一一级功能模块下的所有子功能模块
根据用户ID号、一级功能模块ID,获取用户拥有的某一一级功能模块下的所有子功能模块
StringgetChildModulesUnderOneRootOfUser(
StringuserID,
StringapplicationID,
StringrootModuleID)
applicationID应用ID号String输入
rootModuleID一级功能模块ID号String输入
--1个枝干菜单下包含1个以上叶子菜单项-->
--1个根菜单下包含0个以上枝干菜单-->
5.2.10获取用户拥有的某一末级功能模块的操作列表
getOperationsInOneEndModuleOfUser
根据用户ID号、应用ID、末级功能模块ID,获取用户拥有的某一末级功能模块中的所有操作
StringgetOperationsInOneEndModuleOfUser(
StringendModuleID)
endModuleID末级功能模块ID号String输入
<
operationid="
--包含1个以上操作标识-->
/item>
/application>
/privilege>
5.2.11判断用户是否拥有的某一末级功能模块的某一操作权限
isHaveOperationInOneEndModule
根据用户ID号、应用ID、末级功能模块ID、操作名称,判断用户是否拥有的某一末级功能模块的某一操作权限
booleanisHaveOperationInOneEndModule(
StringendModuleID,
StringoperationName)
operationName操作名称String输入
-true拥有
-false没有
5.2.12获取某一功能模块的ACL—尚需进一步研究
getAclOfModule
根据模块ID号获取属主应用、同类应用、其它应用对当前模块的操作权限。
StringgetModuleACL(StringmoduleID)
moduleID模块ID号String输入
String型模块ACL属性,ACL属性由三位数据组成,第一位代表属主应用的权限,第二位代表同类应用的权限,第三位代表其他应用的权限。
每一位有四个枚举值:
0:
没有权限
1:
查询权限
2:
修改权限
3:
查询、修改权限
5.2.13获取某一模块的数据级权限规划规则—尚需进一步研究
getDataAuthRuleOfModule
根据模块ID,用户ID获取当前操作员能够在当前模块上操作哪些行政区划内的数据。
StringgetDataAuthRuleOfModule(StringmoduleID,StringuserID)
dataprivilege>
dataareaincludesubunit="
yes"
123456<
/dataarea>
--元素值为行政区划代码-->
no"
222222<
--includesubunit属性标识是否包含下级机构数据-->
--返回值中包含1个以上dataarea元素-->
/dataprivilege>
6数据库设计
说明:
数