级别: 中级 刘 丹, 系统集成测试工程师, IBM 姜 云飞, 系统集成测试工程师, IBM 鞠 琳, 系统性能测试经理, IBM
2009 年 3 月 24 日 企业在引入 Rational Team Concert(RTC)、Rational Quality Manager(RQM)等基于 Jazz Team Server 的 Rational 产品的过程中,如何将新引入的 Rational Web 服务快速有效的与已有 IT 系统集成应用,将是企业 IT 人员面临的首要问题。本文将重点解答这个问题,详细讲述如何在成功部署 Jazz Team Server 之后,实现 IT 系统已有的企业用户管理系统(例如 LDAP)与 Jazz Team Server 用户管理的集成。
Jazz Team Server 是一个基于 Java 的 Web 应用程序,它被封装为一个 web 存档文件(WAR 文件),伴随 Rational Team Concert 1.0(简称 RTC1.0)一同发布。用户通过将 Jazz Team Server 部署在应用服务器(例如,IBM WehSphere Application Server;Apache Tomcat)上来为 RTC 提供底层 Web 服务平台。 Jazz Team Server 将成为 IBM Rational 新一代产品的协作平台,为 RTC,RQM(Rational Quality Manager)以及 RRC(Rational Requirement Composer)提供 Web 服务。
但是,在企业引入 RTC、RQM 等基于 Jazz Team Server 的 Rational 产品过程中,如何将新引入的 Rational Web 服务快速有效的与已有 IT 系统集成应用,将是企业 IT 人员面临的首要问题。本文将重点解答这个问题,详细讲述如何在在成功部署 Jazz Team Server 之后,实现 IT 系统已有的企业用户管理(例如:LDAP)与 Jazz Team Server 用户管理集成。
Jazz Team Server 的用户管理机制
基于 Jazz Team Server 的 Rational 产品在运行过程中,用户的认证管理与权限管理分别作为两个独立的部分进行管理。Jazz Team Server 将用户认证工作剥离出去,交给 Jazz Team Server 运行所在的应用服务器(Application Server)实现。而 Jazz Team Server 本身只实现对用户的权限管理,即对获得认证的用户进行授权管理。也就是说,Jazz Team Server 在为用户提供服务的过程中对用户的登录密码等信息是不可见的,Jazz Team Server 用户的认证信息,例如用户名,登录密码,电子邮件等注册信息由 Jazz Team Server 外部的应用服务器或者为应用服务提供身份验证功能的用户目录协议 LDAP 进行管理和维护。
Jazz Team Server 的用户认证管理
Jazz Team Server 运行在应用程序服务器上,并且使用应用程序服务器提供的用户认证管理机制,这样作的好处是,第一,利用应用程序服务器来处理用户认证,Jazz Team Server 将认证与授权分开管理,将用户管理认证向外转移,使得 Jazz Team Server 可以更专注于业务逻辑而不必关心用户访问安全。第二,可以利用应用服务器与企业常用的轻量级目录访问管理协议 LDAP 的集成接口实现 Jazz Team Server 与 LDAP 的集成,进而实现 Jazz Team Server 重用现有 IT 系统中的用户,将 Jazz Team Server 与已有 IT 系统无缝连接。第三,将用户认证管理置于应用程序服务器一级,使得管理员用户可以在 Jazz Team Server 后台数据库尚未配置可用的情况下仍然可以对 Jazz Team Server 进行服务配置,用户权限配置等管理员操作。
下图很好的说明了用户向 Jazz Team Server 发送登录请求时的用户认证过程:
图 1. 应用服务器实现 Jazz Team Server 用户认证
当一个用户向 Jazz Team Server 发送登录请求时候,首先需要经过应用程序服务器用户身份安全认证。如果认证没有通过的话,那么应用程序服务器直接向用户返回错误的消息,不会继续将该请求发送给 Jazz Team Server。图 1 中的应用服务器安全认证采用的是 LDAP 集成方式,因此,应用服务器会将认证请求转发给 LDAP 进行验证。如果 LDAP 返回验证通过,即用户通过了应用程序服务器的认证,应用服务器则将此请求转发给 Jazz Team Server 进行权限判断处理。在用户权限判断处理中,Jazz Team Server 根据用户名检查用户的角色及其被授予的权限,来判断用户对 Jazz Team Server 库的读写管理等操作权限。
由此也可以看出。当用户通过了身份验证之后,该用户的服务请求对 Jazz Team Server 都是只有用户名而无密码的。这也充分说明了 Jazz Team Server 将用户身份安全验证和用户权限管理的完全剥离。
Jazz Team Server 的用户权限管理
将用户安全验证的工作分离出应用本身之后,Jazz Team Server 对发送请求的用户身份判断就将集中于用户权限判定上,允许请求用户是否具有执行特定的操作的授权。Jazz Team Server 对用户权限的管理分为两部分,角色和授权。
第一步,角色与用户的映射。基于 Jazz Team Server 的 Rational 产品在部署过程中,需要在应用服务器控制台中定义 Jazz Team Server 角色与用户 / 用户组的映射关系,即为每个 Jazz Team Server 用户分配一个 Jazz Team Server 角色。这里,Jazz Team Server 角色是预定义的,目前尚不支持客户定制角色。
第二步,用户授权。用户仅仅具有某个角色是不够的,还需要经过授权(Assign License)才可以执行权限限制范围内的操作。Jazz Team Server 同样预定义了四种授权类型,每种类型拥有有限个授权数量,即只有一定数量的数量用户可以执行该类型定义的操作。拥有此类型授权的用户就可以执行授权范围内的操作。
当用户请求被传送到 Jazz Team Server 应用程序时,Jazz Team Server 就是通过上述两个方面对该请求用户的权限范围进行判断,进而确定该用户是否有权发起当前服务请求。这样 Jazz Team Server 就完成了对用户请求的权限判断。
目前 Jazz Team Server 支持的安全验证方式
使用应用服务器进行用户认证管理,既能充分利用应用服务器已有的用户验证能力,又有利于 Jazz Team Server 与常用的企业用户目录管理系统进行集成。因此,Jazz Team Server 所在的应用服务器所支持的用户验证方式都可以成为 Jazz Team Server 的用户验证方式。以 IBM WehSphere 应用服务器(WebSphere Application Server,简称 WAS)为例,WAS 支持四种用户数据库(User Account Repository)的身份验证:联合存储用户验证,本地操作系统用户验证,LDAP 用户验证以及独立的客户数据库的用户验证。因此,部署在 WAS 上的 Jazz Team Server 将同样支持这四种用户注册数据库验证方式。
虽然应用服务器支持的用户数据库验证方式千差万别,但 Jazz Team Server 不可能分别为每种可能使用的验证方式提供接口,因此, Jazz Team Server 将这些各不相同的外部用户数据库分为三类:Tomcat 用户用户数据库验证,LDAP 用户验证和非 LDAP 其他用户数据库验证。
使用 Tomcat 用户数据库验证作为 Jazz Team Server 身份安全验证的方法是这三种验证方式中最简单易用的,并且配置工作量最小。但是由于它只适用于 Jazz Team Server 运行在 Tomcat 应用服务器上的场景,因此,受到应用服务器的限制而不具有通用性。
使用非 LDAP 其他用户数据库验证方式适用于 LDAP 以外的应用服务器所能支持的其他的各种用户数据库验证方式。例如上文提到的 WAS 支持的联合存储用户数据库,服务器本地操作系统用户。这种用户数据库验证方式使得 Jazz Team Server 可以与非 LDAP 管理的 IT 系统进行集成,增加 Jazz Team Server 用户验证的多样性,扩大的 Jazz Team Server 的应用范围。但是,如前所述,由于用户数据库的不确定性,Jazz Team Server 不能为每种用户数据库提供专用的集成接口,因此,需要用户手动的将用户数据库中的已有用户信息逐条的在 Jazz Team Server 数据库中建立对应的用户信息,增加了 Jazz Team Server 与目标系统集成时的配置工作量。当需要增加系统新用户时,需要同时在用户数据库中和 Jazz Team Server 数据库中分别建立该用户的记录信息并保持映射关系与信息同步,会导致 Jazz Team Server 使用过程中的维护成本加大。
LDAP 用户验证是目前企业级 IT 系统中最常用的用户验证方法,也是实现用户身份认证与授权分离的理想工具。因此,下面的章节将详细的介绍如何实现 Jazz Team Server 与 LDAP 用户验证集成,通过一步一步的图例说明引导读者完成集成配置。
基于 Jazz Team Server 的 Rational 产品与 LDAP 的集成
由前所述,Jazz Team Server 的用户安全身份验证是交由其所在的应用服务器完成的,因此 Jazz Team Server 与 LDAP 的集成是建立在应用服务器与 LDAP 集成的基础之上的。本章将以 IBM WehSphere 应用服务器(WAS)为例,按照 WAS 安全配置,LDAP 设置以及 Jazz Team Server 安全配置的顺序详细描述部署在 WAS 上基于 Jazz Team Server 的 Rational 产品如何实现通过 LDAP 实现身份验证的。
配置 WAS 安全性:
登录 WAS 管理控制台 https://IP:9043/ibm/console/login.jsp,选择“安全管理、应用程序和基础结构”页面,如图 2 所示:
图 2. WAS 管理控制台
在“安全管理、应用程序和基础结构”页面中,启用管理和应用程序安全性,并将 LDAP 认证方式设置为当前的值,如图 3 所示:
图 3. 选择 WAS 用户管理类型
这样,我们就把运行 Jazz Team Server 的应用服务器 WAS 配置为使用 LDAP 进行 WAS 用户安全验证。注意,此时尚未完成 LDAP 的参数设置,所以不要选择“Apply”按钮。当完成后续 LDAP 配置之后,才能完成配置,点击“Apply”按钮。
配置 LDAP
将 WAS 配置为 LDAP 验证之后,下一步需要在 WAS 配置相应的 LDAP 信息。如图 3 中的第二步所示,由此按钮进入 LDAP 配置页面。本小节中的截图来自我们的一个应用实例,读者可以根据自身环境的不同,做相应的更改。
第一,配置一般属性。在 Host 域中填入 LDAP 管理员账户,LDAP 主机信息,端口号以及 DN 信息。如图 4 所示:
图 4. 为 WAS 配置 LDAP 信息
第二,打开“高级 LDAP 用户注册表设置”(图 5),设置相应的属性,例如用户过滤条件,用户组过滤条件等。此处需要设置用户登录时所使用的用户名是什么,如图 6 所示,可以选择使用 emailaddress 作为登录用户名。
图 5. 高级配置
图 6. 建立映射关系
第三,退出控制台,使用图 4 中设置的 LDAP 管理员用户名登陆 WAS,检查是否能登陆成功。LDAP 管理员能成功登录 WAS 控制台则表明上述配置已经成功的应用到 WAS 上了,可以继续下面的步骤。
配置 Jazz Team Server 应用程序的安全性
LDAP 与 WAS 的集成配置成功后,需要为 Jazz Team Server 定义的角色进行用户映射。
回到在 WAS 管理控制台,打开“企业应用程序 > jazz_war > 安全角色到用户/组映射”属性,如图 7,选择要配置的角色,为该角色添加用户。这里以配置 JazzAdmins 为例:
图 7. Jazz Team Server 预定义角色列表
点击查找用户(组)按钮,搜索 LDAP 中保存的用户记录,并将需要具有相应角色的用户添加到右面的列表中,如图 8 所示。
图 8. 为 Jazz Team Server 角色填加用户
点击确定按钮就可以看到角色 JazzAdmin 中已经映射了相应的用户信息,如图 9 所示。
图 9. Jazz Team Server 角色中的用户列表
用同样的方法映射其他的角色并重启 Jazz Team Server 应用程序,完成对 Jazz Team Server 角色的用户映射。
Jazz Team Server Setup
完成 WAS 配置之后,最后一步就是完成 Jazz Team Server Setup。
首先打开 Jazz Team Server setup 的页面:https://9.123.108.251:9443/jazz/setup,点击用户配置按钮进入用户配置页面。
JazzSetup 页面使用五个步骤引导用户完成 Jazz Team Server 的用户配置,包括 Jazz Team Server 使用的存储数据库连接信息,Jazz Team Server 的邮件通知功能的配置,以及本小节的重点“Setup User Registry”,如图 10 所示。这里,我们在“用户注册类型”域中选择 LDAP 以完成 Jazz Team Server 与 LDAP 的集成。
图 10. 用户管理类型
在同一页面的中间部分,需要用户填写 LDAP 的主机和端口信息,并填写可以访问 LDAP 的用户信息,如果匿名用户,则留空。如图 11 所示:
图 11. LDAP 信息
在这个页面的第三部分,用户需要将 Base User DN、User Property Names Mapping、Base Group DN 以及 Jazz to LDAP Group Mapping 域信息准确填写。这里的设置与“配置 LDAP”小节中的 WAS-LDAP 设置的是一样的。如图 12,13 所示:
图 12. Jazz -LDAP 用户映射
图 13. Jazz-LDAP 组映射
需要说明的是,在 Jazz to LDAP Group Mapping 一栏中,如果要设置多个 LDAP 中的组与某个 jazz 角色相关联,中间要用分号隔开,如:
JazzAdmins=AdmGroup1;AdmGroup2,JazzUsers=UsersGrp,JazzDWAdmins=DWGrp,JazzGuests= otherGroup1; otherGroup2;JazzGuestsGroup。当然,这些组必须存在于 LDAP 中。
最后设置 Group Name Property 和 Group Member Property 的值,如图 14 所示。在每个属性名称的下面都有灰色的说明性文字,对这个属性的作用进行详细解释,具体的数值设置用户可以根据自己的需要进行设定。
图 14. 用户组属性
使用页面右下角的“测试连接”按钮对上述 LDAP 集成配置信息进行测试,测试成功即表明 Jazz Team Server 与 LDAP 的集成已经成功建立,LDAP 用户可以按照“配置 LDAP”小节中指定的用户名映射方式,使用 LDAP 用户名或者 email 地址登录 Jazz Team Server。
导入 Jazz Team Server 用户
通过前四个小节的操作,用户已经完成了 Jazz Team Server 和 LDAP 的集成,LDAP 用户可以使用 LDAP 账户登录 Jazz Team Server,这表明该用户已经通过了 Jazz Team Server 的身份安全验证过程,可以访问 Jazz Team Server。但读者会发现,这个 LDAP 用户虽然可以登录,但是却不能执行任何操作,这就说明该用户目前只是获得了 Jazz Team Server 的安全认证,还没有任何操作权限。这就需要执行最后一步配置操作,将 LDAP 用户导入 Jazz Team Server 后台存储数据库中,并为每个用户赋予所需的 Jazz Team Server 执行权限。具体操作步骤如下:
使用 Jazz Team Server 管理员账户登录 Jazz Team Server 管理员页面,https://9.123.108.251:9443/jazz/admin,并选择用户管理 Tab 页,如图 15 所示:
图 15. 用户管理-导入用户
选择用户管理页面中的“Active Users”,点击“Import Users”。该按钮讲启动一个查询对话框,根据用户提供的查询条件搜索当前 Jazz Team Server 所使用的用户管理数据库,并列出符合查询条件的账户记录供选择。如图 16 所示,Jazz Team Server 管理员在查询对话框中输入查询条件并搜索,在查询结果中选择需要填加到 Jazz Team Server 中的用户信息,点击“select”将用户填加到已选择用户中。用户可以按此方式使用不同查询条件填加其他用户,全部选择完毕后点击 OK 确认。此时 Active Users 中就可以查看到刚才由 LDAP 中导入的用户信息。
图 16. 导入用户
将 LDAP 用户导入 Jazz Team Server 数据库之后,还需要给不同用户分配不同的 Jazz Team Server 访问权限。如图 17 所示,在用户管理页面中选择“客户访问授权管理”进入用户授权管理页面。该页面上,每种 Jazz Team Server 产品授权都有相应的 Tab 页面管理,图 17 示例就是以 RTC contributor 授权管理为例。管理员点击“分配 Contributor 授权”按钮,在弹出的搜索对话框中输入用户查找条件,选中待授权用户并确认,就可以在页面下方授权用户列表中看到新填加的授权用户。
图 17. 用户管理-授权管理
客户访问授权管理页面为 Jazz Team Server 管理员提供了一个统一的授权管理界面。对于单个用户,也可以在用户的属性页面中对用户授权进行查看与设置。
编辑用户属性时需要要注意的是,“Repository Permissions”是不能在属性页面设置的。该属性需要在应用服务器(例如,WAS,Tomcat)和 Jazz Team Server setup 页面进行设置。用户属性页面中的“Client Access Licenses”就是当前这个用户所具有的对 Jazz Team Server 产品的访问权限,可以通过复选框进行修改,如图 18 所示:
图 18. 用户属性
结束语
通过第三节的叙述,相信读者已经可以一步步的建立 Jazz Team Server 与 LDAP 的集成,使用 LDAP 为 Jazz Team Server 提供用户身份安全验证。由于 LDAP 是目前企业级应用最为广泛的用户管理系统,希望本文能够为广大 Jazz Team Server 产品用户和即将引入基于 Jazz Team Server 产品的用户提供清晰的思路,理解 Jazz Team Server 的用户身份验证和权限管理机制,快速高效的将 Jazz Team Server 产品与用户已有 IT 系统实现无缝衔接,享受 Jazz Team Server 的全新体验!
免责声明
本文发表的话题仅为介绍性内容,并非代表 IBM 的立场、策略和观点。本文档所介绍的信息仅仅限于本文的环境。本文档不提供任何类型的包括显式或隐含的担保,不对任何(但不限于)收入或利润的损失或其它间接的、特殊的、偶然的、必然的损失负责,使用者将自行承担由于使用本文档所造成的各类经济损失和法律责任,本文作者、IBM 以及发表本文的站点不负相关责任。相关技术细节,请咨询 IBM 公司、操作系统服务提供商。
参考资料 学习
获得产品和技术
讨论
作者简介  | |  | 刘丹,IBM CDL Rational 系统集成与性能测试工程师,熟悉 Rational RUP 为主的 Rational 产品解决方案,熟悉基于 Jazz 的 Rational 相关产品,现致力于基于 Jazz 产品的性能测试。 |
 | |  | 姜云飞,IBM CDL Rational 系统集成测试工程师,熟悉 Rational CRM 为主的Rational 产品解决方案,熟悉基于 Jazz 的 Rational 相关产品,现致力于基于 Jazz 产品的性能测试。 |
 | |  | 鞠琳,IBM CDL Rational 系统性能测试经理,负责 Rational 软件生命周期管理为主的 Rational 产品解决方案,负责基于 Jazz 平台的 Rational 产品的性能测试。 |
对本文的评价
|