Linux/AD 与 SSSD 集成:如何选择用户可以登录的系统?

Linux/AD 与 SSSD 集成:如何选择用户可以登录的系统?

我们正在尝试在一些带有 SSSD 的 Linux 系统上进行 ActiveDirectory 集成。

到目前为止一切顺利,我们将 Linux 系统加入了域,并且我们可以使用 AD 定义的用户登录 Linux 系统。现在每个 AD 用户都可以登录每个已与 SSSD 集成的 Linux 系统。

我如何让用户 Foo 登录 LinuxServer01 而阻止他登录 LinuxServer02?以及/或者我如何阻止用户登录所有 Linux 系统而只允许他登录某些特定系统?

答案1

我会推荐反对在大多数部署中使用基于过滤器的访问控制过滤器有两个原因:

  • 很难做到正确
  • 过滤器应用于正在登录的用户条目。这可能会产生有趣的后果,特别是如果过滤器包含属性memberof而用户是嵌套组的成员 - 因为用户条目仅包含直接父级的成员,所以嵌套组永远不会匹配。

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

对于复杂的用例,SSSD 从 1.12.x 系列开始支持 AD GPO,请搜索sssd-ad 手册页了解详情。

答案2

在读完更多书后,我详细信息请参阅 sssd-ad(5)- 我第一次肯定错过了它们:

  • 默认值为access_providerpermit因此每个通过身份验证的用户都有权登录系统。这在sssd.conf(5)
  • 要管理特定权限,您必须设置access_provider = ad
  • ad_access_filter然后按照详细说明使用sssd-ad(5)定义可以登录的用户的过滤器

(但我还是不知道是否有办法在 AD 端逐个指定系统以允许用户登录)

答案3

在您的 sssd.conf 配置文件中,您可以修改访问过滤器以满足您的需求:

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

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

相关内容