6.3. 启用离线验证
当身份提供程序无法访问时,系统安全服务守护进程(SSSD)需要凭证缓存才能启用身份验证。启用 cache_credentials 允许用户在网络中断期间使用本地存储的密码哈希登录,确保业务连续性。
您可以通过在 /etc/sssd/sssd.conf 文件中将 cache_credentials 设置为 true 来启用凭证缓存。如果使用双因素身份验证,缓存的凭证指的是密码和第一个身份验证因素。请注意,对于 passkey 和智能卡身份验证,您不需要将 cache_credentials 设置为 true 或设置任何其它配置;只要缓存中记录了成功的在线身份验证,它们就可以离线工作。
SSSD 永远不会以纯文本形式缓存密码。它仅存储密码的哈希。
虽然凭证存储为 salted SHA-512 哈希,但如果攻击者打算访问缓存文件并使用暴力攻击破解密码,这可能会构成安全风险。访问缓存文件需要特权访问权限,这是 RHEL 中的默认设置。
先决条件
-
root访问权限
流程
-
打开
/etc/sssd/sssd.conf文件: 在 domain 部分中,添加
cache_credentials = true设置:[domain/<domain_name>] cache_credentials = true可选,但推荐:在身份提供程序不可用时为 SSSD 允许离线身份验证的时长配置时间限制:
- 配置 PAM 服务以使用 SSSD。
使用
offline_credentials_expiration选项来指定时间限制。请注意,限制以天数为单位。
例如,要指定用户在上一次成功登录后 3 天可以离线验证,请使用:
[pam] offline_credentials_expiration = 3