第 14 章 身份管理


以下章节包含对 RHEL 8 和 RHEL 9 之间身份管理(IdM)的最显著的更改。

14.1. 新功能

您可以在 IdM 中配置外部密码重置代理

当将身份管理 (IdM) 与不支持 Kerberos 身份验证的第三方应用程序集成时,您可以为应用程序定义一个专用的系统帐户来安全地重置用户密码。值得注意的是,这些重置不会触发 password change required 标志,确保用户的无缝登录体验。系统帐户使用 LDAP 进行身份验证。

因此,机构可以直接将自己的安全密码管理解决方案与 IdM 集成。请注意,您可以使用 IdM CLI 或 ansible-freeipa sysaccount 模块配置专用系统帐户。

SSSD 中提供了一个新的无密码验证方法

从 RHEL 9.4 开始,您可以在 SSSD 中启用和配置无密码身份验证,以使用与 FIDO2 规范兼容的生物识别设备,如 YubiKey。您必须提前注册 FIDO2 令牌,并将此注册信息存储在 RHEL IdM、活动目录或 LDAP 存储中的用户帐户中。RHEL 实现了 FIDO2 与 libfido2 库的兼容,该库目前仅支持基于 USB 的令牌。

在IdM 中完全支持 IdM-to-IdM 迁移

IdM-to-IdM 迁移以前作为技术预览提供,在 RHEL 9.7 中被完全支持。您可以使用 ipa-migrate 命令将所有特定于 IdM 的数据(如 SUDO 规则、HBAC、DNA 范围、主机、服务等)从一个 IdM 服务器迁移到另一个。例如,当将 IdM 从开发或暂存环境移到生产环境中时,这很有用。

现在完全支持身份管理 API

从 RHEL 9.3 开始,身份管理(IdM) API 是一个完全支持的功能。

即使 IdM API 已被改进,用户也可以使用现有工具和脚本,来启用多个 API 命令版本。这些增强功能不会以不兼容的方式更改命令的行为。这有以下优点:

  • 与管理客户端相比,管理员可以在服务器上使用之前或之后版本的 IdM 。
  • 开发人员可以使用 IdM 调用的特定版本,即使 IdM 版本在服务器上发生了变化。

无论一端是否使用了为某个功能引入了新选项的较新版本,都可以与服务器进行通信。

注意
虽然 IdM API 提供 JSON-RPC 接口,但不支持这种类型的访问。红帽建议使用 Python 访问 API。使用 Python 可以自动化重要的部分,如从服务器检索元数据,其允许列出所有可用的命令。

身份管理安装软件包已进行演示

在以前的版本中,在 RHEL 8 中,IdM 软件包作为模块发布,需要启用流并安装与所需安装对应的配置集。IdM 安装软件包在 RHEL 9 中进行了演示,因此您可以使用以下 dnf 命令安装 IdM 服务器软件包:

  • 对于没有集成 DNS 服务的服务器:

    # dnf install ipa-server
  • 对于具有集成 DNS 服务的服务器:

    # dnf install ipa-server ipa-server-dns

SSSD 隐式文件供应商域默认禁用

SSSD 隐式 文件 供应商域,从 /etc/shadow/etc/ groups 等本地文件检索用户信息,现已默认禁用。

使用 SSSD 从本地文件检索用户和组信息:

  1. 配置 SSSD.选择以下选项之一:

    1. 使用 sssd.conf 配置文件中的 id_provider=files 选项明确配置本地域。

      [domain/local]
      id_provider=files
      ...
    2. 通过在 sssd.conf 配置文件中设置 enable_files_domain=true 选项来启用文件供应商。

      [sssd]
      enable_files_domain = true
  2. 配置名称服务切换。

    # authselect enable-feature with-files-provider
  3. 要恢复用户信息的缓存和同步,请通过创建符号链接来启用 shadow-utilssssd_cache 之间的集成:

    # ln -s /usr/sbin/sss_cache /usr/sbin/sss_cache_shadow_utils

KDC 的新领域配置模板启用 FIPS 140-3 兼容密钥加密

