5.3. 启用离线验证

默认情况下,SSSD 不缓存用户凭证。在处理身份验证请求时,SSSD 始终联系身份提供程序。如果提供商不可用,用户身份验证会失败。

为确保在身份提供程序不可用时用户也可以被验证,在 /etc/sssd/sssd.conf 文件中将 cache_credentials 设置为 true 来启用凭证缓存。如果使用双因素身份验证,缓存的凭证引用密码和第一个身份验证因素。请注意,对于智能卡验证,您不需要将 cache_credentials 设置为 true 或设置任何其他配置;只要缓存中记录了成功的在线验证,就可以离线工作。

重要

SSSD 永远不会以纯文本形式缓存密码。它仅存储密码的哈希。

虽然凭证被存储为 salted SHA-512 哈希,但如果攻击者试图访问缓存文件并使用暴力攻击破解密码,这可能会带来安全风险。访问缓存文件需要特权访问权限,这是 RHEL 中的默认要求。

先决条件

  • root 访问权限

步骤

  1. 打开 /etc/sssd/sssd.conf 文件:
  2. 在 domain 部分中,添加 cache_credentials = true 设置:

    [domain/your-domain-name]
    cache_credentials = true
  3. 可选,但推荐使用 :为 SSSD 在身份提供程序不可用时允许离线身份验证的时间限制:

    1. 配置 PAM 服务以使用 SSSD。

      如需了解更多详细信息,请参阅使用 authselect 配置用户身份验证

    2. 使用 offline_credentials_expiration 选项来指定时间限制。

      请注意,限制以天数为单位。

      例如,要指定用户在上一次成功登录后 3 天可以离线验证,请使用:

      [pam]
      offline_credentials_expiration = 3

其他资源

  • sssd.conf(5) 手册页