 | 级别: 中级 Nikhil Firke, 系统软件工程师, IBM Nilesh T. Patel, 系统软件工程师, IBM
2009 年 10 月 12 日 secldapclntd 守护进程在本地主机的 AIX® 安全 LDAP 装载模块和 LDAP 服务器之间提供和管理连接,处理从 LDAP 装载模块到 LDAP 服务器的事务。简单的配置步骤不允许指定高可用和可伸缩的后端 LDAP 服务器。本文介绍使用 Tivoli® Directory Server 代理为 secldapclntd 守护进程配置高可用和可伸缩的后端 LDAP 的步骤。
简介
在任何分布式环境中,为了提供普遍的访问,都需要一致的身份验证和授权服务。大量这种部署使用 IBM Tivoli Directory Server (TDS) 提供集中的安全管理。
把身份验证和密码服务集中在一起不仅会提高安全性,还会减少相关联的管理成本。对于这个问题,一种出色的解决方案是让一个服务器处理环境中的所有请求。但是,这需要使用高可用的服务器。在任何用户身份验证解决方案中都希望实现高可用性,因为如果身份验证服务器关闭,就可能造成整个企业停止运作。在使用 LDAP 时,有两种解决方法。可以使用 IBM Tivoli Directory Server 提供的复制特性把服务器配置成主-主模式或主-副本模式。在主-主配置中,没有主要服务器,对任何服务器所做的修改都会传播到其他主服务器。在主-副本设置中,在主服务器上执行所有修改,更新传播到一个或多个副本服务器。可以按调度计划执行复制,也可以在主服务器上完成修改之后立即复制。
为了展示一种可伸缩的解决方案,本文在 secldapclntd 配置中引入一个 TDS 代理。在单一 LDAP 服务器中定义大量用户信息会导致响应时间增加,整个系统可能会变慢。为了提高系统的可伸缩性,本文提供一个使用分布式目录的解决方案。在分布式目录环境中,数据跨多个目录服务器分散存储。
代理服务器是一种特殊的 IBM Tivoli Directory Server,它们能够从客户机接收请求并根据需要执行路由。除了对请求进行路由之外,代理服务器还能够执行负载平衡、故障转移和分布式身份验证。环境中的客户机只知道前端的代理服务器,代理服务器背后的服务器集群对于客户机是隐藏的,客户机会看到统一的目录视图。
TDS 代理服务器简介
LDAP 用于存储任何与目录相似的信息,这种信息需要快速查询,更新不太频繁。企业范围的 LDAP 服务器常常存储数百万条目。要支持如此大量的条目和相应的请求,同时又要保证性能不会下降,这就需要高可伸缩硬件。为了解决这些问题,可以使用分布式目录。
引入分布式目录是为了解决性能和可伸缩性问题。分布式目录有助于把大量数据分散在多个服务器上。由于数据是分散存储的,每个服务器要处理的请求数量自然就减少了,这可以简化管理。
通过在分布式目录前面添加代理服务器,可以非常有效地抽象它。客户机只知道代理,代理服务器上配置了后端分布式数据的详细信息。代理服务器还配置了分割数据的方法。这让代理能够从后端获取数据并传输给客户机。代理服务器和后端目录服务器之间的交互对于客户机是完全透明的。代理服务器还可以作为负载平衡器或故障转移管理器。
Tivoli Directory 代理服务器的关键特性包括:
用 TDS 代理设置 secldapclntd
对于使用 secldapclntd 和 IBM Tivoli Directory Server 的任何典型设置,可以使用 mksecldap 命令设置客户机和服务器。粗略来说,mksecldap 命令在配置服务器时执行以下步骤:
-
创建一个默认的 IBM Tivoli Directory Server 实例 ldapdb2。
-
配置其下将存储的 AIX 用户和组的后缀。
-
使用本地主机的安全数据库文件中的用户和组信息装载 LDAP 数据库。
-
配置 LDAP 服务器管理员 DN 和密码。
-
安装用于 LDAP 服务器的 AIX 审计插件。
-
启动 LDAP 服务器。
-
把默认的密码加密机制改为 crypt。
-
在 /etc/inittab 中添加 LDAP 服务器条目 (slapd),以便在重新引导之后自动地重新启动。
本文并不使用 mksecldap 命令设置 LDAP 服务器。不使用 mksecldap 是因为,我们的最终目标是用 TDS 代理服务器配置 AIX 客户机,而不是使用 TDS RDBM 后端。如果使用 mksecldap 命令,就会为 AIX 客户机配置一个 TDS RDBM 服务器。TDS RDBM 服务器有一个 DB2® 后端,这是我们不需要的。
我们需要为 AIX 客户机配置一个 TDS 代理服务器。代理服务器没有 DB2 后端。
所有 AIX 数据出现在 cn=aixdata 子树下面。这个子树包含其他子树,它们包含用户条目、组条目和必需的其他信息。用户信息出现在 ou=people,cn=aixdata 下面。因为子树 ou=people,cn=aixdata 的访问量是最大的,我们要把这个子树分布存储在两个 TDS 后端服务器上,让负载分布在代理背后的两个后端服务器上。顶级子树基 cn=aixdata 只放在代理背后的一个后端服务器上。
我们要设置一个环境,其概况如下图所示:
图 1. 示例配置
详细信息如下:
-
TDS 代理:TDS 代理是 Tivoli Directory Proxy Server,环境中的客户机意识到它的存在。
-
蓝线:代理服务器后面的蓝线显示 cn=aixdata 和 cn=ibmpolocies 的复制拓扑。
-
黑线:代理服务器后面的黑线显示 ou=People,cn=aixdata 的复制拓扑。
-
secldapinst1a 和 secldapinst1b:这些是要复制的部分 RDBM,包含完整的 cn=aixdata 和 cn=ibmpolocies 子树及 ou=People,cn=aixdata 子树的一部分。
-
secldapinst2a 和 secldapinst2b:这些是要复制的部分 RDBM,包含 ou=People,cn=aixdata 子树的一部分。由于复制拓扑的原因,这里会出现完整的 cn=aixdata(除了 ou=People,cn=aixdata 子树之外)和 cn=ibmpolocies 子树。
-
Server Group 1:Server Group 1 把 secldapinst1a 和 secldapinst1b 分组在一起,提供高可用性。
-
Server Group 2:Server Group 2 把 secldapinst2a 和 secldapinst2b 分组在一起,提供高可用性。
为后端设置复制的步骤
我们基本上只关注 cn=aixdata 和 cn=ibmpolicies 下面的数据。cn=aixdata(除了 ou=People,cn=aixdata 子树)和 cn=ibmpolocies 下面的数据在此配置中的所有四个服务器上都出现。在开始设置复制之前,需要按以下步骤创建 TDS 实例,以便准备复制配置。
- 使用以下命令创建四个 TDS 实例,运行这些命令创建和配置 ITDS RDBM 实例:
清单 1. 创建和配置 TDS RDBM 实例
Add user aixauth
# idsadduser -g idsldap -l /home/aixauth -u aixauth -w aixauth
Create TDS instance
# idsicrt -I aixauth -e abcd1234567890 -l /home/aixauth -n
Configure database instance with this TDS instance
# idscfgdb -I aixauth -l /home/aixauth -a aixauth -w aixauth -t aixauth -n
Configure Admin username and password
# idsdnpw -I aixauth -u cn=root -p root -n
Configure cn=aixdata suffix
# idscfgsuf -I aixauth -s cn=aixdata -n
Start TDS instance to change default password encryption
# ibmslapd -I aixauth -n
<
Change default password encryption to crypt
# idsldapadd -D cn=root -w root
dn: cn=Configuration
changetype : modify
replace : ibm-slapdPwEncryption
ibm-slapdPwEncryption: crypt
|
我们假设在单独的机器上创建这四个实例,每个实例都命名为 aixauth。假设四台机器的主机名是 secldapinst1a.ibm.com、secldapinst1b.ibm.com、secldapinst2a.ibm.com 和 secldapinst2b.ibm.com。
- 为 cn=aixdata 和 cn=ibmpolicies 设置复制。
在四个实例之间为 cn=aixdata 子树设置对等复制。cn=aixdata 子树的复制拓扑应该像下面这样:
图 2. 示例配置
- secldapinst1a.ibm.com 和 secldapinst1b.ibm.com 作为 Server Group 1,secldapinst2a.ibm.com 和 secldapinst2b.ibm.com 作为 Server Group 2,在每个组的两个实例之间为 ou=people,cn=aixdata 子树设置对等复制。
在已经设置了复制的条目基下面设置不同的复制拓扑很麻烦。在设置这个拓扑时必须小心。在前一步中,为 cn=aixdata 设置了复制,现在要为 cn=aixdata 下面的 ou=people,cn=aixdata 条目配置不同的复制拓扑。按照 TDS 设计,可以在配置中使用嵌套的复制拓扑。
这个子树的复制拓扑应该像下面这样:
图 3. ou=people,cn=aixdata 的复制拓扑
TDS 代理配置
- 添加 Global Admin 组成员。
在任意后端服务器上执行以下命令。只需在一个实例上执行这个操作,因为已经为 cn=ibmpolocies 设置了复制,结果会复制到其他三个服务器。
清单 2. 添加 Admin Group 成员的命令
# idsldapadd -h secldapinst1a.ibm.com -D cn=root -w root
dn: cn=manager,cn=ibmpolicies
objectclass: person
sn: manager
cn: manager
userpassword: sec001ret
# idsldapmodify -h secldapinst1a.ibm.com -D cn=root -w root
dn: globalGroupName=GlobalAdminGroup,cn=ibmpolicies
changetype: modify
add: member
member: cn=manager,cn=ibmpolicies
|
- 创建和配置 TDS 代理实例。
运行以下命令创建和配置 TDS 代理实例。
清单 3. 创建和配置 TDS 代理实例
Add user proxy
# idsadduser -g idsldap -l /home/proxy -u proxy -w proxy
Create TDS proxy instance
# idsicrt -I proxy -e abcd1234567890 -l /home/proxy -x -n
Configure Admin username and password
# idsdnpw -I proxy -u cn=root -p root -n
Start the TDS proxy instance in configuration mode to
change default password encryption
# ibmslapd -I proxy -a
Change default password encryption to crypt
# idsldapmodify -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=Configuration
changetype : modify
replace : ibm-slapdPwEncryption
ibm-slapdPwEncryption: crypt
|
- 在 TDS 代理实例中定义命名上下文。
在 TDS 代理实例上执行以下命令,添加 cn=aixdata、cn=ibmpolicies 和 ou=people,cn=aixdata 作为命名上下文。
清单 4. 在 TDS 代理服务器中定义命名上下文
# idsldapmodify -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=ProxyDB, cn=Proxy Backends, cn=IBM Directory, cn=Schemas, cn=Configuration
changetype : modify
add : ibm-slapdSuffix
ibm-slapdSuffix: cn=aixdata
-
add : ibm-slapdSuffix
ibm-slapdSuffix: ou=people, cn=aixdata
-
add : ibm-slapdSuffix
ibm-slapdSuffix: cn=ibmpolicies
|
- 向 TDS 代理服务器定义四个后端服务器。
在 TDS 代理实例上执行以下命令,它向 TDS 代理注册四个后端服务器,连接池大小设置为 10。
清单 5. 定义后端服务器
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=secldapinst1a,cn=ProxyDB,cn=Proxy Backends,cn=IBM Directory,\
cn=Schemas,cn=Configuration
cn: secldapinst1a
ibm-slapdProxyBindMethod: Simple
ibm-slapdProxyConnectionPoolSize: 10
ibm-slapdProxyDN: cn=manager,cn=ibmpolicies
ibm-slapdProxyPW: sec001ret
ibm-slapdProxyTargetURL: ldap://secldapinst1a.ibm.com:389
objectClass: top
objectClass: ibm-slapdProxyBackendServer
objectClass: ibm-slapdConfigEntry
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=secldapinst1b,cn=ProxyDB,cn=Proxy Backends,cn=IBM Directory,\
cn=Schemas,cn=Configuration
cn: secldapinst1b
ibm-slapdProxyBindMethod: Simple
ibm-slapdProxyConnectionPoolSize: 10
ibm-slapdProxyDN: cn=manager,cn=ibmpolicies
ibm-slapdProxyPW: sec001ret
ibm-slapdProxyTargetURL: ldap://secldapinst1b.ibm.com:389
objectClass: top
objectClass: ibm-slapdProxyBackendServer
objectClass: ibm-slapdConfigEntry
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=secldapinst2a,cn=ProxyDB,cn=Proxy Backends,cn=IBM Directory,\
cn=Schemas,cn=Configuration
cn: secldapinst2a
ibm-slapdProxyBindMethod: Simple
ibm-slapdProxyConnectionPoolSize: 10
ibm-slapdProxyDN: cn=manager,cn=ibmpolicies
ibm-slapdProxyPW: sec001ret
ibm-slapdProxyTargetURL: ldap://secldapinst2a.ibm.com:389
objectClass: top
objectClass: ibm-slapdProxyBackendServer
objectClass: ibm-slapdConfigEntry
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=secldapinst2b,cn=ProxyDB,cn=Proxy Backends,cn=IBM Directory,\
cn=Schemas,cn=Configuration
cn: secldapinst2b
ibm-slapdProxyBindMethod: Simple
ibm-slapdProxyConnectionPoolSize: 10
ibm-slapdProxyDN: cn=manager,cn=ibmpolicies
ibm-slapdProxyPW: sec001ret
ibm-slapdProxyTargetURL: ldap://secldapinst2b.ibm.com:389
objectClass: top
objectClass: ibm-slapdProxyBackendServer
objectClass: ibm-slapdConfigEntry
|
- 定义 Server Group 1 和 Server Group 2。
定义服务器组可以确保高可用性。如果代理服务器无法连接一个后端服务器,或者身份验证失败,那么除非在配置文件中定义了服务器组,否则代理服务器会启动失败,代理服务器在默认情况下会以只配置(configuration-only )模式启动。可以通过服务器组声明几个互为镜像的后端服务器;即使组中的一个或多个后端服务器关闭了,只要有一个后端服务器仍然在线,代理服务器就可以继续处理。如果连接由于某种原因中断了,比如远程服务器停止运行或重新启动,会定期重新启动连接。
清单 6. 定义服务器组
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=serverGroupA, cn=ProxyDB, cn=Proxy Backends, cn=IBM Directory,\
cn=Schemas, cn=Configuration
cn: serverGroupA
ibm-slapdProxyBackendServerDN: cn=secldapinst1a,cn=ProxyDB,cn=Proxy Backends,\
cn=IBM Directory, cn=Schemas,cn=Configuration
ibm-slapdProxyBackendServerDN: cn=secldapinst1b,cn=ProxyDB,cn=Proxy Backends,\
cn=IBM Directory, cn=Schemas,cn=Configuration
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendServerGroup
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=serverGroupB, cn=ProxyDB, cn=Proxy Backends, cn=IBM Directory, cn=Schemas,\
cn=Configuration
cn: serverGroupB
ibm-slapdProxyBackendServerDN: cn=secldapinst2a,cn=ProxyDB,cn=Proxy Backends,\
cn=IBM Directory, cn=Schemas,cn=Configuration
ibm-slapdProxyBackendServerDN: cn=secldapinst2b,cn=ProxyDB,cn=Proxy Backends,\
cn=IBM Directory, cn=Schemas,cn=Configuration
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendServerGroup
|
- 定义片段。
执行以下命令在 cn=ibmpolicies、cn=aixdata 和 ou=people,cn=aixdata 下面定义片段。
清单 7. 定义片段
========
cn=ibmpolicies split definitions :
========
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=cn\=ibmpolicies split, cn=ProxyDB, cn=Proxy Backends, cn=IBM Directory,\
cn=Schemas, cn=Configuration
cn: cn=ibmpolicies split
ibm-slapdProxyNumPartitions: 1
ibm-slapdProxyPartitionBase: cn=ibmpolicies
ibm-slapdProxySplitName: ibmpolicysplit
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendSplitContainer
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=split1, cn=cn\=ibmpolicies split, cn=ProxyDB, cn=Proxy Backends,\
cn=IBM Directory, cn=Schemas, cn=Configuration
cn: split1
ibm-slapdProxyBackendServerDN: cn=secldapinst1a,cn=ProxyDB,cn=Proxy Backends,\
cn=IBM Directory,cn=Schemas,cn=Configuration
ibm-slapdProxyBackendServerRole: any
ibm-slapdProxyPartitionIndex: 1
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendSplit
========
cn=aixdata split definitions :
========
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=cn\=aixdata, cn=ProxyDB, cn=Proxy Backends, cn=IBM Directory, cn=Schemas,\
cn=Configuration
cn: cn=aixdata
ibm-slapdProxyNumPartitions: 1
ibm-slapdProxyPartitionBase: cn=aixdata
ibm-slapdProxySplitName: ouaixdatasplit
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendSplitContainer
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=split1, cn=cn\=aixdata, cn=ProxyDB, cn=Proxy Backends, cn=IBM Directory,\
cn=Schemas, cn=Configuration
cn: split1
ibm-slapdProxyBackendServerDN: cn=secldapinst1a,cn=ProxyDB,cn=Proxy Backends,\
cn=IBM Directory,cn=Schemas,cn=Configuration
ibm-slapdProxyBackendServerRole: any
ibm-slapdProxyPartitionIndex: 1
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendSplit
========
ou=people,cn=aixdata split
========
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=ou\=people\,cn\=aixdata, cn=ProxyDB, cn=Proxy Backends, cn=IBM Directory,\
cn=Schemas, cn=Configuration
cn: ou=peple,cn=aixdata
ibm-slapdProxyNumPartitions: 2
ibm-slapdProxyPartitionBase: ou=People,cn=aixdata
ibm-slapdProxySplitName: oupoepleouaixdatasplit
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendSplitContainer
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=split1, cn=ou\=people\,cn\=aixdata, cn=ProxyDB, cn=Proxy Backends,\
cn=IBM Directory, cn=Schemas, cn=Configuration
cn: split1
ibm-slapdProxyBackendServerDN: cn=secldapinst1a,cn=ProxyDB,cn=Proxy Backends,\
cn=IBM Directory,cn=Schemas,cn=Configuration
ibm-slapdProxyBackendServerRole: any
ibm-slapdProxyPartitionIndex: 1
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendSplit
# idsldapadd -h secldapproxy.ibm.com -D cn=root -w root
dn: cn=split2, cn=ou\=people\,cn\=aixdata, cn=ProxyDB, cn=Proxy Backends,\
cn=IBM Directory, cn=Schemas, cn=Configuration
cn: split2
ibm-slapdProxyBackendServerDN: cn=secldapinst2a,cn=ProxyDB,cn=Proxy Backends,\
cn=IBM Directory,cn=Schemas,cn=Configuration
ibm-slapdProxyBackendServerRole: any
ibm-slapdProxyPartitionIndex: 2
objectclass: top
objectclass: ibm-slapdConfigEntry
objectclass: ibm-slapdProxyBackendSplit
|
- sectoldif —— 把 AIX 本地安全数据迁移到 LDAP
sectoldif 命令是 AIX 提供的迁移工具,用于把本地安全数据迁移到 LDAP。它把本地系统中的数据直接转换为三个模式之一:RFC2307、RFC2307AIX 或 AIX 模式。数据写到标准输出。然后,可以使用 idsldapadd 命令把 LDIF 文件导入到 LDAP 服务器。
清单 8. 把系统信息转换为 LDIF 格式
# sectoldif -d cn=aixdata -S RFC2307 > /tmp/systeminfo.ldif
|
运行 sectoldif 命令从现有的 AIX 服务器装载数据,以 LDIF 格式传输用户/组和其他信息。获得这些信息之后,可以直接把输出 LDIF 文件装载到代理服务器。
- 使用 idsldapadd 命令装载数据。
获得 LDIF 格式的数据之后,可以使用 idsldapadd 命令轻松地在环境中装载它。在代理服务器上执行这个装载操作。在代理服务器上添加这些信息会确保各个条目分配到正确的代理片段。
清单 9. 从 LDIF 文件装载数据
# idsldapadd -h secldapproxy.ibm.com -D cn=manager,cn=ibmpolicies -w sec001ret \
-c -i /tmp/systeminfo.ldif
|
- 使用 mksecldap 命令为客户机配置代理。
现在,LDAP 服务器已经准备好了。还设置了所需的复制拓扑和代理服务器。
清单 10. 配置客户机的命令
# mksecldap -c -h secldapproxy.ibm.com -a cn=manager,cn=ibmpolicies -p sec001ret
|

 |

