使用 Tivoli Directory Server V6.3 在 WebSphere Lombardi Edition V7.2 中配置全局安全性

学习如何使用 LDAP 服务器在 IBM® WebSphere® Lombardi® Edition V7.2 中配置全局安全性。这会帮助企业用户登录并使用 Lombardi Edition 中的各个应用程序,让 IT 部门更好地进行访问控制。本教程使用 IBM Tivoli® Directory Server V6.3 作为 LDAP 服务器,使用 IBM DB2® 作为数据库。

Ashok Iyengar, 高级软件工程师, IBM

Ashok IyengarIBM Software Services for WebSphere (ISSW) Pre-sales Tech Team 成员。他大量使用 WebSphere Business Integration 平台,进行概念证明、试验和架构设计。Ashok 酷爱写作,他新近出版的书是 WebSphere Business Integration Primer



2011 年 6 月 07 日

简介

WebSphere Lombardi Edition V7.2(以下简称 Lombardi Edition)为 WebSphere Process Server、iLOG、FileNet 和 DB2® 提供更好的集成方法。Lightweight Directory Access Protocol (LDAP) 服务器是存储用户信息(比如用户 ID 和密码)并对用户进行身份验证的目录存储库。本教程讲解如何使用 LDAP 服务器在 Lombardi Edition 中配置全局安全性。这让 LDAP 中的企业用户能够登录并使用 Lombardi Edition 中的各个应用程序,让 IT 部门更好地进行访问控制。本教程中的示例使用 Tivoli Directory Server V6.3 作为 LDAP 服务器,使用 IBM DB2® 作为数据库。

目标

在本教程中,学习:

  • 如何安装并配置 Tivoli Directory Server。
  • 如何创建并导入 LDAP Data Interchange Format (LDIF) 文件。
  • 使用联合存储库配置 WebSphere 安全性。

先决条件

您需要熟悉:

  • WebSphere Lombardi Edition V7.2
  • LDAP 服务器和 LDAP 模式
  • 关系数据库系统,比如 DB2

系统需求

需要在分布式平台上运行的 WebSphere Lombardi Edition V7.2,它应该能够访问 DB2 V9.7.1。可以选择在 Windows® 服务器或 Linux 平台上安装 Tivoli Directory Server V6.3。

学习时间

2 小时


安装 Lombardi Edition V7.2

本教程假设您已经成功地安装了 WebSphere Lombardi Edition 7.2。在本教程中,<WLE_HOME> 是指 C:\IBM\Lombardi720

  1. 进入 <WLE_HOME>/AppServer/profiles/Lombardi/bin。使用 serverStatus 实用程序检查 server1 是否正在运行。输入命令 serverStatus -all
  2. 确保可以启动 Integrated Solutions Console(通常称为 WebSphere Administrative Console)。默认的 URL 是 http://<HOST_NAME>:9060/ibm/console
    1. 如果可以使用 tw_user 作为用户 ID 和密码登录,就确认了 server1 工作正常。
    2. 现在可以退出。

安装 Tivoli Directory Server V6.3

假设已经安装了 DB2 和 WebSphere Application Server(后面简称为 Application Server)的实例。

注意:在 Windows XP 上 支持 Tivoli Directory Server V6.3 服务器。可以使用 Windows 服务器或 Linux 计算机。

  1. 进入 TDS 源代码文件夹 <TDS_SOURCE>/TDS/tds。调用 install_tds.exe。经过欢迎屏幕和许可协议屏幕之后,Tivoli Directory Server 安装向导探测系统上的 DB2 实例。
  2. 选择 Custom 安装(见图 1),因为我们不打算安装所有特性。
    图 1. 选择 Tivoli Directory Server 安装类型
    选择 Tivoli Directory Server 安装类型
  3. 可以从特性列表中取消 Embedded WebSphere Application Server(见图 2),因为要使用现有的 Application Server 实例。DB2 应该已经取消了。
    图 2. Tivoli Directory Server 安装特性
    Tivoli Directory Server 安装特性
  4. Tivoli Directory Server 安装向导会探测所有 Application Server 实例。
  5. 在它找到的实例列表中,我们决定使用 Lombardi Edition V7.2 下面的嵌入式 AppServer,见图 3。
    图 3. 选择 WebSphere Application Server
    选择 WebSphere Application Server
  6. 在 Summary 屏幕上,单击 Install
  7. 当安装完成时,单击 Finish。您会注意到 Tivoli Directory Server Instance Administration Tool 正在启动。

下一步是创建一个目录服务器实例和此实例的管理员。


