现在的位置: 首页 > 综合 > 正文

利用 IBM Tivoli Directory Server V5.2 实现 WebSphere Application Server V6.0.x 的全局安全性并保护 WAS 管理控制台

2014年01月28日 ⁄ 综合 ⁄ 共 6364字 ⁄ 字号 评论关闭

1 摘要

在WebSphere Application Server V6.0.x的环境中,其管理服务缺省是未启用安全性的。在生产环境中,这样的缺省设置一定要注意。其带来的直接影响就是:WAS的管理控制台并不要求验证用户名密码就能登陆,进行所有的管理操作。鉴于生产环境的重要性,保护WAS的管理服务,是一定要采取的必要行动。

WAS的许多文章都讨论了如何启用安全性,如何利用各种用户注册表来进行安全性验证。由于在ND的环境中,SWAM(简单WebSphere认证机制)是不支持的,因此"LTPA(轻量级第三方认证) + LDAP(轻量级目录访问协议)用户注册表"是我们保护WAS的首选方式。本文本着实用的目的,介绍在WebSphere Application Server Network Deployment V6.0.x的环境中如何结合IBM
Tivoli Directory Server V5.2保护WAS的管理服务器。

2 引言

本文讨论如何启用WebSphere Application Server Network Deployment V6.0.x的全局安全性,并使用IBM Tivoli Directory Server V5.2作为管理用户的注册表。这种情况适用于配置了集群的WAS ND环境。本文只简单讨论了WAS全局安全性的启用,并未深入讨论其对部署在WAS中应用的影响。如果相要进一步了解这方面的内容,请参看WAS的在线文档:InfoCenter。

因此本文适用于应用的安全性是自行开发实现,并没有使用J2EE和WAS安全框架的情况。

本文的示例基于AIX操作系统,供大家参考。

3 如何保护WAS及其相关的环境

3.1 WAS ND 安装拓扑:

下图显示了用于 WebSphere Application Server Network Deployment 安装的典型集群多层企业计算环境。

当启用了WAS的全局安全性后,登陆WAS的管理控制台会启用SSL,而在WAS中HTTPS 端口配置缺省使用的是自签署证书: DummyServerKeyFile.jks 和 DummyServerTrustFile.jks。

但使用这样的虚密钥和信任文件证书不安全,并且会在一定时间后过期,在生产环境,您必须生成自己的证书,以立即替换虚密钥。


集群(Cluster)的WAS ND环境示意图
集群(Cluster)的WAS ND环境示意图 

3.2 全局和管理安全性:

WebSphere Application Server 内部通信通过 CSIv2 和安全认证服务(SAS)安全协议以及 HTTP 和 HTTPS 协议彼此交互。

启用 WebSphere Application Server 全局安全性时,可以同时配置相关的协议以使用安全套接字层(SSL)。启用全局安全性后,每台服务器中的 WebSphere Application Server 管理子系统在进行配置和同步时,所采用的SOAP JMX 连接器会使用 HTTPS 协议。因此建议您启用全局安全性并启用 SSL 以保护您的配置数据。

启用全局安全性后,可以通过去掉"全局安全性"页面上的"启用全局安全性"选项来禁用每个应用程序服务器上的应用程序安全性。请从管理控制台,单击"安全性 > 全局安全性"访问"全局安全性"页面。

3.3 基于角色的安全性:

WebSphere Application Server的管理系统定义了四个管理安全性角色:

1. 监控员角色

监控员可以查看配置信息和状态,但是不能进行任何更改。

2. 操作员角色

操作员可以更改运行时状态(例如启动应用程序服务器或停止应用程序),但是不能进行配置更改。

3. 配置者角色

配置者可以修改配置信息,但是不能更改运行时的状态。

4. 管理员角色

管理员上述三种角色的权力,可以修改安全配置和安全策略(例如,设置服务器标识和密码)、启用或禁用全局安全性和 Java 2 安全性,以及将用户和组映射到管理员角色。

4 管理控制台用户注册表

WebSphere Application Server 提供几种安全用户实现方式,目前一般采用三种方式来安全认证访问用户:

1. 本地操作系统用户(Local OS)

采用本机操作系统用户验证登录。

2. LDAP

需要安装LDAP服务器,比如IBM Directory Server、Lotus Domino LDAP 服务器、SunONE 或 iPlanet Directory Server、Microsoft Active Directory Server等。

3. 定制注册表(Custom Register)

当用户信息存放于非第一或者第二中注册表中时,您可以通过实现 UserRegistry 接口使用产品环境中存放用户信息使用的任何注册表。

在当前用户和组的信息以某些其他格式(例如,数据库)存放并且无法移到本地操作系统用户或 LDAP 的情况下,请实现WAS的 UserRegistry 接口,这样 WebSphere Application Server 就可以将现有注册表用于所有与安全性相关的操作。

注意:尽管 WebSphere Application Server 支持不同类型的用户注册表,但只能有一个用户注册表是活动的。

在本文讨论的安全策略中,由于本地操作系统的用户本身就需要考虑安全保密的问题,而且密码会经常更改,因此不适宜用于管理控制台安全性设置。定制注册表的方式又太过复杂。因此本方案建议采用LDAP的方式进行用户管理注册。

4.1 轻量级目录访问协议(LDAP)

轻量级目录访问协议(LDAP)是我们推荐使用的用户注册表,它利用 LDAP 绑定执行认证。

WebSphere Application Server 安全性能够支持多数主流 LDAP 目录服务器产品。要将 LDAP 用作用户注册表,您需要知道有效的用户名(标识)、用户密码、服务器主机和端口、基本专有名称(DN)。

当在WAS中启用安全性时,服务启动需要输入LDAP服务器的标识和密码并由LDAP注册表认证。如果认证失败,服务器无法启动。因此,选择不会到期或不经常更改的标识和密码是很重要的。如果需要在LDAP注册表中更改WAS管理控制台的用户标识或密码,确保一定要在所有WAS服务启动并正在运行时执行更改,否则WAS将会无法正常启动。

如果LDAP注册表中更改了用户标识、密码和其他配置信息,则在WAS管理控制台上也要做相关的更改,然后保存、停止并重新启动所有WAS相关服务器,以使产品使用新的标识或密码。最妥善的办法是,在更改LDAP注册表中信息之前,在WAS的管理控制台上禁用"全局安全性",等LDAP的信息修改完成,再修改WAS管理控制台和其相关的信息,然后启用安全性,再重启WAS。

4.2 使用 IBM Tivoli Directory Server 作为 LDAP 服务器

在WebSphere Application Server产品包中包括了一个专业的目录服务器IBM Tivoli Directory Server(以前的 IBM Directory Server)。IBM Tivoli Directory Server是IBM公司的LDAP目录服务器产品。该目录服务器是目前使用得最为广泛的目录服务器之一。该目录服务器为具有大量用户信息管理的企业提供用户管理的基础服务。

在本例中,由于IBM Tivoli Directory Server中存放的信息只用于管理控制台的安全性,应用并未使用,因此,只存放了少量的用于管理控制台的用户信息。另外,IBM Tivoli Directory Server启动与否只影响WebSphere Application Server进程的启停和管理控制台的登录,并不影响应用的运行。

重要: 建议您不要在安装 WebSphere Application Server V6.x 的同一机器上安装 IBM Tivoli Directory Server V5.2。 如果 IBM Tivoli Directory Server V5.2 和 WebSphere Application Server V6.x 安装在同一机器上,您可能遇到端口冲突。

在本文讨论"管理LDAP"的章节,会谈到如果 IBM Tivoli Directory Server V5.2 和 WebSphere Application Server V6.x 安装在同一机器上,需要做哪些更改以解决这些端口冲突。

IBM Tivoli Directory Server的安装比较简单,通过图形安装界面的向导即可。请参见其安装文档。

Tivoli Directory Server需要DB2存放数据。DB2可以从IBM Tivoli Directory Server的安装包中一起安装。本文为了简单起见,在安装IBM Tivoli Directory Server之前,请先确定已经安装了DB2 Version 8.1 FixPak 2。

在AIX操作系统上安装,请从安装介质的根目录中输入:./setup

4.3 配置管理Tivoli Directory Server

4.3.1 准备数据库用户

以AIX系统为例,如果Tivoli Directory Server的底层DB2数据库未事先安装,而是在Tivoli Directory Server安装时一起安装的,请执行下列操作系统的命令。如果已经实现安装配置了DB2,请跳过此节,参看下一节。

1. 创建组db2iadm1:


mkgroup db2iadm1


2. 创建用户db2inst1,该用户是组db2iadm1 和idsldap(或者ldap)的成员:


mkuser pgrp=db2iadm1 groups=db2iadm1,idsldap home=/home/db2inst1 db2inst1 


如果上述命令执行不成功,可以用下面这句:


mkuser pgrp=db2iadm1 groups=db2iadm1,ldap home=/home/db2inst1 db2inst1


3. 为db2inst1设置password:


passwd db2inst1 


4. 将root 用户加入组 db2iadm1:


/usr/bin/chgrpmem -m + root db2iadm1 


4.3.2 配置LDAP:

1. 执行/usr/ldap/bin/ldapxcfg,启动LDAP的图形化配置界面。

2. 设置LDAP的管理员 DN/password,这里密码设为"password":


设置LDAP的管理员 DN/password 

3. 配置LDAP的底层数据库,请按照如下步骤和截图上的信息输入:

a) 步骤一


步骤一 

b) 步骤二


步骤二 

c) 步骤三


步骤三 

d) 步骤四


