我正在编写一个依赖于LDAP登录的应用程序。当用户使用其有效的LDAP凭证登录到系统时,会授予API令牌用于从该点开始与应用程序进行交互(API驱动的Web应用程序)。但是,应用程序需要进行设置,以便无论何时将用户从LDAP服务器中删除,API密钥也会被撤销。我的计划是设置一个cronjob来定期检查LDAP凭证是否仍然有效。因此,我需要保存这些凭据,以便日后查看。我意识到,这意味着我必须保存用户以纯文本形式提供的密码,否则我将无法将它们发送到LDAP服务器进行验证。是否可以验证LDAP凭证而不将LDAP密码存储为纯文本
我个人对LDAP不太熟悉,所以我想知道是否有任何解决方法。我考虑过存储密码的哈希值,并想知道是否可以通过使用密码散列来验证凭据,而不是密码本身,但后来很快意识到这不会更安全,因为如果数据库会受到影响,密码是否被散列并不重要,如果它们都可以用于验证。这样做的唯一好处是可能难以检查用户是否对其他服务使用相同的密码。
所有的建议表示赞赏。谢谢!
将密码存储为纯文本?真?这怎么是一个选择? –
@TheBeardedLlama那么这就是我想解决的问题:') –
为什么?您不需要再次以用户身份*登录,以确定该用户是否仍然存在。通常情况下,您以LDAP管理员身份登录来执行此类搜索。在当前会话期间是否需要检测用户删除也是有争议的。您可以让它在下次(失败)登录时生效,并且您还可以在删除时过期用户会话,以便他们必须立即尝试重新登录,并且失败。 – EJP