基于LDAP的B/S应用系统权限管理*

2012-07-11 08:47
舰船电子工程 2012年9期
关键词:关系数据库名录服务器

张 轩 余 亮

(中国电子科技集团公司第二十八研究所 南京 210007)

1 引言

与C/S系统相比,B/S系统中的权限更为重要,C/S系统具有特殊的客户端,权限管理可通过客户端或客户端+服务器检测实现,而B/S系统中,每台计算机都拥有浏览器功能,如果不建立完整的权限检测机制,非法用户可能通过浏览器轻易访问到B/S系统中的所有功能。因此需在B/S业务系统中建立健壮的权限管理体系,经过授权的用户可以正常合法的使用已授权功能,未经授权的非法用户将被拒之门外。本文基于 RBAC(Role-Based policies Access Control)—基于角色的访问控制,结合轻量级目录访问服务(LDAP)对所存储的权限信息元素快速读写的优势,探索B/S应用系统权限设计方案。

RBAC是由NIST(National Institute of Standards and Technology)美国国家标准与技术研究院提出,其主要思想可简单地用图1来表示[1]。

图1 RBAC模型

在RBAC基本思想中,访问控制过程分成两步:访问权限与角色相关联,角色再与用户关联,实现用户与访问权限的逻辑分离。

用户与访问权限的逻辑分离,极大方便了权限管理。在实际应用中,如果一个用户的职位发生变化,只要将用户当前角色剔除,加入代表新职务或新任务的角色即可。角色/权限之间的变化比角色/用户关系之间的变化相对要慢,而且配置权限到角色的工作比较复杂,需要一定的技术,所以由专门的技术人员来承担;而委派用户到角色不需要很多技术,可以由行政管理人员来执行,这与现实中情况一致。

LDAP是一个新的目录访问协议,它是在继承了X.500标准的所有优点的基础上发展起来的一个基于TCP/IP体系的目录服务协议,也是目前在网络上应用最为广泛的目录服务协议[4]。与UNIX的文件系统类似,在LDAP中目录按照树型结构来组织,该树型结构称为目录信息树(DirectoryInformation Tree,DIT)。LDAP标准定义了目录中访问信息的协议,规定了信息的形式和特性、信息存放的索引和组织方式、分布式的操作模型,并且使LDAP协议本身和信息模型都是可以被扩展的。LDAP目录中可以存放如文本、图片、URL、二进制数据、证书等不同类型的数据。LDAP树状信息中的基本数据单元称为条目(Entry),条目可以理解为关系数据库中表的记录;条目是具有标识名(Distinguished Name,DN)的属性(Attribute)集合,DN 可以理解为关系数据库表中的关键字(Primary Key);属性由类型(Type)和多个值(Values)组成。LDAP中的属性可以理解为关系数据库中的域(Field),域由域名和数据类型组成,在LDAP中为了便于检索类型(Type),一个类型(Type)可以同时拥有多个值(Value)。和关系数据一样,LDAP服务器也是用来处理查询和更新的,但LDAP与关系数据库具有较大的不同,LDAP不具有关系数据库完备的关系运算处理能力,也没有很强的数值计算能力。但是LDAP目录服务对读、浏览和搜索等操作进行了优化[2]。

2 基于LDAP的权限设计

常规B/S应用系统权限管理设计方案,其权限管理元素(组织机构、角色、人员、权限信息)存储于关系型数据库中,存在的弊端显而易见:数据库需不断进行数据类型的验证和事务完整性的确认;角色、人员、权限信息的关系通过表的关联体现,频繁的数据访问使得前端用户对数据的控制不够灵活[5]。

轻量级目录服务协议(LDAP)的推出解决了上述问题。主要优势体现在:

1)与关系数据库相比,LDAP的检索性能更加迅速,对读、浏览和搜索进行了优化,主要面向数据的查询服务(查询和修改操作比一般是大于10∶1),快速响应和大容量查询并且提供多目录服务器的信息复制功能[3]。

2)提供多目录服务器的信息复制功能。

