了解LDAP身份validation

在过去的几天中,我一直在绕开LDAP身份validation,并设法configuration一些Linux系统(CentOS 6和7),以对OpenLDAP服务器(我也安装和configuration)执行SSH身份validation过程。 但是,即使一切正常,但仍然有一些LDAP身份validation过程对我有所帮助。

我不太明白的是,PAM和NSS如何相互配合,以及它们如何相互作用。 经过对这个主题的研究,我得出结论:( 参考 ):

  1. NSS提供名称服务机制来获取用户和组名信息;
  2. PAM提供了应用软件使用的灵活的authentication机制,因此涉及密码数据交换。

但什么是身份validationstream程? 如何使用我configuration的文件/服务( /etc/nsswitch.conf,/etc/nslcd.conf,/etc/nscd.conf/,/etc/pam.d/password-auth )以及按什么顺序?

注意:如果我从“nsswitch.conf”中删除与shadow数据库相对应的行,authentication过程仍然可以正常工作。 这意味着文件“nsswitch.conf”永远不会用于获取密码查找的来源?

根据configuration,LDAP不需要阴影数据库。 有两个常用选项:

  • 请求authentication访问LDAP。 这要求将用户标识和密码传递给接受或拒绝authentication的LDAP。 这将直接在LDAP中使用密码而不是从影子数据中查找。
  • 使用具有查找权限的LDAP用户访问密码或密码哈希并匹配密码。 在某些情况下,这可能会使用密码文件的密码字段中的影子数据或数据。

NSS提供对许多名称数据库的访问,如:passwd,主机,服务和组。 查找可以针对多种来源(包括文件和LDAP)完成。 它可能与一个caching守护进程合作保留最近访问数据的本地副本。

PAM提供基于许多规则的authentication。 根据版本的不同,它可能有一个单独的LDAP模块,或者它的密码模块可以识别LDAP,并且可以对LDAP进行validation。