|
在现有的环境中引入 ITDS 代理
在典型的生产环境中,在一个中心 LDAP 服务器上维护用户存储库。所有客户机使用这个 LDAP 服务器执行身份验证。通过一个对等-主 LDAP 服务器维持高可用性。这种拓扑见图 4。
图 4. 典型的身份验证设置
对于这种设置,需要在现有的基础结构和客户机之间添加一个 ITDS 代理服务器。首先,必须获得基本子树(例如 cn=aixdata)的备份。步骤如下:
- 备份 ou=people,cn=aixdata 下面的数据。这个子树包含所有用户数据,比如 gid 号、登录 shell、最后一次登录的详细信息等。
清单 11. 获得 ou=people,cn=aixdata 的 LDIF 转储
# idsdb2ldif -I aixauth -s ou=people,cn=aixdata -o /tmp/people.ldif
|
- 备份 ou=people,cn=aixdata 下面的数据之后,删除这个子树,让后面的备份操作不再复制它。
清单 12. 删除服务器上 ou=people,cn=aixdata 下面的数据
# idsldapdelete -D cn=root -w root -s ou=people,cn=aixdata
|
- 备份 cn=aixdata 下面的数据。在执行这次备份操作时,ou=people,cn=aixdata 下面没有数据。
清单 13. 获得 cn=aixdata 的 LDIF 转储
# idsdb2ldif -I aixauth cn=aixdata -o /tmp/aixdata.ldif
|
- 删除 cn=aixdata 下面的数据。
清单 14. 删除服务器上 cn=aixdata 下面的数据
# idsldapdelete -D cn=root -w root -s cn=aixdata
|
- 把密码加密改为 crypt。
清单 15. 把默认的密码加密改为 crypt
# idsldapadd -D cn=root -w root
dn: cn=Configuration
changetype : modify
replace : ibm-slapdPwEncryption
ibm-slapdPwEncryption: crypt
|
- 创建两个新实例。使用现有的对等复制设置建立一个服务器组(比如 图 1 所示的 Server Group 1)。在这个组中添加两个新实例,它们作为另一个服务器设置,包含完整的 cn=aixdata 子树、cn=ibmpolicies 子树和部分 ou=people,cn=aixdata 子树。
清单 16. 在两个不同的服务器上创建两个新实例
Add user aixauth
# idsadduser -g idsldap -l /home/aixauth -u aixauth -w aixauth
Create TDS RDBM instance
# idsicrt -I aixauth -e abcd1234567890 -l /home/aixauth -n
Configure database instance with this TDS instance
# idscfgdb -I aixauth -l /home/aixauth -a aixauth -w aixauth -t aixauth -n
Configure Admin username and password
# idsdnpw -I aixauth -u cn=root -p root -n
Configure cn=aixdata suffix
# idscfgsuf -I aixauth -s cn=aixdata -n
Start TDS instance to change default password encryption
# ibmslapd -I aixauth -n
Change default password encryption to crypt
# idsldapadd -D cn=root -w root
dn: cn=Configuration
changetype : modify
replace : ibm-slapdPwEncryption
ibm-slapdPwEncryption: crypt
|
-
必须按以下步骤设置环境。因为前面已经详细介绍了这些步骤,下面只列出它们并引用前面的内容/代码清单。
- 在四个 TDS 实例之间为 cn=aixdata 和 cn=ibmpolicies 配置复制。两个实例来自现有的环境,另外两个实例是在 清单 14 中创建的。
- 在任意服务器上装载 /tmp/aixdata.ldif 文件中的数据。这个 LDIF 文件是通过 清单 13 收集的。
- 在服务器上添加缺少的 ou=people,cn=aixdata 条目。
- secldapinst1a.ibm.com 和 secldapinst1b.ibm.com 作为 Server Group 1,secldapinst2a.ibm.com 和 secldapinst2b.ibm.com 作为 Server Group 2,在每个组的两个实例之间为 ou=people,cn=aixdata 子树设置对等复制拓扑。这个拓扑应该像 图 3 那样。
- 按照 TDS 代理配置 中介绍的步骤配置代理服务器。
- 添加通过 清单 13 收集的 aixdata.ldif 中的数据。
- 可以使用下面的 idsldapadd 命令:
清单 17. 装载 LDIF 中的数据
# idsldapadd -h secldapproxy.ibm.com -D cn=manager,cn=ibmpolicies -w sec001ret \
-c -i /tmp/aixdata.ldif
|
-
使用 mksecldap 命令为客户机配置代理。
清单 18. 配置客户机的命令
# mksecldap -c -h secldapproxy.ibm.com -a cn=manager,cn=ibmpolicies -p sec001ret
|
参考资料 学习
获得产品和技术
-
下载 IBM 产品评估版,试用这些来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。
讨论
作者简介  | 
|  | Nikhil 是一位系统软件工程师,当前在 IBM India Software Labs 的 Tivoli Directory Server Level 2 支持团队工作。他拥有印度 Pune 的 Pune Institute of Computer Technology 的计算机工程学位。 |
 | 
|  | Nilesh 是一位系统软件工程师,当前在 IBM India Software Labs 的 level 2 Tivoli 安全团队工作。他拥有印度 Pune 的 Pune Institute of Computer Technology 的信息技术学位。他擅长的领域包括 Tivoli 安全产品和 DB2® 中的 IBM Tivoli Directory Server。 |
对本文的评价
|  |