此更新在 /var/kerberos/krb5kdc/kdc.conf 文件中提供了一个新的 EXAMPLE.COM 示例领域配置。它会带来两个变化:

  • FIPS 140-3 兼容 AES HMAC SHA-2 系列被添加到密钥加密的支持类型的列表中。
  • KDC 主密钥的加密类型从 AES 256 HMAC SHA-1 切换到 AES 256 HMAC SHA-384
警告

这个更新是独立的 MIT 领域。不要更改 RHEL 身份管理中的 Kerberos 分发中心(KDC)配置。

建议为新领域使用新的配置模板。模板不会影响任何已部署的领域。如果您计划根据模板升级领域的配置,请考虑以下几点:

对于升级主密钥,更改 KDC 配置中的设置不够充分。按照 MIT Kerberos 文档 中所述的流程进行操作。

AES HMAC SHA-2 系列添加到密钥加密的支持类型中在任何时候都安全,因为它不会影响 KDC 中的现有条目。只有在创建新主体或续订凭证时,才会生成密钥。请注意,无法根据现有密钥生成此新类型的密钥。要使这些新加密类型对某个主体可用,必须续订其凭证,这意味着也续订服务主体的 keytab。

主体不具有 AES HMAC SHA-2 密钥的唯一情况是活动目录(AD)跨域票据授予票据(TGT)。由于 AD 不实现 RFC8009,所以不使用 AES HMAC SHA-2 加密类型系列。因此,使用 AES HMAC SHA-2 加密的 跨域 TGT 的跨域 TGS-REQ 将失败。防止 MIT Kerberos 客户端使用针对 AD 的 AES HMAC SHA-2 的最佳方法是不为 AD 跨域主体提供 AES HMAC SHA-2 密钥。要做到这一点,请确保使用 AD 支持的密钥加密类型的明确列表创建跨域 TGT 条目:

  kadmin.local <<EOF
  add_principal +requires_preauth -e aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 -pw [password] krbtgt/[MIT realm]@[AD realm]
  add_principal +requires_preauth -e aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 -pw [password] krbtgt/[AD realm]@[MIT realm]
  EOF

要确保 MIT Kerboros 客户端使用 AES HMAC SHA-2 加密类型,您还必须在客户端和 KDC 配置中将这些加密类型设为 permitted。在 RHEL 上,此设置由加密策略系统管理。例如,在使用 DEFAULT 加密策略的 RHEL 9 主机上允许 AES HMAC SHA-2AES HMAC SHA-1 加密票据,而使用 FIPS 加密策略的主机只接受 AES HMAC SHA-2 票据。

改进了 SSSD 多线程性能

在以前的版本中,SSSD 从多线程应用程序(如 Red Hat Directory Server 和 Identity Management)序列化并行请求。从 RHEL 9.1 开始,所有 SSSD 客户端库(如 nsspam )不会序列化请求,因此允许来自多个线程的请求并行执行以提高性能。

要启用以前的序列化行为,请将环境变量 SSS_LOCKFREE 设置为 NO

ansible-freeipa 现在还在 ansible-freeipa-collection 子软件包中额外提供了角色和模块来作为 Ansible 集合

要使用新集合:

  1. 安装 ansible-freeipa-collection 子软件包。
  2. freeipa.ansible_freeipa 前缀添加到角色和模块的名称中。使用完全限定名称来遵循 Ansible 建议。例如,要引用 ipahbacrule 模块,请使用 freeipa.ansible_freeipa.ipahbacrule

您可以通过应用 module_defaults 来简化作为 freeipa.ansible_freeipa 集合一部分的模块的使用。

IdM 现在完全支持 HSM

现在,身份管理(IdM)完全支持硬件安全模块(HSM)。您可以在 HSM 上存储 IdM Cerificate Authority (CA)和密钥恢复授权(KRA)的密钥对和证书。这为私钥材料增加了物理安全。

IdM 依赖于 HSM 的网络功能,来在机器之间共享密钥来创建副本。HSM 提供了额外的安全性,而不会明显影响大多数 IPA 操作。当使用低级别工具时,证书和密钥会以不同的方式处理,但对大多数用户来说这是无缝的。

