MySQL 数据库是 LDAP 的可行替代方案吗?

Rob*_*rto 7 sql database ldap

(如果我问错了问题或问错了地方,我深表歉意。)

我们为我们的协会(所有志愿者)运行 IT。我们有一个带有 OpenLDAP 成员数据库的服务器、邮件服务器、ftp 和一堆自制的网络应用程序。

除了 OpenLDAP 成员数据库之外,大部分都很好。设置它的人早已不在,当前的 IT 团队并没有真正做出改变的能力。

因此,我正在考虑将成员数据库从 OpenLDAP 移至 MySQL 数据库。这似乎是可能的,我们的电子邮件和 FTP 服务器支持 SQL 源,我们可以相应地修改我们的 web 应用程序。但是我仍然无法确定这样做是否有缺点。因此我的问题:

  • LDAP 相对于 SQL 数据库的优势是什么?(对于简单的用户数据库)
  • 是否有理由不使用 MySQL 作为用户数据库?

我在这里找不到类似的问题。我从外部找到的信息将我带到 10 多年前的页面。

Sve*_*ven 12

这是一个广泛的话题,没有简单的答案,因为它取决于很多因素。

(Open)LDAP 作为用户数据库的一些好处:

  • LDAP 具有固有的树结构,可以更轻松地构建大型组织。为真正是一系列事物(例如“用户是这些组的成员”)的记录创建数据字段也更容易,然后在 SQL 数据库中执行此操作(注意:两者在 SQL 中都是绝对可能的,只是更复杂) .
  • 将 LDAP 用作多个系统的中央用户数据库会更容易。对于 Mail 或 FTP 之类的东西来说,这不是一个问题,它们也可以使用 Linux PAM 作为身份验证源,或者对于您控制的本地系统,但特别是如果您添加第三方 Web 应用程序,您通常最终每个系统都有自己的自己的用户数据库,其架构不兼容,无法共享任何数据。在这种情况下,您通常至少可以与 LDAP 同步和/或对 LDAP 进行身份验证。
  • 用于记录的 LDAP 对象类可以很容易地将相同的数据库用于具有不同要求的许多不同系统 - 只需将对象类添加到记录中并获得一大堆特定于类的字段,这些字段不存在于其他记录中,并且SQL 中的每条记录都需要大量空字段。
  • LDAP 可以是一个黑盒身份验证系统。这意味着您可以拥有一个仅向 LDAP 发送用户名和密码并询问“此组合有效吗?”的应用程序。并得到是/否的回答。使用 SQL,应用程序实际上需要读取数据库并自行进行检查。

不幸的是,与简单的 SQL 数据库相比,实际管理 LDAP 要复杂得多,如果您的所有系统都可以完全使用相同的 SQL 用户数据库,那么您就没有真正的理由需要使用 LDAP。另一方面,我会长时间认真地思考,在撕掉它并用其他东西替换它之前坐下来了解 LDAP 是否真的更容易。当您开始时,这些类型的更改往往看起来很容易,但在此过程中,总会出现您没有考虑过的问题,这使事情变得比预期的要困难得多。

  • 此外,LDAP 软件不是通常使用一个或另一个条带的 SQL 数据库作为后端吗? (3认同)
  • @Shadur:通常,OpenLDAP 和 389DS 使用一些 Berkeley DB 变体作为存储后端(它不是 SQL 数据库,它是一个键值存储),但您可以根据特殊需要配置其他变体。Apache DS 做了类似的事情,但我不知道 MS 对 AD LDAP 组件做了什么(我的猜测:它也不是 SQL)。 (2认同)