当用户尝试更改密码时,是否可以向用户告知除“违反约束”之外的更多信息?
诸如“密码必须包含 7 个或更多字符”之类的内容,而不是让他们猜测?
OpenDJ
答案1
您的 LDAP 服务器是什么?
错误 19,LDAP_CONSTRAINT_VIOLATION - 表示在修改、添加或修改 DN 操作中指定的属性值违反了对该属性的限制。限制可以是大小或内容(仅限字符串,无二进制)。
大多数 LDAP 服务器已经提供了足够的信息,说明密码或属性中缺少部分。您可以检查 389 目录服务器或 RHDS。389-ds 的示例如下
[17/Aug/2012:22:24:59 +0000] conn=85 op=14 RESULT err=19 tag=103 nentries=0 etime=0
[17/Aug/2012:22:24:59 +0000] conn=85 op=14 MOD dn="uid=redhat,ou=Users,dc=example,dc=com", within password minimum age
答案2
您需要更改代码以使用 LDAP 扩展密码修改请求,该请求在其响应中提供了详细的错误代码。
答案3
这是一个老问题了,但我们今天在使用外部自助密码 Web 应用程序时遇到了同样的问题。原来,SSP Web 应用程序在密码到达 389-DS 之前对其进行了 SSHA 加密,因此 389-DS 收到了哈希值。
SSP 网络应用程序需要保留密码,并让 389-DS 在写入时自行加密。(SSP Web 应用程序使用带有 AES-256 的 TLS 1.2 与 LDAP 通信,因此明文密码与传输中的大多数 HTTPS 网站一样安全。)
答案4
不建议提供更具描述性的消息。LDAP 响应中更具描述性的文本只会帮助攻击者。