使用 Active Directory 对 Linux 客户端进行身份验证(2)

三种身份验证策略

假设 Linux 计算机上提供了 LDAP、Kerberos 和 Winbind 三种身份验证,我们可以采用三种不同的实现策略允许 Linux 计算机使用 Active Directory 来进行身份验证。

使用 LDAP 身份验证使用 Active Directory 进行身份验证的最简单但成效最低的方法是,将 PAM 配置为使用 LDAP 身份验证,如图 1 所示。虽然 Active Directory 属于 LDAPv3 服务,但 Windows 客户端使用 Kerberos(回退到 NTLM)而不是 LDAP 进行身份验证。

LDAP 身份验证(称为 LDAP 绑定)通过网络以明文形式传递用户名和密码。对于大多数用途来说,这不仅不安全,而且也是无法接受的。

使用 Active Directory 对 Linux 客户端进行身份验证

图 1 使用 LDAP 对 Active Directory 进行身份验证


降低以明文形式传递凭据的风险的唯一方法是使用类似于 SSL 的协议加密客户端与 Active Directory 进行通信所使用的通道。这绝对可行,但会增加在 DC 和 Linux 计算机上管理 SSL 证书的负担。此外,使用 PAM LDAP 模块并不支持更改已重置的或过期的密码。


使用 LDAP 和 Kerberos 利用 Active Directory 进行 Linux 身份验证的另一种策略是,将 PAM 配置为使用 Kerberos 身份验证,以及将 NSS 配置为使用 LDAP 查找用户和组信息,如图 2 所示。此方案的优点是,它相对来说比较安全,而且它利用的是 Linux 的“内置”功能。但是它不利用 Active Directory DC 发布的 DNS 服务位置 (SRV) 记录,所以您会被迫挑选一组特定的 DC 来进行身份验证。对于管理即将过期的 Active Directory 密码或是直至最近的适当组成员身份查询,它提供的方法也不是很直观。

使用 Active Directory 对 Linux 客户端进行身份验证

图 2 使用 LDAP 和 Kerberos 对 Active Directory 进行身份验证



使用 Winbind 使用 Active Directory 进行 Linux 身份验证的第三种方法是,将 PAM 和 NSS 配置为调用 Winbind 后台程序。Winbind 将使用 LDAP、Kerberos 或 RPC(使用其中最合适的一个),将不同的 PAM 和 NSS 请求转换为相应的 Active Directory 调用。图 3 说明了这一策略。

使用 Active Directory 对 Linux 客户端进行身份验证

图 3 使用 Winbind 对 Active Directory 进行身份验证

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyxzyf.html