LDAP 绑定允许不正确(非空白)密码

LDAP Bind allowing incorrect (non-blank) password

我们有一个客户 AD 系统,我们使用 LDAP 对用户进行身份验证,特别是通过使用他们的用户名和密码进行绑定。根据用户名的结构,错误密码的结果是不同的。如果我们在用户名中包含域名,那么任何密码都将 return 成为经过身份验证的结果。我已经为每个场景使用 LDP.exe 粘贴了一些结果:

绑定我的用户名和无效(非空白)密码:

res = ldap_bind_s(ld, NULL, &NtAuthIdentity, 1158); // v.3
    {NtAuthIdentity: User='[username]'; Pwd= <unavailable>; domain = 'DC=[domain],DC=co,DC=uk'.}
Error <49>: ldap_bind_s() failed: Invalid Credentials.
Server error: 8009030C: LdapErr: DSID-0C090585, comment: AcceptSecurityContext error, data 52e, v4563


绑定我的用户名@domain.org & 无效(非空白)密码:

res = ldap_bind_s(ld, NULL, &NtAuthIdentity, 1158); // v.3
    {NtAuthIdentity: User='[myusername@domain.org]'; Pwd= <unavailable>; domain = 'DC=[domain],DC=co,DC=uk'.}
Authenticated as dn:'[username@domain.org]'.

我注意到用户的完整用户名是 username@domain.org 并且提供给 LDAP 的域是 DC=domain,DC=co ,DC=uk,不确定这是否会有所作为?

有没有人知道可能导致此问题的原因以及是否有某种设置需要解决?

干杯。

域上是否启用了Guest account?如果是这样,任何随机凭据都将起作用。如果您使用有效的用户名,它只会告诉您密码不正确。

当您使用 myusername 格式时,它必须与帐户上的 sAMAccountName 属性匹配。如果您使用 myusername@domain.org 格式,它必须与帐户上的 userPrincipalName 匹配 - 因此 myusername@domain.org 可能不是您帐户的 userPrincipalName