我们正在一些带有 SSSD 的 linux 系统上尝试 ActiveDirectory 集成。
到目前为止一切顺利,我们将 linux 系统加入域,我们可以使用 AD 定义的用户登录 linux 系统。现在每个 AD 用户都可以登录到每个集成了 SSSD 的 Linux 系统。
如何让用户 Foo 登录 LinuxServer01 但阻止他登录 LinuxServer02?和/或如何阻止用户登录每个 linux 系统并让他登录一些特定的系统?
我们正在一些带有 SSSD 的 linux 系统上尝试 ActiveDirectory 集成。
到目前为止一切顺利,我们将 linux 系统加入域,我们可以使用 AD 定义的用户登录 linux 系统。现在每个 AD 用户都可以登录到每个集成了 SSSD 的 Linux 系统。
如何让用户 Foo 登录 LinuxServer01 但阻止他登录 LinuxServer02?和/或如何阻止用户登录每个 linux 系统并让他登录一些特定的系统?
我建议不要在大多数部署中使用基于过滤器的访问控制过滤器,原因有两个:
memberof
属性而用户是嵌套组的成员 - 因为用户条目仅包含指向父级的 memberofs,嵌套组将从不匹配。对于非常简单的用例,例如允许一个用户或一组用户,我建议使用简单访问提供程序
对于复杂的用例,SSSD 从 1.12.x 系列开始支持 AD GPO,请搜索sssd-ad 手册页了解详细信息。
在做了更多的 RTFM 之后,我在 sssd-ad(5) 中找到了详细信息- 我一定是第一次错过了它们:
access_provider
值为permit
,因此每个可以进行身份验证的用户都被授予登录系统的权限。这在sssd.conf(5)中有解释。access_provider = ad
ad_access_filter
中的详细说明为可以登录的用户定义过滤器(但我还是不知道有没有办法在AD端一一指定系统让用户允许登录)
在您的 sssd.conf 配置文件中,您可以修改访问过滤器以满足您的需求:
在该
domain/default
部分下,尝试以下操作: