4.6. 将 LDAP 服务器迁移到 IdM

您可以使用 ipa migrate-ds 命令将身份验证和授权服务从 LDAP 服务器迁移到身份管理(IdM)。

警告

这是一个通用的迁移流程,可能在每个环境中不一定能正常工作。

强烈建议您在尝试迁移真实的 LDAP 环境前设置测试 LDAP 环境并测试迁移过程。在测试环境时,请执行以下操作:

  1. 在 IdM 中创建测试用户,并将迁移的用户的输出与测试用户的输出进行比较。
  2. 将迁移的用户的输出(如 IdM 上所示)与源用户进行比较,如原始 LDAP 服务器上所示。

有关更多的指导,请参见下面的 验证 部分。

先决条件

步骤

  1. 如果 IdM 尚未安装:在安装了现有 LDAP 目录的不同机器上安装 IdM 服务器,包括任何自定义 LDAP 目录模式。详情请参阅 安装身份管理

    注意

    自定义用户或组模式在 IdM 中的支持有限。它们可能会在迁移过程中导致问题,因为对象定义不兼容。

  2. 出于性能考虑,禁用兼容插件:

    # ipa-compat-manage disable

    有关模式兼容特性以及为迁移禁用它的好处的更多信息,请参阅 从 LDAP 迁移到 IdM 时的模式和模式兼容功能

  3. 重启 IdM 目录服务器实例:

    # systemctl restart dirsrv.target
  4. 配置 IdM 服务器来允许迁移:

    # ipa config-mod --enable-migration=TRUE

    通过将 --enable-migration 设为 TRUE,您可以执行以下操作:

    • 在 LDAP 添加操作过程中允许预哈希密码。
    • 如果初始 Kerberos 身份验证失败,则将 SSSD 配置为尝试密码迁移序列。如需更多信息,请参阅 将密码从 LDAP 迁移到 IdM 时的使用 SSSD 中的工作流部分。
  5. 运行 IdM 迁移脚本 ipa migrate-ds 以及与您的用例相关的选项。如需更多信息,请参阅 自定义从 LDAP 到 IdM 的迁移

    # ipa migrate-ds --your-options ldap://ldap.example.com:389
    注意

    如果您没有在前面的步骤中禁用兼容插件,请将 --with-compat 选项添加到 ipa migrate-ds

    # ipa migrate-ds --your-options --with-compat ldap://ldap.example.com:389
  6. 重新启用兼容插件:

    # ipa-compat-manage enable
  7. 重启 IdM 目录服务器:

    # systemctl restart dirsrv.target
  8. 当所有用户已迁移密码后,禁用迁移模式:

    # ipa config-mod --enable-migration=FALSE
  9. [可选] 当所有用户都已迁移后,重新配置非 SSSD 客户端以使用 Kerberos 身份验证,即 pam_krb5,而不是 LDAP 身份验证,即 pam_ldap。如需更多信息,请参阅 RHEL 7 系统级身份验证指南中的配置 Kerberos 客户端
  10. 让用户生成哈希的 Kerberos 密码。选择 从 LDAP 迁移到 IdM 时规划密码迁移 中描述的方法之一。

    • 如果您决定使用 SSSD 方法

      • 将已安装 SSSD 的客户端从 LDAP 目录移到 IdM 目录,并将它们注册为 IdM 的客户端。这会下载所需的密钥和证书。

        在 Red Hat Enterprise Linux 客户端上,可以使用 ipa-client-install 命令来实现。例如:

        # ipa-client-install --enable-dns-update
    • 如果您决定使用 IdM 迁移 web 页面 方法:

      • 指示用户使用迁移网页登录到 IdM:

        https://ipaserver.example.com/ipa/migration
  11. 要监控用户迁移过程,请查询现有的 LDAP 目录,以查看哪些用户帐户拥有密码,但还没有 Kerberos 主体键。

    $ ldapsearch -LL -x -D 'cn=Directory Manager' -w secret -b 'cn=users,cn=accounts,dc=example,dc=com' '(&(!(krbprincipalkey=))(userpassword=))' uid
    注意

    在过滤器两边包含单引号,以便 shell 不会对其进行解释。

  12. 当所有客户端和用户的迁移完成后,请停用 LDAP 目录。

验证

  1. 使用 ipa user-add 命令来在 IdM 中创建测试用户。将迁移的用户的输出与测试用户的输出进行比较。确保迁移的用户包含测试用户上存在的最小属性和对象类集合。例如:

    $ ipa user-show --all testing_user
    dn: uid=testing_user,cn=users,cn=accounts,dc=idm,dc=example,dc=com
    User login: testing_user
    First name: testing
    Last name: user
    Full name: testing user
    Display name: testing user
    Initials: tu
    Home directory: /home/testing_user
    GECOS: testing user
    Login shell: /bin/sh
    Principal name: testing_user@IDM.EXAMPLE.COM
    Principal alias: testing_user@IDM.EXAMPLE.COM
    Email address: testing_user@idm.example.com
    UID: 1689700012
    GID: 1689700012
    Account disabled: False
    Preserved user: False
    Password: False
    Member of groups: ipausers
    Kerberos keys available: False
    ipauniqueid: 843b1ac8-6e38-11ec-8dfe-5254005aad3e
    mepmanagedentry: cn=testing_user,cn=groups,cn=accounts,dc=idm,dc=example,dc=com
    objectclass: top, person, organizationalperson, inetorgperson, inetuser, posixaccount, krbprincipalaux, krbticketpolicyaux, ipaobject,
                 ipasshuser, ipaSshGroupOfPubKeys, mepOriginEntry
  2. 将迁移的用户的输出(如 IdM 上所示)与源用户进行比较,如原始 LDAP 服务器上所示。确保导入的属性不会复制两次,并且它们具有正确的值。