Java 为什么LDAP身份验证例程通常使用两个绑定?
我正在使用SpringLDAP,我看到每个人都在使用两个绑定。第一个绑定作为服务帐户,第二个绑定作为给定密码的用户。但我看到,即使没有第一次绑定,也可以根据ldap中的密码执行用户验证Java 为什么LDAP身份验证例程通常使用两个绑定?,java,spring,ldap,openldap,spring-ldap,Java,Spring,Ldap,Openldap,Spring Ldap,我正在使用SpringLDAP,我看到每个人都在使用两个绑定。第一个绑定作为服务帐户,第二个绑定作为给定密码的用户。但我看到,即使没有第一次绑定,也可以根据ldap中的密码执行用户验证 有人能解释一下为什么我们在ldap中遵循两个绑定吗?使用服务帐户进行第一次绑定的意义是什么?有多种方法可以对LDAP进行身份验证。 您可以通过获取用户密码并在软件中进行匹配(一个绑定)来实现,也可以通过使用用户凭据绑定LDAP(两个绑定)来实现 这两种绑定方式的工作原理如下: 1) 获取用户名并在LDAP中搜索(
有人能解释一下为什么我们在ldap中遵循两个绑定吗?使用服务帐户进行第一次绑定的意义是什么?有多种方法可以对LDAP进行身份验证。 您可以通过获取用户密码并在软件中进行匹配(一个绑定)来实现,也可以通过使用用户凭据绑定LDAP(两个绑定)来实现 这两种绑定方式的工作原理如下: 1) 获取用户名并在LDAP中搜索(使用服务帐户绑定1) 2) 使用密码进行身份验证(使用用户帐户绑定2) 问候
Shelltux对于LDAP中的身份验证,您需要有DN和密码 通常,2个绑定的原因是您没有DN-用户名不一定是DN的一部分。因此,您必须使用服务帐户通过某些属性来查找用户(DN),例如“mail={mail}”,然后通过进行另一个绑定来验证找到的DN的密码 可以在两种情况下使用单个绑定:
一个绑定是“PasswordComparisonAuthenticator”,两个绑定是“BindAuthenticator”,我不会在应用程序中比较哈希,因为这意味着您需要一个特权帐户来查找密码。通常,密码属性只能由tge用户本身和LDAP中的管理员帐户读取。因此,您只能通过在应用程序中使用管理员帐户绑定并搜索用户来读取密码属性。因此,读取LDAP中的所有密码并破解它们会带来风险。我总是使用2路转弯,因为这是最安全的方式。