3)角色、人员、权限信息关系通过目录节点之间的相互引用体现,与通过数据表体现方式相比更加简化。

4)同时,LDAP协议是跨平台的协议,是开放的Internet标准,因此得到了业界的广泛认可。

基于LDAP的权限管理目录体系如图2所示。

图2 基于LDAP的权限数据元素存储关系

1)Users目录用于管理所有的用户,保存用户的基本信息。

2)Groups目录用于管理系统中所有的组织机构(岗位)。组织机构节点下可包含下级的组织机构,体现组织机构在部门内部的上下级关系。

3)Roles目录存储系统中的角色信息。

4)Permissions目录存储系统中的权限信息,可进一步分解为功能权限信息与资源权限信息。

图2中虚箭头体现了各类型节点(组织机构、角色、人员、权限)在权限管理模型中的相互关系,在LDAP的配置文件中,各节点属性定义如图3所示。

图2是体现了存储结构与存储关系,图3是图2的权限数据元素存储关系在LDAP服务器中配置文件的定义。

LDAP目录中的信息是按照树型结构组织的,具体信息存储在条目(entry)的数据结构中。条目包含了多个属性,每个属性由一个类型和多个值构成。每个条目使用一个识别名(DN)标识,每个条目DN的各个元素称为相对识别名(RDN)。这个树型结构类似于文件系统,RDN相当于文件,DN相当于文件的绝对路径。

图3 目录节点的LDAP描述文件定义

3 实际解决方案

在更多的场景中,需要对原有B/S系统、现有B/S系统进行集成,提供统一的权限管理体系和展现界面,需要结合单点登录技术(SSO)、门户技术一起构建模型,模型描述如图4所示[7]。

图4 统一的权限管理体系

权限数据、用户(组织机构)、角色数据存入LDAP服务器,并通过图2中LDAP节点之间的引用关系,建立实际的RBAC模型。

用户进入门户时,B/S应用系统的访问控制功能对访问者进行身份认证,通过读取LDAP服务器中的目录数据(组织机构、用户、权限数据),合法用户将被赋予相应的系统访问权限。当合法用户通过门户系统访问内部的B/S应用系统时,访问控制功能将在跨系统访问中提供单一登录(“一次鉴权”)的服务机制。即系统自动记录用户当前身份信息,并在登录新的应用系统时将记录用户的身份,各应用系统支持单点登录机制并认可接收用户身份信息,使用者无需再登录用户身份认证信息即可登录此系统[4]。

进入门户后,如访问新研系统,会话Session里存放有登录的用户名、该用户所属组织机构信息、该用户具有的访问新研系统的权限,这些信息在单点登录过程中从LDAP服务器中获取,新研系统依据这些信息(尤其是用户权限访问信息),提供相应功能展示[8]。

进入门户后,如访问原有系统,会话Session里只存放有登录的用户名、该用户所属组织机构信息,这些信息在单点登录过程中从LDAP服务器中获取,但无法从LDAP服务器中获取该用户具有的访问原有系统的权限,通过在原有系统内部增加一个过滤器,在不改动原有用户权限数据库前提下,将原有系统的用户权限信息与登录门户的用户信息做映射,达到集成的目的。

这种集成方式无需改造原有系统的权限管理体制,但是需要在过滤器里维护足够的用户映射关系。过滤器的工作模式如图5所示。

图5 过滤器工作模式图

图5简要描述了过滤器的映射关系模型,以及通过单点登录认证的用户如何利用映射关系访问原有B/S应用系统。事实上,如果原有系统的权限管理体系足够复杂,单靠上图的模型是远远不够的,需要用户在过滤器里维护足够复杂的映射关系。

4 结语

与常规基于关系数据库的权限管理体系相比,RBAC(基于角色的访问控制)实现了用户与访问权限的逻辑分离,权限指派流程更加清晰,便于信息系统管理员维护;同时权限信息元素存储于轻量级目录访问服务(LDAP)中,大幅缩减了对数据库的访问,提高了系统的访问控制运行效率,是未来基于B/S架构的大型管理信息系统权限控制所采用一项核心技术[9]。

