技术开发 频道

集成基于Jazz Team Server的RQM与LDAP

【IT168 专稿】

    近日自己搭建了一个RQM(Rational Quality Manager)Server,有一些使用心得分享出来。RQM是一个基于Jazz协作平台的应用,而Jazz Team Server是一个基于Java的Web应用程序,伴随Rational Team Concert 1.0(简称 RTC1.0)一同发布。用户通过将Jazz Team Server部署在应用服务器(例如IBM WehSphere Application Server或Apache Tomcat)上来为RQM提供底层Web服务平台。

    基于Jazz Team Server的RQM在运行过程中,用户的认证管理与权限管理分别作为两个独立的部分进行管理。Jazz Team Server将用户认证工作剥离出去,交给Jazz Team Server运行所在的应用服务器(Application Server)实现。本文将以Apache Tomcat为例详细讲述如何实现应用服务器与企业常用的轻量级目录访问管理协议 LDAP 的集成来进行用户认证管理。

    本文将分四个部分来讲述LDAP的配置:配置Tomcat、配置Jazz Team Server、导入用户和用户授权,以及将用户加入Quality Manager项目区域。

    1. 配置Tomcat

    在配置Tomcat之前,需要停止RQM服务器。然后修改两个XML文件。

    server.xml  [root]\jazz\server\tomcat\conf\server.xml

    web.xml    [root]\jazz\server\tomcat\webapps\jazz\WEB-INF\web.xml

    1.1 修改server.xml

    替换如下部分:

<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
 resourceName="UserDatabase"/>

    为:

<Realm className="org.apache.catalina.realm.JNDIRealm"
 debug="9"
 connectionURL="ldap://<ldap.server>:389"
 userBase="ou=test,o=test"
 userSearch="(preferredIdentity={0})"
 userSubtree="true"
 roleBase="ou=memberlist,ou=test,o= test"
 roleSubtree="false"
 roleSearch="(uniquemember={0})"
 roleName="cn"
/>

    其中,红色斜体内容可替换成实际环境中的配置。

    1.2 修改web.xml

    增加如下四个部分 (红色斜体标记的为添加的部分):

    (1)首先映射LDAP组和安全角色。

    这里用户可以定义一个 LDAP组,然后赋予四种安全角色:JazzAdmins、JazzDWAadmins、JazzGuests和JazzUsers。也可以为四种安全角色定义不同的LDAP组。

<web-app id="WebApp">
 <servlet id="bridge">
  <servlet-name>equinoxbridgeservlet</servlet-name>
  <display-name>Equinox Bridge Servlet</display-name>
  <description>Equinox Bridge Servlet</description>
  <servlet-class>org.eclipse.equinox.servletbridge.BridgeServlet</servlet-class>
  <init-param><!-- ... --></init-param>
  <!-- ... -->
  <load-on-startup>1</load-on-startup>

<!-- Addendum
 If the names of your LDAP Groups are the same as the default Jazz roles
 you don't need to add the following tags
-->
  <security-role-ref>
   <role-name>JazzAdmins</role-name>
   <role-link>[LDAP Group for Jazz admins]</role-link>
  </security-role-ref>

  <security-role-ref>
   <role-name>JazzDWAdmins</role-name>
   <role-link>[LDAP Group for Jazz Data Warehouse Admin]</role-link>
  </security-role-ref>

  <security-role-ref>
         <role-name>JazzGuests</role-name>
          <role-link>[LDAP Group for Jazz guest]</role-link>
  </security-role-ref>

  <security-role-ref>
   <role-name>JazzUsers</role-name>
   <role-link>[LDAP Group for Jazz users]</role-link>
  </security-role-ref>
<!-- End Addendum -->

 </servlet>
 <!-- ... -->
</web-app>
 

    2.声明LDAP组为安全角色。

<web-app id="WebApp">
 <servlet id="bridge">
  <!-- ... -->
 </servlet>
 <!-- ... -->
 
 <security-role>
         <role-name>JazzAdmins</role-name>
         <role-name>JazzDWAdmins</role-name>
         <role-name>JazzUsers</role-name>
         <role-name>JazzGuests</role-name>

<!-- Addendum
 If the names of your LDAP Groups are the same as the default Jazz roles
 you don't need to add the following tags
-->
  <role-name>[LDAP Group for Jazz admins]</role-name>
  <role-name>[LDAP Group for Jazz users]</role-name>
  <role-name>[LDAP Group for Jazz Data Warehouse Admin]</role-name>
  <role-name>[LDAP Group for Jazz guest]</role-name>
<!-- End Addendum -->

 </security-role>
 <!-- ... -->
</web-app>

    3.添加组名称到一套安全角色,使得该组的用户被授予获得相匹配的网络资源。