步骤四 

e) 步骤五:选择数据库文件所在的路径。

注意,如果没有root用户权限,则请把该数据库文件的路径放在/home/db2inst1下,而不是下图中示意的路径:


步骤五 

f) 步骤六


步骤六 

g) 配置成功:


配置成功 

4. 管理后缀:

该步骤是为WAS的管理用户创建一个新的后缀(也就是WAS的管理用户信息的根。在本例中,WAS管理用户信息在LDAP中的子树的根为o=test)。该示例为:o=test


管理后缀 

4.3.3 管理LDAP

1. 启动和停止管理守护程序

缺省情况下,LDAP安装好后,管理守护程序就自动启动了。如果要手工启动和停止,参看下列方法:

a) 启动Tivoli Directory Server目录管理守护程序,请执行该命令:


Ibmdiradm


b) 停止Tivoli Directory Server目录管理守护程序,请执行该命令:


ibmdirctl -D <adminDN> -w <adminPW> admstop


(注意,在本例中,<adminDN>为cn=root, <adminPW>为password) 或者使用:


ps -ef | grep ibmdiradm
kill -p <pid obtained by previous command>


2. LDAP管理

a) 解决开始管理之前的端口冲突:

本文一开始介绍过,建议IBM Tivoli Directory Server V5.2 和 WebSphere Application Server V6.x 不要安装在同一机器上。如果您是这种情况,请跳过该步骤,从步骤b)开始。

本步骤针对LDAP服务器和WAS ND服务器同在一台服务器的情况。

TDS采用WebSphere Application Server - Express实现管理服务,会和WAS ND产生端口冲突。因此在开始前请一定更改WebSphere Application Server - Express的缺省端口号。

WebSphere Application Server - Express 使用6个缺省端口设置

i. Http 传输端口1:9080
ii. Http 传输端口2:9443
iii. Bootstrap/rmi 端口:2809
iv. Soap 联接器端口:8880
v. 管理端口9090,和AIX的服务冲突
vi. 管理端口的加密端口9043

在TDS中,WebSphere Application Server - Express 的安装目录是"/usr/ldap/appsrv",请在如下目录的三个文件中,找到上述6个端口号,更改为不会和其它服务冲突的端口:

  • /usr/ldap/appsrv/config/cells/DefaultNode/nodes/DefaultNode/servers/server1/server.xml
  • /usr/ldap/appsrv/config/cells/DefaultNode/virtualhosts.xml
  • /usr/ldap/appsrv/config/cells/DefaultNode/nodes/DefaultNode/serverindex.xml

在AIX上执行如下命令,找到6个没有被占用的端口号:

  • netstat -na | grep 9070
  • netstat -na | grep 9477
  • netstat -na | grep 2801
  • netstat -na | grep 8770
  • netstat -an | grep 9091
  • netstat -an | grep 9047

将上述三个文件做好备份,然后做如下更改:

  • 9080 更改为9070
  • 9443更改为9477
  • 2809更改为2801
  • 8880更改为8770
  • 9090更改为9091
  • 9043更改为9047

b) 请转至如下目录并启动TDS里带的WAS-Express:


<IDSinstalldir>/ldap/appsrv/bin/startServer.sh server1


c) 登录Tivoli Directory Server管理控制台:


http://localhost:9080/IDSWebApp/IDSjsp/Login.jsp



登录管理控制台 

输入缺省用户名:superadmin

密码:secret

注意,上述密码是缺省的,可以在登录后更改。

d) 配置一个受管理的LDAP服务器:


配置LDAP服务器 

配置LDAP服务器 

e) 退出到管理控制带的登录界面,从下拉菜单中选择服务器的LDAP主机名,输入该服务器的DN(例如"cn=root")和密码。


退出到管理控制带的登录界面 

f) 启动/停止LDAP服务器的界面:


启动/停止LDAP服务器的界面 

4.3.4 为WAS的管理添加用户(录入数据):

1. 登录Tivoli Directory Server管理控制台(从下拉菜单中选择服务器的LDAP主机名,输入该服务器的DN(例如"cn=root")和密码。):http://localhost:9080/IDSWebApp/IDSjsp/Login.jsp

2. 创建o=test子树的根:

a) 按照下图所示,点击"添加"


点击添加 

b) 按照下图所示,选择"organization"


选择organization 

c) 在添加辅助对象类的界面上保持缺省,点击下一步。

d) 注意下面界面中红色方框中的值,父DN中内容一定要为空


图 

e) 点击确定,然后按下图选择,然后点击"添加"。


图 

f) 选择organizationalPerson:


图 

g) 在"选择辅助对象类"的界面上选择"ePerson",点击"添加"


图 

h) 点击"下一步"开始建用户。

i) 以"admin2"用户为例,在"必需属性"页面上,输入如下信息。


图 

抱歉!评论已关闭.