在 Web App 中使用 OpenLDAP 进行身份验证

Using OpenLDAP fro authentication in Web App

我们正在构建一个连接到数据库并进行数据可视化的 Web 应用程序。它可能有大约 300 个用户。 我们将使用 docker 部署它。

为了提高安全性,我们想使用一个 openLDAP 服务器来为我们存储用户凭据。基本原理是,它是一个久经考验的软件,比我们自己编写的任何软件都更安全,而且我们不必费心使用散列算法、盐等。此外,我们可以直接在 LDAP 中分配角色。

我们正在考虑以下架构(我们必须使用一台服务器):
- 一个 docker 带有网络应用程序的容器
- 一个 docker 容器 运行 数据库
- 一个 docker 容器 运行 openLDAP 服务器

我的问题:
- openLDAP(或一般的 LDAP)是否适合于此,或者是否有另一种解决方案可以将身份验证封装在久经考验的软件包中? (鉴于 LDAP 主要是为高并发负载而构建的,我们不期望这一点)? - 使用 docker 并因此封装服务是否会提高总体安全性(假设正确实施)?

非常感谢!

是的,OpenLDAP - 和一般的 LDAP - 适用于 username/password 身份验证,并且您可以在同一个包中获得标准密码散列和密码策略实施。 这些 LDAP 特性中的大部分在 IETF 中都已标准化,因此您可以期望所有 good LDAP 服务器产品都具有相同的特性,包括尤其是 OpenLDAP。

主要参考文献:

使用 Docker 或其他类型的容器(例如 LXC)从安全的角度来看总是一件好事,因为它提供了一种隔离容器(因此内部应用程序 运行)的形式其他人和默认情况下来自主机。然而,这在很大程度上取决于您的配置和环境,有很多方法可以放松容器隔离(例如启用某些功能、安装共享卷等)。 Docker 守护进程尤其必须得到妥善保护,因为它是一个拥有并需要一般特权访问权限以执行其所有强大功能的进程。 Docker 可以通过将 Docker 本机安全功能与内核安全功能相结合来进一步提高安全性,例如SELinux、AppArmor、grsec 等。有关 Docker Security.

的更多信息