<web-app id="WebApp">
 <!-- ... -->
 
 <security-constraint>
  <web-resource-collection>
   <web-resource-name>secure</web-resource-name>
   <url-pattern>/*</url-pattern>
  </web-resource-collection>
 
  <auth-constraint>
   <role-name>JazzUsers</role-name>
   <role-name>JazzAdmins</role-name>
   <role-name>JazzGuests</role-name>
   <role-name>JazzDWAdmins</role-name>

<!-- Addendum
 If the names of your LDAP Groups are the same as the default Jazz roles
 you don't need to add the following tags
-->
   <role-name>[LDAP Group for Jazz admins]</role-name>
   <role-name>[LDAP Group for Jazz users]</role-name>
   <role-name>[LDAP Group for Jazz Data Warehouse Admin]</role-name>
   <role-name>[LDAP Group for Jazz guest]</role-name>
<!-- End Addendum -->

  </auth-constraint>

  <user-data-constraint>
   <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
 </security-constraint>
 <!-- ... -->
</web-app>

    4.映射LDAP-JazzAdmins组和安全限制。

<web-app id="WebApp">
 <!-- ... -->
 <security-constraint>
  <web-resource-collection>
   <web-resource-name>adminsecure</web-resource-name>
   <url-pattern>/admin/cmd/*</url-pattern>
  </web-resource-collection>
 
  <auth-constraint>
   <role-name>JazzAdmins</role-name>

<!-- Addendum -->
   <role-name>[LDAP Group for Jazz admins]</role-name>
<!-- End Addendum -->

  </auth-constraint>
 
  <user-data-constraint>
   <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
 </security-constraint>
 <!-- ... -->
</web-app>

    完成修改server.xml和web.xml后,在Tomcat端的配置就完成了。

    2. 配置Jazz Team Server

    首先启动RQM服务器,打开Jazz Team Server setup的页面:https://<serverIP>:9443/jazz/setup,点击用户配置按钮进入用户配置页面,完成Jazz Team Server使用的存储数据库连接信息,Jazz Team Server的邮件通知功能的配置,进入用户注册配置(Setup User Registry)页面。

    这里,我们在"用户注册类型"域中选择LDAP,以完成Jazz Team Server与LDAP的集成。

    下一步,填写LDAP的主机和端口信息,并填写可以访问LDAP的用户信息,如果匿名用户,则留空。

    然后配置Jazz-LDAP用户映射,本例中使用Email地址登录Jazz Team Server:

    配置Jazz-LDAP组映射:

    在Jazz to LDAP Group Mapping一栏中,如果要设置多个LDAP中的组与某个Jazz角色相关联,中间要用分号隔开,LDAP_GROUP填写实际环境中的LDAP组名。

    然后设置用户组属性:

    最后使用页面右下角的"测试连接"按钮对上述LDAP集成配置信息进行测试,测试成功即表明Jazz Team Server与LDAP的集成已经成功建立。

    3. 导入用户和用户授权

    通过上面的操作,已经基本完成了LDAP认证的配置,下面需要将LDAP用户导入Tomcat数据库,然后给用户赋予相应的权限。

    使用Jazz Team Server管理员账户登录管理页面,https:// <serverIP>:9443/jazz/admin,并选择用户管理。

    用户管理-导入用户:

    进入导入用户(Import Users)界面,添加需要导入的LDAP用户,然后就可以在Active Users中看到导入的用户。

    用户管理-用户授权:

    LDAP用户导入Jazz Team Server数据库之后,还需要给不同用户分配不同的Jazz Team Server访问权限。在用户管理页面中选择"客户访问授权管理(Client Access License Management)"进入用户授权管理页面。

    该页面上,可以对用户授予不同的权限:Quality Manager、Test Lab Manager、Viewer、Connector等。

    示例以 Quality Manager授权管理为例。点击"Assign Quality Manager Licenses"按钮,在弹出的搜索对话框中输入用户查找条件,选中待授权用户并确认,就可以在页面下方授权用户列表中看到新填加的授权用户。

    也可以在用户的属性页面中对用户授权进行查看与设置。方法是进入活跃用户(Active Users)页面, 选中待授权用户,双击打开用户属性页面,见下图示例。需要注意的是,"Repository Permissions"是不能在用户属性中修改的,需要在Tomcat和Jazz Team Server Setup页面进行配置。通过对"Client Access Licenses"复选框进行修改可配置该用户对RQM的访问权限。

    4. 将用户加入项目区域

    最后我们还需要将用户加入RQM的项目区域(Project Area)中。

    使用Jazz Team Server管理员账户登录管理页面,https:// <serverIP>:9443/jazz/admin,并选择Project Areas。

    这里只有一个名为Quality Manager的项目区域。点击进入Quality Manager项目区域。

    点击Members右方的Add,将用户加入到Quality Manage项目区域中。

    现在,所有的配置都完成,用户可以使用自己的LDAP帐号登录RQM。

    通过本文的介绍,相信读者已经可以一步步的建立RQM与LDAP的集成,使用LDAP为RQM提供用户身份安全验证。

    5. 参考资料

    https://jazz.net/wiki/bin/view/Main/LDAP4Dummies

0
相关文章