如果多个系统加入ldap身份验证,那么其中任何一个的管理员都可以获取任何用户帐户的密码。对吗?
答案 0 :(得分:1)
根据LDAP目录进行身份验证的应用程序将无法访问所有用户密码 整 ,前提是您不允许直接读取属性的权限否则,您不会以明文形式存储密码(如果您使用ldapsearch之类的东西来转储条目并使用userpassword ::,后接一堆看起来很随机的“东西”,那么这就是容易解码的明文密码)。 App我不允许访问我的LDAP服务器的应用程序无权读取所有userPassword值,以尝试将它们反转以清除文本(并且我正在使用一种不错的加密机制来存储userPassword值)。我将应用程序服务帐户限制为读取联系人类型属性(电话号码,地址)和组对象。他们获取用户密码的唯一方法是要求用户输入密码,并使用这些凭据绑定到我的目录。应用程序管理员可以为使用该应用程序的人员获取凭据吗?当然,他们可以。
在开箱即用的应用程序中,我可以连接调试器,并在它们传递应用程序时访问用户名/密码值。使用自定义编写的应用程序,可以更轻松地获取凭据。该应用程序将用户名和密码作为用户输入,并绑定到LDAP服务器以验证用户名和密码。作为LDAP服务器管理员,我无法采取任何措施来阻止应用程序开发人员使用该用户名和密码进行呼叫并进行其他操作。 “其他内容”可能是合法的-我已经通过对旧系统进行身份验证来处理LDAP目录迁移,并成功地在新目录LDAP中使用刚刚接受的旧密码创建用户。这是迁移目录的丑陋方法,但确实有效。 “其他事物”可能是恶意的。是否有可能遇到正在窃取凭据的应用程序管理员或开发人员?取决于谁通过您的LDAP目录进行身份验证。
这不是LDAP的唯一失败-您让其他人直接使用的任何身份验证后端都遭受相同的问题。如果您不希望应用程序管理员/开发人员拦截用户凭据,请查看联合身份验证管理(FIM)-一种身份验证机制,其中应用程序(以FIM术语表示,服务提供商)不这样做 em> 可以访问用户名和密码,而是验证在受信任的“身份提供商”对用户名和密码进行身份验证之后创建的某种令牌。