论文部分内容阅读
摘要:为了解决大型企事业单位对用户、部门等信息的管理问题,使办公系统及各业务系统采用统一来源的用户信息进行登录,提高企事业单位用户管理的高效和安全。为此,本文根据作者所在集团公司的具体情况,基于J2EE和轻型目录访问协议(lightweight directory access protocol,LDAP)技术设计和实现了通用、安全、可扩展的统一用户管理系统。
关键词:统一用户管理系统;LDAP;J2EE
引言
随着信息产业在中国蓬勃地发展,越来越多的机关、企事业单位、银行等为了提高自身的工作效率,增强竞争力,更是加快了信息化建设的进程,如:办公自动化系统及各类业务系统,尤其像笔者所在这样的大型集团性企业里,这些系统不仅数量大,而且处于不断增加的趋势。
但以往的情况是:各个系统相互独立、信息共享程度不高、管理分散,形成一个个“应用孤岛”,不仅给用户使用各个系统和访问各个信息库带来麻烦,而且由于各个孤立的系统有各自的人员信息库,没有一个统一的来源,而是由不同的管理员分别管理,很容易带来管理上的麻烦,造成信息不一致。
因此,笔者所在的项目组经过调查研究,考察了大量的用户需求,设计出适合于集团及其下属企业所有员工使用的统一用户管理系统的方案,并结合最新的J2EE技术,建立了一个基于LDAP的统一用户管理系统。
系统设计
统一用户管理系统是整个集团信息化建设中所有信息系统的中心管理系统,通过它可以对所有信息系统诸如OA系统及业务系统等中的人员进行管理,这些系统也通过它进行单点登录,以一个带有被赋予权限的统一身份进入到这些系统中。
统一用户管理系统包括以下介绍的几个主要功能模块。从使用角度来看,它可以实现统一身份验证及单点登录,同时可以为各个OA系统及业务系统提供权威的统一的人员信息,消除各系统中人员信息的数据冗余;从用户管理角度来说,它为全集团提供部门信息、人员信息、角色信息(用于权限)的统一维护和管理功能。
1.部门管理
这里的部门是个广义的概念,包括集团直属的管理部门以及下属的各个企业和企业里的各个子单位等,简单说,只要是一个组织,大到一个公司,小到一个办公室,都统称部门。所有这些部门以树形的层级结构组织。管理员可以添加、编辑、删除各个部门、子部门信息。 部门信息包括部门编号ID、部门全称、部门简称、上级部门、顺序号、是否是企业等信息。
2.人员管理
在部门层级结构树的基础上,将人员信息维护在各个部门下。页面效果则是,左侧是部门层级结构树,点击树的某个节点即某个部门,右侧则显示此部门下的所有人员信息。管理员可以添加、修改和删除人员信息,可以重置人员密码。系统增加或者删除一个人员则相应的增加或者删除一个人员的账户,每新增一个人员账户,赋予该账户一个初始化密码。
人员信息包括用户名(即唯一的登录账号ID)、密码、员工编号、用户姓名、性别、所属部门、权重、办公座机号、个人手机号、传真号、电子邮箱、通讯地址、生日、角色等信息。
3.人员信息查询
管理员可以在某个部门中查询人员信息,查询条件有:用户名、姓名、员工号、是否包含子部门等。“是否包含子部门”是个选项,如果选中了此选项,则查询范围是此部门及其下属的各级子部门,若未选此选项,查询范围则只有此部门一个。
4.角色管理
这里的角色相当于某个权限小组,比如XX系统某个导航的权限配置里加入的是XX角色,则此导航就只有XX角色里的人员能看到并点击操作,其他人员则无法看到此导航和进行操作。因此,角色和权限是紧密联系的,一个角色可以包含一个或多个相同或不同部门的人员,反过来,某个人员可以属于一个或多个角色;一个角色对应于一个或者多个权限。这样以来,人员的权限就通过角色管理起来。
在系统中,类似于人员管理,角色也是在部门层级结构树的基础上维护在各个部门下。页面效果则是,左侧是部门层级结构树,点击树的某个节点即某个部门,右侧则显示此部门下的所有角色信息。管理员可以添加、修改和删除角色信息。
角色信息包括角色名称、所属部门、角色顺序号、角色成员、角色说明等。角色成员是通过选择按钮的功能在已有的人员信息里进行选择。
5.部门管理员管理
由于整个集团的组织结构层级较多,数量较大,因此有必要设置多个部门管理员来管理维护其所在的子单位及其下级部门。此模块的功能是,只要将某个人员设置成了对应单位的部门管理员,则此人员就可以同系统管理员一样在统一用户管理系统里面管理维护部门信息、人员信息、角色信息,区别在于他只能维护其所在单位的相应信息。这样以来,则分担了系统管理员对整个集团的管理维护工作。
系统管理员可以添加、修改、删除部门管理员的信息。
部门管理员的信息包括部门、管理员,这两个都是通过选择按钮功能在已有的部门信息和人员信息中选择的。
6.身份认证、单点登录
将统一用户管理系统的身份验证功能集成到集团门户的首页,用户可以在集团门户首页通过提供用户名和密码进行身份验证。在集团门户中集成各个OA系统或业务系统等子系统的访问窗口即导航,用户直接点击这些导航,不用再次输入用户名和密码,可以直接进入这些子系统进行所在权限范围内的相应访问操作,这样便实现了单点登录。
系统实现
1.LDAP
LDAP(Lightweight Directory Access Protocol),轻量级目录访问协议。它是目录访问协议一个标准。它是基于X.500标准的,可以根据需要定制。轻量级目录访问协议以信息目录的形式存在,在该目录中可只定义一次用户和组,而在多台机器和多个应用程序间共享它们。 LDAP标准中没有定义在目录服务器上存储信息的方式。为实施LDAP服务器,使用了许多不同的技术。这些技术包括简单的平面文件、索引文件和相关数据库。无论使用什么技术来实施目录,从LDAP客户端对目录的所有访问都使用相同的标准协议:LDAP。为此,尽管存在不同的内容结构,这些目录都被称为LDAP 目录服务器。
LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。
LDAP可以用于多应用中的统一的身份认证和授权。由于LDAP所具有的查询效率高、分布式的部署框架以及灵活而细腻的访问控制,使LDAP 广泛地应用于基础性、关键性信息的管理,如用户信息、网络资源信息等。LDAP在信息安全上主要涉及:数字证书管理、授权管理、单点登录。
2.关系数据库
关系数据库的优点是建立在严格的数学概念的基础上,概念单一,实体与实体间的联系都用关系表示,故其数据结构简单、清晰,存取路径对用户透明,故有更高的数据独立性和更好的安全保密性,广泛应用于人事档案管理、商业管理、仓库管理等数据库管理系统。因为这些系统所需的数据结构以及实体之间的联系比较单一。
3.J2EE框架struts2+spring2.5+ibaties2
其系统结构分为5层,分别是表现层、应用会话层、业务逻辑层、持久层、资源层。
3.1资源层
由关系数据库和FTP文档数据库构成,用于保存系统执行过程中产生的数据和文档信息。
3.2持久层
业务逻辑层与资源层之间的接口,由一个基于SQL映射支持Java和·NET的持久层框架Ibatis来完成。
3.3业务逻辑层
将业务数据和工作流程相关数据通过持久层持久化到数据库中,业务逻辑层提供对业务数据的增加、修改、删除和查询等功能。
3.4业务会话层
该层使用在J2EE框架中常用的struts2框架来实现,将业务数据缓存到内存中,或者将数据库中的数据显示到页面中。
3.5表现层
通过用户界面(Html和Javascript实现)完成与用户的交互,负责校验输入数据的正确性,然后将数据提交给业务会话层,将数据缓存到内存中,如果确定要提交到数据中,则有业务逻辑层通过持久层提交到数据库,并给用户返回相应的信息。同时,也负责将来自业务会话层的数据展现给用户。
以上3种技术是我们项目组在开发集团统一用户管理系统中用到的。在J2EE的业务逻辑层中会调用LDAP目录服务,将用户部门等信息存储在文本数据库中,用于用户身份验证、单点登录以及快速查询等。同时,也会在资源层中的关系数据库中以记录的形式存储这些信息,目的是用于其他一些业务系统对用户部门等信息的读取调用。
结语
经过项目组的研究开发,统一用户管理系统成功上线运行。对整个集团来说,节省了信息化的投资;保证了同一个实体的信息在各个应用系统中信息完全相同,避免了因为数据不一致而导致的信息泄露问题;方便用户使用,可以实现单点登陆;对系统管理员来说,降低了系统维护工作量,不用再像以前那样对每个系统的人员信息单独维护。从管理的角度来说,对整个集团的人员信息做到了真正意义上的统一管理。
参考文献
[1] 夏明忠,夏以轩,等.统一用户认证和授权管理的实现.计算机与应用化学,2011,28(8):1087?1090.
[2] 朱亚兴.异构环境中基于EJB 和CORBA 的统一用户管理系统设计.微型机与应用,2010,29(15):6?9.
[3] 肖爱华. 统一用户管理系统的设计与实现[ D]. 国防科学技术大学硕士学位论文, 2005.
作者简介:孔力(1985—),男,汉族,就职于中国东方电气集团有限公司中央研究院信息化研究所,从事信息系统开发.
关键词:统一用户管理系统;LDAP;J2EE
引言
随着信息产业在中国蓬勃地发展,越来越多的机关、企事业单位、银行等为了提高自身的工作效率,增强竞争力,更是加快了信息化建设的进程,如:办公自动化系统及各类业务系统,尤其像笔者所在这样的大型集团性企业里,这些系统不仅数量大,而且处于不断增加的趋势。
但以往的情况是:各个系统相互独立、信息共享程度不高、管理分散,形成一个个“应用孤岛”,不仅给用户使用各个系统和访问各个信息库带来麻烦,而且由于各个孤立的系统有各自的人员信息库,没有一个统一的来源,而是由不同的管理员分别管理,很容易带来管理上的麻烦,造成信息不一致。
因此,笔者所在的项目组经过调查研究,考察了大量的用户需求,设计出适合于集团及其下属企业所有员工使用的统一用户管理系统的方案,并结合最新的J2EE技术,建立了一个基于LDAP的统一用户管理系统。
系统设计
统一用户管理系统是整个集团信息化建设中所有信息系统的中心管理系统,通过它可以对所有信息系统诸如OA系统及业务系统等中的人员进行管理,这些系统也通过它进行单点登录,以一个带有被赋予权限的统一身份进入到这些系统中。
统一用户管理系统包括以下介绍的几个主要功能模块。从使用角度来看,它可以实现统一身份验证及单点登录,同时可以为各个OA系统及业务系统提供权威的统一的人员信息,消除各系统中人员信息的数据冗余;从用户管理角度来说,它为全集团提供部门信息、人员信息、角色信息(用于权限)的统一维护和管理功能。
1.部门管理
这里的部门是个广义的概念,包括集团直属的管理部门以及下属的各个企业和企业里的各个子单位等,简单说,只要是一个组织,大到一个公司,小到一个办公室,都统称部门。所有这些部门以树形的层级结构组织。管理员可以添加、编辑、删除各个部门、子部门信息。 部门信息包括部门编号ID、部门全称、部门简称、上级部门、顺序号、是否是企业等信息。
2.人员管理
在部门层级结构树的基础上,将人员信息维护在各个部门下。页面效果则是,左侧是部门层级结构树,点击树的某个节点即某个部门,右侧则显示此部门下的所有人员信息。管理员可以添加、修改和删除人员信息,可以重置人员密码。系统增加或者删除一个人员则相应的增加或者删除一个人员的账户,每新增一个人员账户,赋予该账户一个初始化密码。
人员信息包括用户名(即唯一的登录账号ID)、密码、员工编号、用户姓名、性别、所属部门、权重、办公座机号、个人手机号、传真号、电子邮箱、通讯地址、生日、角色等信息。
3.人员信息查询
管理员可以在某个部门中查询人员信息,查询条件有:用户名、姓名、员工号、是否包含子部门等。“是否包含子部门”是个选项,如果选中了此选项,则查询范围是此部门及其下属的各级子部门,若未选此选项,查询范围则只有此部门一个。
4.角色管理
这里的角色相当于某个权限小组,比如XX系统某个导航的权限配置里加入的是XX角色,则此导航就只有XX角色里的人员能看到并点击操作,其他人员则无法看到此导航和进行操作。因此,角色和权限是紧密联系的,一个角色可以包含一个或多个相同或不同部门的人员,反过来,某个人员可以属于一个或多个角色;一个角色对应于一个或者多个权限。这样以来,人员的权限就通过角色管理起来。
在系统中,类似于人员管理,角色也是在部门层级结构树的基础上维护在各个部门下。页面效果则是,左侧是部门层级结构树,点击树的某个节点即某个部门,右侧则显示此部门下的所有角色信息。管理员可以添加、修改和删除角色信息。
角色信息包括角色名称、所属部门、角色顺序号、角色成员、角色说明等。角色成员是通过选择按钮的功能在已有的人员信息里进行选择。
5.部门管理员管理
由于整个集团的组织结构层级较多,数量较大,因此有必要设置多个部门管理员来管理维护其所在的子单位及其下级部门。此模块的功能是,只要将某个人员设置成了对应单位的部门管理员,则此人员就可以同系统管理员一样在统一用户管理系统里面管理维护部门信息、人员信息、角色信息,区别在于他只能维护其所在单位的相应信息。这样以来,则分担了系统管理员对整个集团的管理维护工作。
系统管理员可以添加、修改、删除部门管理员的信息。
部门管理员的信息包括部门、管理员,这两个都是通过选择按钮功能在已有的部门信息和人员信息中选择的。
6.身份认证、单点登录
将统一用户管理系统的身份验证功能集成到集团门户的首页,用户可以在集团门户首页通过提供用户名和密码进行身份验证。在集团门户中集成各个OA系统或业务系统等子系统的访问窗口即导航,用户直接点击这些导航,不用再次输入用户名和密码,可以直接进入这些子系统进行所在权限范围内的相应访问操作,这样便实现了单点登录。
系统实现
1.LDAP
LDAP(Lightweight Directory Access Protocol),轻量级目录访问协议。它是目录访问协议一个标准。它是基于X.500标准的,可以根据需要定制。轻量级目录访问协议以信息目录的形式存在,在该目录中可只定义一次用户和组,而在多台机器和多个应用程序间共享它们。 LDAP标准中没有定义在目录服务器上存储信息的方式。为实施LDAP服务器,使用了许多不同的技术。这些技术包括简单的平面文件、索引文件和相关数据库。无论使用什么技术来实施目录,从LDAP客户端对目录的所有访问都使用相同的标准协议:LDAP。为此,尽管存在不同的内容结构,这些目录都被称为LDAP 目录服务器。
LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。
LDAP可以用于多应用中的统一的身份认证和授权。由于LDAP所具有的查询效率高、分布式的部署框架以及灵活而细腻的访问控制,使LDAP 广泛地应用于基础性、关键性信息的管理,如用户信息、网络资源信息等。LDAP在信息安全上主要涉及:数字证书管理、授权管理、单点登录。
2.关系数据库
关系数据库的优点是建立在严格的数学概念的基础上,概念单一,实体与实体间的联系都用关系表示,故其数据结构简单、清晰,存取路径对用户透明,故有更高的数据独立性和更好的安全保密性,广泛应用于人事档案管理、商业管理、仓库管理等数据库管理系统。因为这些系统所需的数据结构以及实体之间的联系比较单一。
3.J2EE框架struts2+spring2.5+ibaties2
其系统结构分为5层,分别是表现层、应用会话层、业务逻辑层、持久层、资源层。
3.1资源层
由关系数据库和FTP文档数据库构成,用于保存系统执行过程中产生的数据和文档信息。
3.2持久层
业务逻辑层与资源层之间的接口,由一个基于SQL映射支持Java和·NET的持久层框架Ibatis来完成。
3.3业务逻辑层
将业务数据和工作流程相关数据通过持久层持久化到数据库中,业务逻辑层提供对业务数据的增加、修改、删除和查询等功能。
3.4业务会话层
该层使用在J2EE框架中常用的struts2框架来实现,将业务数据缓存到内存中,或者将数据库中的数据显示到页面中。
3.5表现层
通过用户界面(Html和Javascript实现)完成与用户的交互,负责校验输入数据的正确性,然后将数据提交给业务会话层,将数据缓存到内存中,如果确定要提交到数据中,则有业务逻辑层通过持久层提交到数据库,并给用户返回相应的信息。同时,也负责将来自业务会话层的数据展现给用户。
以上3种技术是我们项目组在开发集团统一用户管理系统中用到的。在J2EE的业务逻辑层中会调用LDAP目录服务,将用户部门等信息存储在文本数据库中,用于用户身份验证、单点登录以及快速查询等。同时,也会在资源层中的关系数据库中以记录的形式存储这些信息,目的是用于其他一些业务系统对用户部门等信息的读取调用。
结语
经过项目组的研究开发,统一用户管理系统成功上线运行。对整个集团来说,节省了信息化的投资;保证了同一个实体的信息在各个应用系统中信息完全相同,避免了因为数据不一致而导致的信息泄露问题;方便用户使用,可以实现单点登陆;对系统管理员来说,降低了系统维护工作量,不用再像以前那样对每个系统的人员信息单独维护。从管理的角度来说,对整个集团的人员信息做到了真正意义上的统一管理。
参考文献
[1] 夏明忠,夏以轩,等.统一用户认证和授权管理的实现.计算机与应用化学,2011,28(8):1087?1090.
[2] 朱亚兴.异构环境中基于EJB 和CORBA 的统一用户管理系统设计.微型机与应用,2010,29(15):6?9.
[3] 肖爱华. 统一用户管理系统的设计与实现[ D]. 国防科学技术大学硕士学位论文, 2005.
作者简介:孔力(1985—),男,汉族,就职于中国东方电气集团有限公司中央研究院信息化研究所,从事信息系统开发.