统一用户身份管理系统的研究与实现
see also:http://www.tech-ex.com/broadcast/tvgroup/szmg/essay_003.html
刘助翔
本文作者刘助翔先生,深圳广播电影电视集团技术管理中心工程师。
关键词:用户身份 访问控制 TIM TAM
在企业发展的过程中,一方面,随着企业信息化的推进和发展,各种应用系统之间存在着独立的用户管理系统,不仅造成系统管理的难度增大,而且由于用户信息的不同步,可能给企业管理带来不利的影响。同时,随着应用系统的增多,各系统之间的集成,单点登录的实现也越来越成为IT管理部门面临的问题;另一方面,随着部门和人员关系调整的增加,各部门和人员对应于应用系统的不同角色,拥有不同的权限,如果不能及时对各应用系统的用户信息进行调整,也必将使企业的效率受到影响。而对于用户来说,由于要面对不同的应用系统,各系统的认证信息的不同,也使得其必须掌握大量的密码和口令,容易造成泄漏。深圳广播电影电视集团(SZMG)以新的内部办公门户系统的开发为契机,采用统一的用户身份管理设计思想,对集团的组织机构、部门、用户、角色和权限等进行规范设计,构建了一个清晰、规范、安全、易管理和可扩展的统一用户身份管理系统。
统一用户身份管理概述
SZMG统一用户身份管理系统以IBM公司的TIM和TAM产品为基础,主要解决目前企业内部办公门户、邮件、考勤、一卡通收费和其他专项业务系统等应用系统之间的用户身份信息统一管理、人员同步、单点登录等问题,同时,尽可能减少用户管理过程中的人工操作,提高管理的效率。系统提供多种用户和部门之间的从属关系,包括单用户从属多部门的关系,同时也支持部门之间的各种关系,从而实现用户和组织机构的统一管理。统一用户管理结构如图1所示。
TIM的概念
TIM (Tivoli Identity Manager)是一种用于管理用户和账户定义的产品。通过控制系统上的账户定义, 它允许公司控制用户能够访问哪个系统。
TIM服务器是一个基于Java应用服务器的J2EE应用,它包括一个Web服务器。TIM所有对象的定义都存储在目录树中,关系数据库中存储的主要是交易记录等无法存在目录树的其它数据。TIM工作的逻辑图如图2所示。
简而言之,TIM提供了一种简单、安全有效的解决方案来进行密码管理、用户配置和用户访问权限审计。
TAM的概念
TAM (Tivoli Access Manager)是一种访问控制产品。它通过强制实施访问控制策略防止对受保护的资源进行未授权的访问,可用于保护从单个文件到Web站点的多种类型系统资源的访问。
用户管理
对组织中各部门和下属公司的个人用户信息进行统一管理,包括从创建直至终止管理用户账户、访问权限和密码等。
组织机构管理
包括对各部门、下属公司和工作组的管理,使用户能与不同级别的部门机构进行关联和配置,从而与不同的角色和应用系统相对应。
系统应用的关键技术
TIM的代理程序
TIM需要对被管理的资源进行用户同步,这些资源包括内部办公门户系统、邮件系统、TAM、TAM GSO以及TIM本身的用户。TIM与被管理的资源进行用户同步,主要是通过TIM的代理程序来完成相应的操作的。当系统发出用户ID的部署请求时,TIM服务器将其提交给TIM的代理程序,由代理程序在被管理的资源上(例如操作系统、数据库、各种应用等)作用户身份信息的修改。
TDI连接器
对于非IBM的被管资源,包括内部办公门户系统、考勤系统、一卡通收费系统等,需要定制各应用系统的代理程序。TDI(Tivoli Directory Integrator)的作用就是定制受管资源的代理程序,从而实现用户同步。
TDI 是一款开放架构的元目录解决方案,适用于在应用程序或目录源之间实时同步和交换信息。它允许企业建立权威的、最新的身份数据基础设施,以用作业务关键安全性和 Web 服务应用程序的平台。
TDI提供的主要功能有以下几点:
- 获取对企业身份数据的控制;
- 使用 Java 脚本的开放架构;
- 连接器开发环境和预构建的连接器;
- 事件驱动和异常处理机制;
- 基于非持久性数据存储的灵活的和资源有效利用的架构。
当TIM与应用系统之间需要做用户同步时,首先需要建立TDI连接器。连接器的主要作用是负责连接各种设备、系统或者应用并且执行相应的操作,从而实现用户管理。
系统的实现
用户同步
对于基于IBM的产品的应用系统,如TAM、TAM GSO、Lotus domino、TIM等,IBM提供了相应的代理程序。要进行用户同步,只需安装这些代理程序(如TAM的代理程序TAMAgent46),并配置端口、通信策略等信息,同时在TIM中配置相应的服务和编写脚本即可。TIM与TAM的用户同步总体流程如图3所示。
对于非基于IBM产品的应用系统,首先需要建立连接器。连接器的开发可以使用java IDE开发。连接器的扩展类要实现接口:com.ibm.di.connector.Connector。其次,需要在TDI中建立组装线(AssemblyLines),包括对用户增加(cmAdd)、修改(cmUpdate)、删除(cmDelete)3条装配线。TDI把复杂的集成过程简化成一个个小的、可以管理的流程,叫做组装线。组装线代表了被连接系统间的单独的数据流向。最后,在TDI中建立事务处理程序(EvnetHandler),完成TIM的配置。
TAM认证和单点登录
系统使用统一的LDAP用户注册表,各应用系统通过接口同步用户信息。集团内部门户系统通过TAM认证和单点登录对各应用系统进行访问。基于统一用户的认证方式有:
- 通过LTPA传递
对于应用系统是IBM WAS应用服务器,配置启用应用服务器和应用的安全性,并通过在WAS中导出一个LTPA密钥,TAM中导入这个密钥来建立TAM和WAS间的信任关系,最终通过应用服务器来给应用传递用户信息。LTPA的逻辑结构如图4所示,认证流程如图5所示。
该方法由于使用WAS和J2EE的安全性,用户信息难以伪造,安全性高。
- 通过HTTP头传递
TAM对业务系统发送请求 时,在HTTP头中附加用户名信息,应用程序可以直接在HTTP头中获得用户。由于是在HTTP头中直接附加用户信息,存在伪造HTTP头信息冒充用户登录的风险,所以,要求业务系统必须部署在TAM后端,而不能直接与用户交互,需要网络的安全性来保证应用的安全性。HTTP头传递的逻辑结构如图6所示,认证流程如图7所示。
系统的实现
对于统一用户系统,TAM对访问权限的控制仅到登录验证这一层,对于更细节的访问控制,即某个URL,该用户是否有权访问,则由门户框架提供的Filter进行控制,需要为每个应用配置web.xml文件,添加此Filter。
结束语
系统以TIM和TAM为基础,利用TIM的代理程序和TDI连接器等技术,针对不同的应用系统作用户同步、认证和访问控制,使得用户对系统的访问更加方便快捷,也有利于企业安全策略的灵活实施。该系统的构建,为SZMG企业信息化平台的顺利实现提供了可靠保证,同时也为其它领域应用系统的整合和用户身份的统一管理提供了参考。
(全文完)
来源:《世界广播电视》
出版日期:2008年12月