Microsoft Active Directory使用Centos进行身份验证

时间:2014-02-27 15:26:29

标签: ssl active-directory ldap

我无法理解如何在不必明确输入管理员凭据的情况下对用户进行身份验证。

我已成功使用LDAP over SSL建立安全连接,我可以通过输入终端来检索用户个人资料:

ldapsearch -x -D cn = administrator,cn = users,dc = domain,dc = local -H ldaps://dc.domain.local -W'sAMAccountName = smithd'

这会提示我输入管理员密码,并提取所请求的用户信息。

如何在不必明确输入管理员凭据的情况下对用户进行身份验证?

我应该使用Winbind吗?桑巴?

1 个答案:

答案 0 :(得分:1)

通常使用LDAP,您不会以管理员身份登录(“绑定”),而是以用户身份登录。

尝试ldapsearch -x -D cn=your-user,cn=users,dc=domain,dc=local -H ldaps://dc.domain.local -W 'sAMAccountName=smithd',如果搜索成功,则表示您已对用户进行了身份验证。在AD中,用户的 CN 值可能不会立即显而易见,并且通常不等于 sAMAccountName (grrr)。尝试使用LDAP搜索查找用户的 CN 值:

ldapsearch -x -D cn=administrator,cn=users,dc=domain,dc=local -H ldaps://dc.domain.local -W 'objectclass=inetorgperson' cn

这将为您提供用户及其 CN 值的列表。现在,您可以尝试使用cn=<user cn>,cn=users,dc=domain,dc=local中的 CN 值与其中一个用户绑定。

此外,Centos可以使用pam_ldap针对LDAP目录(也称为AD)对用户进行身份验证。您可以在此处找到更多信息:http://www.padl.com/OSS/pam_ldap.html

对于pam_ldap设置,您可能需要一个代理用户,其帐户名和密码位于配置文件中,但这不一定是管理用户。 pam_ldap将使用此用户来查找尝试登录的实际用户,之后将与该实际用户执行 bind

请注意,来自LDAP世界的许多人会自动认为您了解所有基础知识,因此可能存在陡峭的学习曲线。