注意

不支持将现有 CA 或 KRA 迁移到基于 HSM 的设置中。您需要在 HSM 上使用密钥重新安装 CA 或 KRA。

您需要以下内容:

  • 一个支持的 HSM
  • HSM Public-Key Cryptography Standard (PKCS) modprobe 库
  • 一个可用的插槽、令牌和令牌密码

要安装存储在 HSM 上的密钥的 CA 或 KRA,您必须指定令牌名称和 PKCS swig 库的路径。例如:

ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers --token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra

named 现在使用 OpenSSL 确保 DNSSEC 验证

在 RHEL 9 中,RHEL Identity Management (IdM)中的 命名 守护进程已采用 OpenSSL PKCSxdg 引擎来保护 DNS 数据,并带有数字签名来保护 DNS 数据,以防止 DNS 免受攻击。在以前的版本中,在 RHEL 8 中,IdM 使用 bind 软件包的一个特殊版本,即 bind-pkcs11。另外,这个更新删除了 bind-pkcs11-utils 软件包。使用 opensc 软件包中的 pkcs11-tool 来管理 PKCSClusterImageSets 令牌或存储的密钥。

ansible-freeipa RPM 和 RH AAH 集合之间的兼容性

从 RHEL 9.7 开始,ansible-freeipa RPM 软件包所提供的 freeipa.ansible_freeipa 集合子软件包现在与 Red Hat Ansible Automation Hub (RH AAH)提供的 redhat.rhel_idm 集合的命名空间和名称兼容。如果您已安装了 RPM 集合子软件包,您现在可以运行引用 AAH 角色和模块的 playbook。请注意,内部会使用 RPM 子软件包的命名空间和名称。

管理 IdM ID 范围不一致的新工具

有了此更新,身份管理(IdM)提供了 ipa-idrange-fix 工具。您可以使用 ipa-idrange-fix 工具分析现有的 IdM ID 范围,识别这些范围之外的用户和组,并建议创建包括它们d 新的 ipa-local 范围。

ipa-idrange-fix 工具执行以下操作:

  • 从 LDAP 读取和分析现有范围。
  • 搜索 ipa-local 范围之外的用户和组。
  • 提出新的 ipa-local 范围,来涵盖标识的用户和组。
  • 提示用户应用提议的更改。

默认情况下,工具排除 1000 以下的 ID,以防止与系统帐户冲突。红帽强烈建议在应用任何推荐的更改前创建一个全系统备份。

如需更多信息,请参阅 ipa-idrange-fix (1) 手册页。

IdM 现在支持的 UID 范围已扩展至 Linux 允许的最大 UID 上限,以兼容遗留系统。

通过此次更新,User ID 和 Group ID 的取值范围现在可达到 4,294,967,293(即 2^32−1)。这会使 IdM 的最大值与 Linux UID 限制一致,在标准 IdM 范围最多为 2,147,483,647 的个别情况下非常有用。具体来说,它启用了 IdM 部署以及需要完整 32 位 POSIX ID 空间的传统系统。

警告

在标准部署中,IdM 为 subIDS 保留了 2,147,483,648 - 4,294,836,223 范围。使用 2^31 到 2^32-1 UID 范围需要禁用 subID 功能,因此与现代 Linux 功能冲突。

启用 UID 最多为 2^32-1:

  1. 禁用子 ID 功能:

    $ ipa config-mod --addattr ipaconfigstring=SubID:Disable
  2. 删除任何现有子 ID 范围:

    $ ipa idrange-del <id_range>
  3. 在 IdM 服务器上,确保正确删除内部 DNA 插件配置:

    # ipa-server-upgrade
  4. 添加一个新的本地 ID 范围,覆盖 2^31 到 2^32−1 的区间。确保为此新范围定义了 RID 基础,以便 IdM 可以为用户和组正确生成 SID。
注意

只有尚未分配子 ID 时,才能禁用子 ID 功能。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部