10.4. 为 PAM 服务限制域
重要
此功能要求 SSSD 在系统中运行。
SSSD 允许您限制 PAM 服务可以访问哪些域。SSSD 根据特定 PAM 服务运行的用户评估来自 PAM 服务的身份验证请求。PAM 服务是否可以访问 SSSD 域取决于 PAM 服务用户是否能够访问该域。
示例用例是允许外部用户进行 FTP 服务器身份验证的环境。FTP 服务器作为单独的非特权用户运行,该用户应只能向选定的 SSSD 域进行身份验证,独立于内部公司帐户。使用此功能,管理员可以仅允许 FTP 用户对 FTP PAM 配置文件中指定的选定域进行身份验证。
注意
这个功能与旧的 PAM 模块类似,如
pam_ldap
,它能够使用单独的配置文件作为 PAM 模块的参数。
限制访问域的选项
以下选项可以用来限制对所选域的访问:
/etc/sssd/sssd.conf
中的pam_trusted_users
- 这个选项接受代表 SSSD 要信任的 PAM 服务的数字 UID 或用户名列表。默认设置是
all
,这意味着所有服务用户都是受信任的,可以访问任何域。 /etc/sssd/sssd.conf
中的pam_public_domains
- 这个选项接受公共 SSSD 域列表。公共域是即使不可信 PAM 服务用户也可访问的域。选项也接受
all
和none
值。默认值为none
,这意味着没有域是公共域,因此不受信任的服务用户无法访问任何域。 - PAM 配置文件的
域
- 此选项指定 PAM 服务可以对其进行身份验证的域列表。如果您在没有指定任何
域
的情况下使用域,PAM 服务将无法对任何域进行身份验证,例如:auth required pam_sss.so domains=
如果 PAM 配置文件中没有使用域
,PAM 服务可以在服务在可信用户下运行的条件上对所有域进行身份验证。/etc/sssd/sssd.conf
SSSD 配置文件中的domain
选项还指定 SSSD 尝试验证的域列表。请注意,PAM
配置文件中的 domain 选项无法扩展sssd.conf
中的域列表,它只能通过指定较短的列表来限制sssd.conf
域列表。因此,如果在 PAM 文件中指定了域,但没有在sssd.conf
中指定,PAM 服务将无法对域进行身份验证。
默认设置
pam_trusted_users = all
and pam_public_domains = none
指定所有 PAM 服务用户都是可信并可访问任何域。在这种情况下,PAM 配置文件的 domain 选项
可用于限制可访问的域。
如果您使用 PAM 配置文件中的
域
来指定域,sssd.conf
包含 pam_public_domains
,则可能需要在 pam_public_domains
中指定域。如果使用 pam_public_domains
,但没有包含所需域,则 PAM 服务将无法成功对域进行身份验证(如果其在不受信任的用户下运行)。
注意
PAM 配置文件中定义的域限制仅适用于身份验证操作,不适用于用户查找。
有关
pam_trusted_users
和 pam_public_domains
选项的详情请参考 sssd.conf(5) man page。有关 PAM 配置文件中使用 的域
选项的详情请参考 pam_sss(8) man page。
例 10.2. 为 PAM 服务限制域
要限制 PAM 服务可对其进行身份验证的域:
- 确保 SSSD 已配置为访问所需的域或域。SSSD 可以进行身份验证的域在
/etc/sssd/sssd.conf
文件中的domains
选项中定义。[sssd] domains = domain1, domain2, domain3
- 指定 PAM 服务能够进行身份验证的域或域。为此,可在 PAM 配置文件中设置 domain
选项
。例如:auth sufficient pam_sss.so forward_pass domains=domain1 account [default=bad success=ok user_unknown=ignore] pam_sss.so password sufficient pam_sss.so use_authtok
PAM 服务现在仅允许针对
domain1
进行身份验证。