假设可以配置为使用LDAP服务器的应用程序 - 无论是ActiveDirectory还是OpenLDAP等 - 用于对其用户进行身份验证并检索有关它们的一些其他信息以进行授权。应用程序绑定到LDAP服务器的方式也是可配置的 - 它可以使用简单绑定或SASL绑定,具体取决于LDAP服务器支持的内容和总体安全要求。
假设如果绑定成功使用用户提供的任何凭据,则必须表示这些凭据有效。然而,情况并非总是如此;即使提供了一个空的密码,其中非空的密码实际上是预期的,也可能发生简单的绑定成功。根据{{3}},使用非空用户名和空密码的简单绑定被解释为使用匿名授权建立未经身份验证的连接的意图。可以将服务器配置为使用unwillingToPerform使这些尝试失败,但它也可以允许它们。
问题是:在这样的场景中,应用程序可以配置为使用各种LDAP服务器,并以可配置的方式绑定 - 简单或通过SASL - 有一种方法可以明确地检查用户输入的凭据针对特定的LDAP服务器,除了尝试使用这些凭据绑定之外,假设简单绑定可能导致误报?
谢谢你,我期待你的回复。
答案 0 :(得分:0)
当然,你所要做的就是禁止,或者甚至只记得密码为空的情况?
答案 1 :(得分:0)
至少在PHP中,你只需要这样做:
<?php
$ds = ldap_connect($ip_address);
if(@ldap_bind($ds, $username, $password) {
// Login successful!
} else {
// Login unsuccessful :(
}
?>
您的里程可能因其他语言而异,但这对我有用。