使用 rails 应用程序连接到 ldap 时的密码安全性

信息安全 密码 密码管理 LDAP 红宝石 导轨
2021-08-13 07:55:51

在将用户名/密码用于许多 ldap 搜索时,如何将用户名/密码安全地存储在 rails 应用程序中?

应用程序中的连接需要

ldap_bind_authenticate(Net::LDAP.new, username, password)

每次进行搜索时,用户的凭据都不会在登录时存储。我经常看到开发人员使用测试用户进行搜索并将明文用户名/密码对存储在 user.rb 模型中。有没有更安全的方法来做到这一点?

1个回答

免责声明:我从未在 Rails 上使用过 ruby​​ / ruby​​,在这个答案中,我描述了我的一般行为方式。

你有两种方法可以解决这个问题:

  1. 使用其他用户进行所有搜索。

    • 优点:您不必在他/她登录后存储用户凭据。
    • 缺点:我不知道这在您的应用程序中是否重要,但您无法根据您的 LDAP 日志跟踪哪个用户启动了导致查询。
    • 实施:您必须在应用程序内存储外部服务的敏感凭证。这与数据库凭据完全相同,因此我认为您应该以与它们相同的方式存储 LDAP 凭据。
  2. 使用登录用户进行搜索

    • 优点:您可以使用 LDAP 日志跟踪每个用户所做的事情
    • 缺点:您必须在用户登录时将未加密的用户信息存储在某处。
    • 实现:将未加密的用户信息保存在会话或其他内容中,以便您可以在需要时访问它们。

我个人更喜欢第一个解决方案,因为它不涉及在某处存储大量纯文本用户密码。