4.6. 配置 SSSD 以应用 LDAP 访问过滤器

如果在 /etc/sssd/sssd.conf 中设置 access_provider 选项,SSSD 会使用指定的访问提供程序来评估哪些用户被授予系统访问权限。如果您正在使用的访问提供商是 LDAP 提供商类型的扩展,您也可以指定一个 LDAP 访问控制过滤器,用户必须匹配才能允许访问系统。

例如,当使用 Active Directory (AD) 服务器作为访问提供程序时,您可以将 Linux 系统的访问权限限制为指定的 AD 用户。与指定过滤器不匹配的所有其他用户的访问都被拒绝。

注意

访问过滤器仅应用于 LDAP 用户条目。因此,在嵌套组上使用这种类型的访问控制可能无法正常工作。要在嵌套的组中应用访问控制,请参阅配置 simple 访问提供程序规则

重要

在使用脱机缓存时,SSSD 会检查用户最近的在线登录尝试是否成功。在最近一次在线登录期间成功登录的用户仍将能够脱机登录,即使他们与访问过滤器不匹配。

先决条件

  • root 访问权限

流程

  1. 打开 /etc/sssd/sssd.conf 文件:
  2. [domain] 部分中,指定 LDAP 访问控制过滤器。

    • 对于 LDAP 访问提供程序,请使用 ldap_access_filter 选项。详情请查看 sssd-ldap(5) 手册页。
    • 对于 AD 访问提供程序,请使用 ad_access_filter 选项。详情请查看 sssd-ad(5) 手册页。

      例 4.4. 允许访问特定 AD 用户

      例如,要只允许对属于 admins 用户组且具有 unixHomeDirectory 属性集的 AD 用户进行访问,请使用:

      [domain/your-AD-domain-name]
      access provider = ad
      [... file truncated ...]
      ad_access_filter = (&(memberOf=cn=admins,ou=groups,dc=example,dc=com)(unixHomeDirectory=*))

SSSD 也可以根据条目中的 authorizedServicehost 属性检查结果。实际上,可以根据用户条目和配置评估所有选项 MDASH LDAP 过滤器,authorizedServicehost MDASH。ldap_access_order 参数列出所有要使用的访问控制方法,按照应如何评估它们进行排序。

[domain/example.com]
access_provider = ldap
ldap_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com
ldap_access_order = filter, host, authorized_service

其它资源

  • sssd-ldap(5) 手册页