我在尝试理解如何对用户进行身份验证而不必显式输入管理员的凭据时遇到了麻烦。
我已经使用LDAP over SSL成功建立了安全连接,并且可以在终端中输入以下内容来检索用户个人资料:
ldapsearch -x -D cn =管理员,cn =用户,dc =域,dc =本地-H ldaps://dc.domain.local -W'sAMAccountName = smithd'
这提示我输入管理员密码,并提取请求的用户信息。
如何在无需显式输入管理员凭据的情况下对用户进行身份验证?
我应该使用Winbind吗?桑巴
最佳答案
通常,对于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
将使用该用户来定位尝试登录的实际用户,然后与该实际用户执行绑定。
请注意,LDAP世界中的许多人会自动假设您了解所有基础知识,因此学习过程可能会很艰难。
关于ssl - Microsoft Active Directory通过Centos进行身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22072920/