创建 Tivoli Directory Server 实例

  1. 如果 Tivoli Directory Directory Instance Administration Tool 还没有启动,就启动它(Start > All Programs > IBM Tivoli Directory Server 6.3 > Instance Administration Tool)。
  2. 单击 Create an instance
  3. 创建一个新的目录服务器实例而不是默认的实例,因为这提供更好的控制。
  4. 创建一个名为 dsrdbm01 的用户并在目录实例详细信息屏幕中使用此用户,见图 4。提供加密种子字符串。
    图 4. 创建一个新的目录服务器实例
    创建一个新的目录服务器实例
  5. 把 DB2 实例命名为 DSRDBM01
    1. 确保选中 Listen on all configured IP addresses
    2. 接受默认的端口设置。不安全的服务器端口是 389,安全的端口是 636。不安全的管理端口是 3538,安全的管理端口是 3539
  6. 选择配置管理员 Distinguished Name (DN) 和密码。建议保持默认的管理员 DN cn=root。必须提供密码,见图 5。
    图 5. 配置管理员 DN 和密码
    配置管理员 DN 和密码
  7. 提供一个数据库用户名和密码:
    1. 创建相关联的数据库 DSRDBM01
    2. 选择创建通用 DB2 数据库并提供数据库安装位置。
  8. 在设置检查屏幕上,单击 Finish
  9. 完成配置并启动服务器之后,会在 Instance Administration Tool 中看到一个新条目,见图 6。
    图 6. Instance Administration Tool 中的新条目
    Instance Administration Tool 中的新条目

配置 Tivoli Directory Server V6.3

可以启动 Instance Administration Tool(也称为 Tivoli Directory Server Configuration Tool)以管理 LDAP 后缀和执行与 LDAP 相关的任务。

  1. 在 Tivoli Directory Server Configuration Tool 中,单击 Manage suffixes
    1. 在 Suffix DN 框中,输入 dc=ibm,dc=com 并单击 Add
    2. 单击 OK
    3. 如果服务器正在运行,会要求您停止服务器。单击 Yes
  2. 展开 LDIF tasks。单击 Import LDIF data
    1. 单击 Browse 按钮并找到要导入的 LDIF 文件。
    2. 如果导入提供的示例 WLEUsers.ldif 文件,消息会显示成功地导入了 22 个条目。
    3. 单击 OK
  3. 图 7 显示导入的 LDAP 树。注意,所有默认的 Lombardi Edition 用户、组和其他条目都在 DN: dc=ibm,dc=com 下面。
    图 7. DN: dc=ibm, dc=com 下面的 LDAP 树
    DN: dc=ibm, dc=com 下面的 LDAP 树

把 Tivoli Directory Server 配置为 Lombardi Edition 中的附加存储库

在开始之前,要备份 security.xml 文件。此文件在 <WLE_HOME>/AppServer/profiles/AppSrv01/config/cells/<CELL_NAME> 中。

  1. 进入 <WLE_HOME>/AppServer/profiles/Lombardi/bin。使用 serverStatus 实用程序确认 server1 正在运行。
  2. 启动 WebSphere Administrative Console。使用 tw_user 作为用户 ID 和密码登录。
  3. 展开 Security 并单击 Global security
    1. User account repository 部分中,应该已经选择了 Federated repositories
    2. 单击 Configure,见图 8。
      图 8. 指定领域
      指定领域
  4. Related Items 下面,单击 Manage repositories。单击 Add 添加新的存储库 Tivoli Directory Server。
  5. 输入以下值:
    1. 给这个存储库指定标识符,比如 TDS
    2. 目录类型是 IBM Tivoli Directory Server
    3. 输入主要主机名。这是运行 TDS 的计算机。
    4. 保持端口为 389
    5. 登录属性是 uid
    6. 保持其他默认设置,见图 9。
    7. 单击 Apply
    图 9. LDAP 配置
    LDAP 配置
  6. 在 Additional Properties 下面,单击 LDAP entity types
  7. 单击 Group
    1. ObjectClasses 中,输入 groupOfUniqueNames(这是区分大小写的)。
    2. Search bases 中,输入 dc=ibm,dc=com。这是在 LDAP 中创建的后缀。
    3. 单击 OK
  8. 单击 PersonAccount
    1. ObjectClasses 中,输入 inetOrgPerson(这是区分大小写的)。
    2. 单击 OK

    在 LDAP 实体类型屏幕上会看到 Object Classes 的变化。

    提示:需要使用一个 DN 后缀。建议使用简单的后缀,比如 dc=<COMPANY_NAME>,dc-com。这个后缀还会成为 LDIF 文件的根。

  9. 返回联合存储库屏幕,单击 Add Base entry to Realm
    1. 输入后缀 (dc=ibm,dc=com) 作为基实体的 DN,它惟一地标识这个领域中的实体。这意味着带 "dc=ibm,dc=com" 后缀的任何条目都发送给 LDAP。
    2. 可以选择在这个存储库中添加它作为基条目。这指定当搜索 LDAP 目录时从这里开始。
    3. 单击 OK
  10. 现在会看到新的存储库 TDS 和基条目已经添加到了联合存储库列表中。
    图 10. TDS 存储库
    TDS 存储库
  11. 单击 OK 并把更改保存到主存储库中。
  12. 返回 Global security 屏幕。
    1. Authentication 下面,展开 Web and SIP security
    2. 单击 Single sign-on (SSO)
    3. 选中 Enabled 框。
    4. 输入 ibm.com 作为域名。这指定包含要应用 SSO 的主机集合的域。
    5. 选中 Web inbound security attribute propagation 框。
    6. 单击 OK

