LDAP 身份验证如何工作?

LDAP 身份验证如何工作?

我已经阅读了大量有关 LDAP 的信息,但有些内容我不明白。

假设我有一个 J2EE 应用程序,它既可以验证本地用户,也可以验证 LDAP 用户(互斥的替代方案)。在应用程序中指定 LDAP 服务器 IP 地址、基本 DN、连接 DN 和密码后,我的用户现在可以使用他们的 LDAP 信息登录。

现在,假设“myuser”使用密码“mypassword”登录应用程序。发生以下什么情况?

  1. 应用程序接收登录请求,然后使用其自己的凭据绑定到 LDAP,然后查找“myuser”的条目并将“mypassword”与存储在 LDAP 目录中的匹配条目的密码进行比较,然后允许或拒绝访问。

  2. 应用程序接收登录请求,然后将“myuser”和“mypassword”凭据传递给 LDAP(绑定 DN 和密码),然后根据绑定操作收到的响应,允许或拒绝用户?

它究竟是如何工作的?

答案1

据我所知(我不是这方面的专家),这更像是 1 而不是 2,但并不完全如此。应用程序接收登录请求。它使用自己的凭据绑定到 LDAP,密码以明文传输(这就是为什么 LDAPS 或通过 TLS 升级的 LDAP 是个好主意)。这些凭据必须具有足够的权限,以便 LDAP 服务器允许搜索与myuser帐户相关的各种存储参数,包括存储的、散列的用户密码。

然后,应用程序mypassword对用户提供的 进行哈希处理,并将其与 LD​​AP 返回的哈希值进行比较。如果它们匹配,则表明提供的凭据有效,并且 myuser 已通过身份验证;如果不匹配,则表明未通过身份验证。

相关内容