应用程序的身份验证过程如何通过 LDAP 目录工作

How does the authentication process of applications via LDAP-directory works

我是 LDAP 新手。也许这个问题看起来很奇怪,但在互联网上我看到了不同的版本。请帮助了解哪种方式是通过 LDAP 进行的正确身份验证。我有一个 LDAP 目录,其中用户密码存储为散列。我知道两种使用 LDAP 目录验证第三方应用程序的方法:

  1. LDAP 端的身份验证检查。使用“绑定”功能,用户的 DN 和密码以纯文本形式传递。如果绑定成功用户验证,否则不。
  2. 应用端鉴权检查。使用“绑定”功能,我们以管理员身份连接到目录。我们正在寻找合适的用户并获取他的记录。我们解析密码字段,隔离哈希算法的类型(例如 {CRYPT})。我们使用适当的算法对用户输入的密码进行哈希处理。如果哈希值相同则认证成功,否则不成功。 (即应用程序必须维护适当的散列算法)。

哪个选项最正确?哪种方式被认为是声称支持 LDAP 身份验证的任何供应商系统的标准?

您需要使用选项 1!!!!!

选项 2 有一些缺点:

  1. 您需要一个可以读取密码的管理员帐户,以便能够将它们与您散列的密码进行比较。这意味着应用程序能够读取散列的密码。我认为这是个坏主意。
  2. 您将规避实施的额外安全措施。您正在检查的密码可能是正确的。但是由于其他政策,用户可能被锁定并且不应该能够登录。失败的尝试将不计入可能的锁定。
  3. 哈希算法将来可能会更改为您尚未实施的算法。

您或许可以绕过这些障碍,但您需要额外的代码来实现。当您使用选项 1

时,已经采取了这种努力并且很容易获得