第 18 章 身份管理

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

18.1. 新功能

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

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

现在完全支持身份管理 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

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 票据。

一个传统 RHEL ansible-freeipa 存储库的替代品:Ansible Automation Hub

有了这个更新,您可以从 Ansible Automation Hub(AAH)下载 ansible-freeipa 模块,而不是从标准的 RHEL 存储库下载它们。通过使用 AAH,您可以从此存储库中 ansible-freeipa 模块的快速更新中受益。

在 AAH 中,ansible-freeipa 角色和模块以集合的形式发布。请注意,您需要 Ansible Automation Platform(AAP)订阅来访问 AAH 门户中的内容。您还需要 ansible 版本 2.14 或更高版本。

redhat.rhel_idm 集合与传统的 ansible-freeipa 软件包具有相同的内容。但是,集合形式使用完全限定的集合名称(FQCN),其中包含一个命名空间和集合名称。例如,redhat.rhel_idm.ipadnsconfig 模块对应于 RHEL 存储库提供的 ansible-freeipa 中的 ipadnsconfig 模块。命名空间和集合名称的组合可确保对象是唯一的,并可无冲突地共享。

改进了 SSSD 多线程性能

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

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