4.3. 在从 LDAP 迁移到 IdM 时规划密码迁移


在将用户从 LDAP 迁移到身份管理(IdM)之前,需要回答的一个关键问题是是否迁移用户密码。可用的选项如下:

迁移没有密码的用户

可以更快地执行,但需要管理员和用户进行更多的手动操作。在某些情况下,这是唯一可用的选项:例如,如果 原始的 LDAP 环境存储了明文用户密码,或者如果 密码不符合 IdM 中定义的密码策略要求

在迁移无密码的用户帐户时,您可以重置所有用户密码。迁移的用户被分配一个临时密码,在第一次登录时更改该密码。有关如何重置密码的更多信息,请参阅 HREL 7 IdM 文档中的 更改和重置用户密码

迁移带密码的用户

提供更顺畅的过渡,但还需要在迁移和转换过程中并行管理 LDAP 目录和 IdM。其原因在于,默认情况下,IdM 使用 Kerberos 进行身份验证,并且要求每个用户除标准用户密码外还有存储在 IdM 目录服务器中的 Kerberos 哈希。要生成哈希,需要以明文形式将用户密码提供给 IdM 服务器。在创建新用户密码时,密码会在被哈希处理前以明文形式提供,并存储在 IdM 中。但是,当用户从 LDAP 目录迁移时,相关的用户密码已被哈希处理,因此无法生成相应的 Kerberos 密钥。

重要

默认情况下,用户无法验证到 IdM 域或访问 IdM 资源,除非它们有 Kerberos 哈希 - 即使用户帐户已经存在。有一个临时解决方案:在 IdM 中使用 LDAP 身份验证,而不是 Kerberos 身份验证。在这个临时解决方案中,用户不需要 Kerberos 哈希。但是,这个临时解决方案限制了 IdM 的功能,我们不推荐。

以下小节解释了如何迁移用户及其密码:

4.3.1. 在将 LDAP 迁移到 IdM 时迁移密码的方法

要在不强制用户更改密码的情况下将用户帐户从 LDAP 迁移到身份管理(IdM),您可以使用以下方法:

方法 1: 使用迁移网页

告诉用户一次将其 LDAP 凭据输入到 IdM Web UI 中的特殊页面 https://ipaserver.example.com/ipa/migration。在后台运行的脚本随后捕获明文密码,并使用密码和合适的 Kerberos 哈希正确更新用户帐户。

方法 2(推荐):使用 SSSD

通过使用系统安全服务守护进程(SSSD)生成所需的用户密钥来缓解迁移对用户的影响。对于具有大量用户的部署,或者用户不应承担密码更改所带来的负担的部署,这是最佳方案。

工作流

  1. 用户尝试使用 SSSD 登录到机器。
  2. SSSD 尝试对 IdM 服务器执行 Kerberos 身份验证。
  3. 即使用户在系统中存在,但会出现错误为 key type is not supported 的身份验证失败,因为 Kerberos哈希不存在。
  4. SSSD 通过安全连接执行纯文本 LDAP 绑定。
  5. IdM 截获此绑定请求。如果用户有 Kerberos 主体,但没有 Kerberos 哈希,则 IdM 身份提供者会生成哈希,并将其存储在用户条目中。
  6. 如果身份验证成功,SSSD 会断开与 IdM 的连接,并再次尝试 Kerberos 身份验证。这一次,请求会成功,因为条目中存在哈希。

使用方法 2 时,整个过程对用户不可见。他们登录客户端服务,但请注意他们的密码已从 LDAP 移到 IdM。

4.3.2. 规划明文 LDAP 密码的迁移

尽管大多数部署中 LDAP 密码都被加密存储,但可能有一些用户或一些环境对用户条目使用明文密码。

当用户从 LDAP 服务器迁移到 IdM 服务器时,他们的明文密码不会被迁移,因为 IdM 不允许明文密码。相反,会为每个用户创建一个 Kerberos 主体,keytab 设为 true,密码设为过期。这意味着 IdM 要求用户在下次登录时重置密码。如需更多信息,请参阅 规划不满足 IdM 要求的 LDAP 密码的迁移

4.3.3. 规划不满足 IdM 要求的 LDAP 密码的迁移

如果原始目录中的用户密码不符合身份管理(IdM)中定义的密码策略,则迁移后密码将无效。

当用户通过输入 kinit 第一次尝试获得 IdM 域中的 Kerberos 票据授权票据(TGT)时,会自动完成密码重置。强制用户更改其密码:

[migrated_idm_user@idmclient ~]$ kinit
Password for migrated_idm_user@IDM.EXAMPLE.COM:
Password expired.  You must change it now.
Enter new password:
Enter it again:
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.