检查安全设置

为了让安全更改生效,必须重新启动 Lombardi Edition server1。

  1. 退出 Integrated Solutions Console。
    1. 停止并启动 Lombardi Edition 服务器。至少需要重新启动 server1。
    2. 简单的方法是通过命令行。在命令窗口中,进入 <WLE_HOME>/AppServer/profiles/Lombardi/bin
    3. 输入 stopServer server1 停止 server1。
    4. 输入 startServer server1 启动 server1。
  2. 再次启动 Integrated Solutions Console,使用 tw_user 作为用户 ID 和密码登录。

    提示:如果无法登录,可以把 <WLE_HOME>/profiles/<PROFILE_NAME>/config/cells/<CELL_NAME>/security.xml 替换为备份的拷贝并重新启动服务器。

    或者:

    使用 wsadmin 命令:wsadmin –conntype none。在 wsadmin 提示下,输入 securityoff,然后输入 exit

  3. 选择 Users and Groups > Manage Users
    1. 用通配符 * 搜索 User ID
    2. 现在会看到所有存储库中的用户。

    图 11 显示两个存储库(内部存储库和 TDS)中的用户 ID。

    警告:在两个存储库中不能有相同的用户 ID。在这个示例中,tw_admintw_authortw_portal_admintw_runtime_server 都有两个。必须删除重复的条目之一,很可能是删除新 LDAP 模式中的条目。建议保留基于文件的存储库中原来的用户。另一种做法是使用独立的 LDAP 配置而不是联合存储库。

    图 11. 用户搜索结果
    用户搜索结果
  4. 作为可选的快速解决方法,可以选择 Users and Groups > Administrative user roles
    1. 单击 Add
    2. 突出显示 Administrator 角色。
    3. 用通配符 * 搜索用户。
    4. 选择 admin 并把它映射到 Administrator 角色。单击 OK

    会在 Administrator 角色中看到两个用户(tw_useradmin)。这意味着现在可以使用 admin 用户 ID 从 Tivoli Directory Server 登录 Integrated Solutions Console。

  5. 退出并尝试使用 admin 作为用户 ID 重新登录 Integrated Solutions Console。
  6. 最好的测试方法是启动 Lombardi Process Center (http://<WLE_HOST>:19086/ProcessCenter) 或 Lombardi Process Portal (http://<WLE_HOST>:19086/portal),使用 admin(或 LDAP 中的任何其他用户)登录。图 12 显示使用 admin 登录 Lombardi Process Portal 的快照。
    图 12. Lombardi Process Portal
    Lombardi Process Portal

这样就完成了。如果需要,还可以在 Lombardi Edition 与其他应用程序(比如 WebSphere Portal)之间配置单点登录。


其他考虑因素

可以按通常的 WebSphere 全局安全性配置过程用任何 LDAP 服务器在 Lombardi Edition V7.2 中启用安全性。如果您熟悉在 WebSphere Process Server 中配置安全性,步骤是相似的。最有意思的任务可能是设置 LDAP 服务器并用 LDIF 文件填充它。请记住,应该使用与企业的域匹配的简单的 DN 后缀。

如果使用联合存储库,在两个存储库中不能有相同的用户 ID。


附录:WLEUsers.ldif

您可能会注意到在这个 LDIF 文件中没有 tw_user,这是因为我们决定使用联合存储库,在这里是两个存储库的组合:基于文件的内部存储库和 Tivoli Directory Server。还要注意,tw_user 是基于文件的领域中内置的用户 ID。

可以轻松地修改清单 1 所示的 LDIF 文件以使用任何 DN 后缀。惟一的要求是需要在导入文件之前在 LDAP 中创建后缀。

清单 1. WLEUsers.ldif
##
# Make sure the suffix dc=ibm,dc=com exists before importing this ldif file
##
dn: dc=ibm,dc=com
objectclass: domain
objectclass: top
## Add lines according to this schema that corresponds to your suffix
dc: ibm,dc=com
dc: ibm

dn: cn=users,dc=ibm,dc=com
objectclass: container
objectclass: top
cn: users

dn: cn=groups,dc=ibm,dc=com
objectclass: top
objectclass: container
cn: groups

## WLE default users. Do not change
dn: uid=tw_admin,cn=users,dc=ibm,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
uid: tw_admin
userpassword: tw_admin
sn: admin
givenName: tw
cn: tw_admin

dn: uid=tw_author,cn=users,dc=ibm,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
uid: tw_author
userpassword: tw_author
sn: author
givenName: tw
cn: tw_author

dn: uid=tw_webservice,cn=users,dc=ibm,dc=com
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: inetOrgPerson
uid: webservice
userpassword: tw_webservice
sn: webservice
givenName: tw
cn: tw_webservice

dn: uid=tw_portal_admin,cn=users,dc=ibm,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
uid: tw_portal_admin
userpassword: tw_portal_admin
sn: admin
givenName: tw_portal
cn: tw_portal_admin

dn: uid=tw_runtime_server,cn=users,dc=ibm,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
uid: tw_runtime_server
userpassword: tw_runtime_server
sn: server
givenName: tw_runtime
cn: tw_runtime_server


## WAS admin user
dn: uid=admin,cn=users,dc=ibm,dc=com
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: inetOrgPerson
uid: admin
userpassword: admin
sn: admin
givenName: admin
cn: admin


# WLE default groups. Do not change
dn: cn=tw_admins,cn=groups,dc=ibm,dc=com
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=tw_admin,cn=users,dc=ibm,dc=com
uniquemember: uid=admin,cn=users,dc=ibm,dc=com
cn: tw_admins

dn: cn=tw_authors,cn=groups,dc=ibm,dc=com
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=tw_admin,cn=users,dc=ibm,dc=com
uniquemember: uid=tw_author,cn=users,dc=ibm,dc=com
cn: tw_authors

dn: cn=tw_portal_admins,cn=groups,dc=ibm,dc=com
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=tw_portal_admin,cn=users,dc=ibm,dc=com
cn: tw_portal_admins

dn: cn=Debug,cn=groups,dc=ibm,dc=com
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=tw_admin,cn=users,dc=ibm,dc=com
cn: Debug

dn: cn=tw_allusers,cn=groups,dc=ibm,dc=com
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=tw_admin,cn=users,dc=ibm,dc=com
uniquemember: uid=tw_author,cn=users,dc=ibm,dc=com
uniquemember: uid=tw_webservice,cn=users,dc=ibm,dc=com
uniquemember: uid=tw_portal_admin,cn=users,dc=ibm,dc=com
uniquemember: uid=admin,cn=users,dc=ibm,dc=com
cn: tw_allusers

## Additional users and groups that can be customized
dn: uid=tw_user1,cn=users,dc=ibm,dc=com
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: inetOrgPerson
uid: tw_user1
userpassword: tw_user1
sn: user1
givenName: tw
cn: tw_user1

dn: uid=tw_user2,cn=users,dc=ibm,dc=com
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: inetOrgPerson
uid: tw_user2
userpassword: tw_user2
sn: user2
givenName: tw
cn: tw_user2

dn: uid=tw_user3,cn=users,dc=ibm,dc=com
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: inetOrgPerson
uid: tw_user3
userpassword: tw_user3
sn: user3
givenName: tw
cn: tw_user3

dn: cn=tw_users,cn=groups,dc=ibm,dc=com
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=tw_user1,cn=users,dc=ibm,dc=com
uniquemember: uid=tw_user2,cn=users,dc=ibm,dc=com
uniquemember: uid=tw_user3,cn=users,dc=ibm,dc=com
cn: tw_users

dn: uid=tw_manager1,cn=users,dc=ibm,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
uid: tw_manager1
userpassword: tw_manager1
sn: manager1
givenName: tw
cn: tw_manager1

dn: uid=tw_manager2,cn=users,dc=ibm,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
uid: tw_manager2
userpassword: tw_manager2
sn: manager2
givenName: tw
cn: tw_manager2

dn: cn=tw_managers,cn=groups,dc=ibm,dc=com
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=tw_manager1,cn=users,dc=ibm,dc=com
uniquemember: uid=tw_manager2,cn=users,dc=ibm,dc=com
cn: tw_managers

结束语

本文讲解了如何安装并配置 LDAP 服务器(具体地说是 Tivoli Directory Server)。然后描述了如何导入 LDIF 文件并使用联合存储库配置 WebSphere 全局安全性。如果使用任何其他 LDAP 服务器,过程是相同的,可以把相同的 LDIF 文件导入任何 LDAP 服务器。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=678425
ArticleTitle=使用 Tivoli Directory Server V6.3 在 WebSphere Lombardi Edition V7.2 中配置全局安全性
publish-date=06072011