Linux / AD与SSSD的集成:如何select用户可以login的系统?

我们正在尝试用SSSD在一些Linux系统上集成ActiveDirectory。

到目前为止,我们已经将linux系统join了这个领域,我们可以使用AD定义的用户login到Linux系统。 现在每个AD用户都可以login到与SSSD集成的每个Linux系统。

我如何让用户Foologin到LinuxServer01,但阻止他login到LinuxServer02? 和/或我怎么能阻止用户login到每个Linux系统,让他在一些特定的?

我build议不要在大多数部署使用基于filter的访问控制filter,原因有二:

  • 他们很难得到正确的
  • filter应用于正在login的用户条目。这可能会产生有趣的结果,特别是如果filter包含memberof属性,而用户是嵌套组的成员 – 由于用户条目仅包含直接父项的成员,所以嵌套组永远不会匹配。

对于非常简单的用例,例如允许用户或一组用户,我build议使用简单的访问提供程序

对于复杂的使用情况,SSSD支持从1.12.x系列开始的AD GPO,请searchsssd-ad手册页以获取详细信息。

在做了更多RTFM之后,我在sssd-ad(5)中find了详细信息 – 我第一次肯定错过了它们:

  • 默认access_providerpermit ,所以每个可以进行身份​​validation的用户都有权login系统。 这在sssd.conf(5)中有解释。
  • 要pipe理特定的权限,您必须设置access_provider = ad
  • 然后使用ad_access_filter -ad(5)中详细介绍的ad_access_filter为可以login的用户定义filter

(但是我仍然不知道是否有任何方法可以在AD一侧逐一指定系统,以允许用户login)

在你的sssd.confconfiguration文件中,你可以修改访问filter来满足你的需求:

domain/default部分下,尝试以下操作:

 access_provider = ldap ldap_access_filter = memberOf=cn=GroupName,ou=Groups,dc=domain,dc=com