39.3. 将 LDAP 服务器迁移到身份管理
重要
这是一个一般迁移过程,但可能并不在每个环境中都有效。
强烈建议您在尝试迁移真实 LDAP 环境前设置测试 LDAP 环境并测试迁移过程。验证迁移是否已正确完成:
- 使用 ipa user-add 命令在 IdM 上创建测试用户,并将迁移的用户的输出与 test 用户进行比较。确保迁移的用户包含 test 用户中存在的最小属性和对象类集合。
$ ipa user-add TEST_USER
- 将迁移的用户的输出(在 IdM 上 10 月)与源用户(原始 LDAP 服务器上十之一)进行比较。确保导入的属性没有加倍,且具有预期值。
$ ipa user-show --all TEST_USER
- 在与现有 LDAP 目录不同的机器上安装 IdM 服务器,包括任何自定义 LDAP 目录模式。注意自定义用户或组模式在 IdM 中的支持有限。它们可能会导致迁移期间出现问题,因为对象定义不兼容。
- 禁用 compat 插件。
[root@server ~]# ipa-compat-manage disable
如果在迁移过程中需要兼容性树提供的数据,则不需要这一步。 - 重启 IdM 目录服务器实例。
[root@server ~]# systemctl restart dirsrv.target
- 配置 IdM 服务器来允许迁移:
[root@server ~]# ipa config-mod --enable-migration=TRUE
- 运行 IdM 迁移脚本 ipa migrate-ds。在最基本的方面,这只需要迁移 LDAP 目录实例的 LDAP URL:
[root@server ~]# ipa migrate-ds ldap://ldap.example.com:389
传递 LDAP URL 会利用常见的默认设置迁移所有目录数据。通过指定其他选项(如 第 39.2 节 “使用 ipa migrate-ds的示例” 所述),可以选择性地迁移用户和组数据。如果上一步中没有禁用 compat 插件,请将--with-compat
选项传给 ipa migrate-ds。导出信息后,该脚本会添加所有必需的 IdM 对象类和属性,并在属性中转换 DN 以匹配 IdM 目录树(如果命名上下文不同)。例如:uid=user,ou=Person,dc=ldap,dc=example,dc=com
被迁移到uid=user,ou=Person,dc=idm,dc=example,dc=com
。 - 如果在迁移前禁用了 compat 插件,请重新启用 compat 插件。
[root@server ~]# ipa-compat-manage enable
- 重启 IdM 目录服务器实例。
[root@server ~]# systemctl restart dirsrv.target
- 禁用迁移模式:
[root@server ]# ipa config-mod --enable-migration=FALSE
- 可选。重新配置非 SSSD 客户端以使用 Kerberos 身份验证(
pam_krb5
)而不是 LDAP 身份验证(pam_ldap
)。在所有用户都已迁移之前,使用 PAM_LDAP 模块;然后可以使用 PAM_KRB5。如需更多信息,请参阅《 系统级身份验证指南》 中的 配置 Kerberos 客户端。 - 用户可以通过两种方式生成其哈希 Kerberos 密码:它们都在没有用户互动的情况下迁移用户密码,如 第 39.1.2 节 “计划密码迁移” 所述。
- 使用 SSSD:
- 将已安装 SSSD 的客户端从 LDAP 后端移到 IdM 后端,并将它们注册为 IdM 的客户端。这会下载所需的密钥和证书。在 Red Hat Enterprise Linux 客户端上,可以使用
ipa-client-install
命令来实现。例如:[root@server ~]# ipa-client-install --enable-dns-update
- 使用 IdM 迁移网页:
- 指示用户使用迁移网页登录到 IdM:
https://ipaserver.example.com/ipa/migration
- 要监控用户迁移过程,请查询现有的 LDAP 目录,以查看哪些用户帐户具有密码,但还没有 Kerberos 主键。
[user@server ~]$ ldapsearch -LL -x -D 'cn=Directory Manager' -w secret -b 'cn=users,cn=accounts,dc=example,dc=com' '(&(!(krbprincipalkey=*))(userpassword=*))' uid
注意在过滤器两边包含单引号,以便 shell 不会对其进行解释。 - 完成所有客户端和用户的迁移后,停用 LDAP 目录。