因为我安装了 ldap 服务器,我正在为服务器用户进行服务器客户端身份验证,但在密码方面遇到了问题。如果我在添加 ldif 文件中输入密码,并在密码前面放置一些编码标签,如 {crypt}somepassword,然后将其作为新用户添加到 ldap,它就可以工作了。但如果我尝试使用命令 ldappasswd 更改密码,它会说
ldappasswd 用户 SASL/DIGEST-MD5 身份验证已启动 请输入您的密码: ldap_sasl_interactive_bind_s:无效凭证(49) 附加信息:SASL(-13):未找到用户:数据库中没有秘密
如果我尝试使用 -x 参数然后说
ldappasswd 用户 -x 结果:需要更强的身份验证 (8) 附加信息:只有经过身份验证的用户才可以更改密码
和 ldapsetpasswd 更改密码但密码不起作用。
答案1
您的 ldap 服务器可能不应该提供 SASL 方法。
如果您想要简单绑定(-x
)而不是使用 SASL,您还应该使用-ZZ
来要求STARTTLS
。简单绑定还要求使用dn
指定并使用或-D
指定密码,这将生成提示。-w <password>
-W
但是,您应该编辑 Ubuntu 的等效版本/etc/sasl2/slapd.conf
以排除您不支持的 SASL 方法。
mech_list: external plain
另外:您应该真正将密码更改粘合在一起,pam-ldap
以便用户可以使用来更改他们的密码passwd
。
附注:{crypt} 可能不建议使用。如果您想直接在 LDAP 中存储凭据,则可能应该使用 {SSHA}