加入ldap认证是不是有漏洞?

Is it a loophole to join ldap authentication?

如果多个系统加入ldap认证,那么其中任意一个系统的任意管理员都可以获得任意用户的密码account.right?

如果您不这样做,针对 LDAP 目录进行身份验证的应用程序将无法访问所有用户密码 en mass不允许对该属性进行直接读取访问,或者您没有以明文形式存储密码(如果您使用类似 ldapsearch 的东西来转储条目并让 userpassword:: 后跟一堆随机 'stuff',这很容易解码的明文密码)。我允许访问我的 LDAP 服务器的应用程序没有权限读取所有 userPassword 值以尝试将它们反转为明文(并且我正在使用合适的加密机制来存储 userPassword 值)。我将应用程序服务帐户限制为读取联系人类型属性(phone 号码、地址)和组对象。他们获取用户密码的唯一方法是询问用户并使用这些凭据绑定到我的目录。应用程序管理员可以为使用该应用程序的人获取凭据吗?当然,他们 可以

在开箱即用的应用程序中,我可以附加调试器并在 username/password 值传输应用程序时访问它们。使用自定义编写的应用程序,获取凭据更加容易。该应用程序将用户名和密码作为用户输入并绑定到 LDAP 服务器以验证用户名和密码。作为 LDAP 服务器管理员,我无法阻止应用程序开发人员使用该用户名和密码进行调用和执行 其他 操作。 "Other things" 可能是合法的——我已经通过对旧系统进行身份验证来处理 LDAP 目录迁移,并且成功后,使用旧目录刚刚接受的密码在新目录 LDAP 中创建用户。这是一种迁移目录的丑陋方法,但它确实有效。 "Other things" 可能是恶意的。是否可能遇到正在窃取凭据的应用程序管理员或开发人员?取决于谁通过您的 LDAP 目录进行身份验证。

这不是 LDAP 独有的失败 -- 您让其他人直接使用的任何身份验证后端都会遇到同样的问题。如果您不希望应用程序 admins/developers 拦截用户凭据,请查看联合身份管理 (FIM) - 一种身份验证机制,应用程序(服务提供商,在 FIM 术语中) 无法访问用户名和密码,而是验证在受信任的 "identity provider" 验证用户名和密码后创建的某种令牌。