目录服务(LDAP)被视为网络应用发展的下一个核心技术,具备良好的跨平台能力,有广阔的应用前景,随着国产化、网络化进程,以LDAP为代表的目录服务,以其简单、高效、低成本的优势,提供了一种统一而简便的网络资源管理和组织技术。

使用目录服务来实现系统权限管理只是目录服务的一个简单应用。目录服务是一个具有强大功能和潜力的新技术,它的应用不仅仅限于系统权限管理,我们还可以利用LDAP作名录解析、视频会议、信息资源查询等。

新一代的基于B/S架构信息管理系统将基于国产化的软硬件平台,目录服务(LDAP)为名录服务提供一种高效的解决方案。

LDAP的诸多特性为跨平台名录服务的开发提供了可行性条件,具体体现在[11]:

1)提供了一个操作系统和应用程序需要的信息服务模型,可以被许多平台和应用程序接收和实现。于此,可基于LDAP开发新的名录服务,运行在不同操作系统之上的遗留业务系统可以跨平台访问名录服务,有效整合现有资源,避免重复开发,降低成本。

2)使用项、对象类、属性等概念和模式来描述信息,可以满足未来名录服务各级名录项的多种属性定义,便于依据需求的进展扩充名录项,形成一个开放的名录服务体系。

3)LDAP使用目录信息树结构和层次命名模型:在分布性方面,目录信息都可以分布在一个目录服务器中,这些服务器可以由各组织管理,既保证了目录信息总体结构的一致性,又满足了分级管理的需要;LDAP的X.525协议支持各级LDAP服务器的数据复制。利用LDAP的分布性和可复制性,未来的名录服务可以实现分级管理、按需同步、统一授权。

4)LDAP所提供的基于安全加密方式的认证机制,为未来名录服务安全可靠的同步传输提供技术保障。

[1]覃章荣,王强,欧镔进,等.基于角色的权限管理方法的改进与应用[J].计算机工程与设计,2007,28(3):1282-1284.

[2]李馥娟.基于LDAP的统一身份认证系统的设计[J].中国新通信,2009(5):48-50.

[3]胡开胜.LDAP协议在数字图书馆统一身份认证系统中的应用[J].电脑知识与技术,2010,6(10):2334-2336.

[4]张辉,杨岳湘,汪诗林,等.数字校园中基于LDAP的统一用户身份管理技术研究[J].计算机工程与科学,2005,27(1):14-17.

[5]付珊,李宁,来竞,等.一种面向LDAP的目录查询语言DQL[J].计算机与数字工程,2008,36(1):23-25.

[6]李冰,原野.LDAP目录服务在统一身份认证系统中的应用[J].信息技术,2005(1):68-71.

[7]尹文平,兰雨晴,高静,等.基于LDAP的用户统一身份认证管理系统的设计与实现[J].计算机系统应用,2005(10):18-21.

[8]李翔,晁爱农,刘孟强,等.LDAP的研究及其在统一身份认证系统中的应用[J].计算机应用,2008,28:1-3.

[9]吴洁明,周宁.基于LDAP的信息共享平台的研究与实现[J].计算机应用,2008,28(4):26-29.

[10]王居柱,侯彤璞,孙明柱.基于Struts-Hibernate架构的权限管理系统的设计与实现[J].计算机与数字工程,2011(4).

[11]肖琬蓉,杨生举.基于LDAP的统一用户认证系统的设计与实现[J].计算机科学,2008,35(5):298-301.

猜你喜欢
关系数据库名录服务器
2022.3上榜派出所名录
太极拳列入联合国非遗名录
服务器组功能的使用
理解Horizon 连接服务器、安全服务器的配置
陶行知教育名录
关系数据库技术在计算机网络设计中的应用
PowerTCP Server Tool
同贺名录
探讨关系数据库设计中范式理论的教学方法
计算机网络安全服务器入侵与防御