第 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 从本地文件检索用户和组信息:
配置 SSSD.选择以下选项之一:
使用
sssd.conf
配置文件中的id_provider=files
选项明确配置本地域。[domain/local] id_provider=files ...
通过在
sssd.conf
配置文件中设置enable_files_domain=true
选项来启用文件
供应商。[sssd] enable_files_domain = true
配置名称服务切换。
# 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-2
和 AES 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 客户端库(如 nss
和 pam
)不会序列化请求,因此允许来自多个线程的请求并行执行以提高性能。
要启用以前的序列化行为,请将环境变量 SSS_LOCKFREE
设置为 NO
。