第 14 章 身份管理
以下章节包含对 RHEL 8 和 RHEL 9 之间身份管理(IdM)的最显著的更改。
14.1. 新功能 复制链接链接已复制到粘贴板!
SSSD 中提供了一个新的无密码验证方法
从 RHEL 9.4 开始,您可以在 SSSD 中启用和配置无密码身份验证,以使用与 FIDO2 规范兼容的生物识别设备,如 YubiKey。您必须提前注册 FIDO2 令牌,并将此注册信息存储在 RHEL IdM、活动目录或 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
# dnf install ipa-server
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于具有集成 DNS 服务的服务器:
dnf install ipa-server ipa-server-dns
# dnf install ipa-server ipa-server-dns
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
SSSD 隐式文件供应商域默认禁用
SSSD 隐式 文件
供应商域,从 /etc/shadow
和 /etc/
groups 等本地文件检索用户信息,现已默认禁用。
使用 SSSD 从本地文件检索用户和组信息:
配置 SSSD.选择以下选项之一:
使用
sssd.conf
配置文件中的id_provider=files
选项明确配置本地域。[domain/local] id_provider=files ...
[domain/local] id_provider=files ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过在
sssd.conf
配置文件中设置enable_files_domain=true
选项来启用文件
供应商。[sssd] enable_files_domain = true
[sssd] enable_files_domain = true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置名称服务切换。
authselect enable-feature with-files-provider
# authselect enable-feature with-files-provider
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要恢复用户信息的缓存和同步,请通过创建符号链接来启用
shadow-utils
和sssd_cache
之间的集成:ln -s /usr/sbin/sss_cache /usr/sbin/sss_cache_shadow_utils
# ln -s /usr/sbin/sss_cache /usr/sbin/sss_cache_shadow_utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
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
票据。
改进了 SSSD 多线程性能
在以前的版本中,SSSD 从多线程应用程序(如 Red Hat Directory Server 和 Identity Management)序列化并行请求。从 RHEL 9.1 开始,所有 SSSD 客户端库(如 nss
和 pam
)不会序列化请求,因此允许来自多个线程的请求并行执行以提高性能。
要启用以前的序列化行为,请将环境变量 SSS_LOCKFREE
设置为 NO
。
ansible-freeipa
现在还在 ansible-freeipa-collection
子软件包中额外提供了角色和模块来作为 Ansible 集合
要使用新集合:
-
安装
ansible-freeipa-collection
子软件包。 -
将
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
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 令牌或存储的密钥。