为什么公司不将LDAP用作除用户之外的中央存储库?

9
在我曾经工作过的大型公司中,它们都使用LDAP来访问用户信息的中央存储库,但很少有公司努力扩展架构以包括不是从inetOrgPerson派生的objectClasses。
微软的Active Directory进行了广泛的模式扩展,但很少有商业产品利用LDAP的功能。
这是因为大多数LDAP开发人员不知道如何对用户之外的对象进行建模吗?他们认为它有价值,但只是没有深入思考吗?他们尝试过并遇到了性能问题吗?还是其他原因?

非扩展inetOrgPerson的其他原因定制模式的示例将不胜感激。 - McGovernTheory
在我的自我测试中,我发现扩展LDAP与非用户objectClasses比使用关系数据库更高效。可悲的是,许多开发人员仍然停留在过去,需要重新思考过时的假设。 - McGovernTheory
1
实现自己的RBAC后备存储,而不是集成LDAP,似乎是那些过时的步骤之一...同时也违反了网络服务层上的DRY原则。 - Tetsujin no Oni
我也将它用于产品目录,因为我们的产品是分层的。LDAP广泛用于互联网域和X509证书目的。 - user207421
5个回答

5
  • 我一直认为LDAP对于网络管理员来说太高级,对于软件开发人员来说又太低级。两者都似乎不太适应它。
  • 有一种看法认为,由于几乎每个企业应用程序都会使用关系型数据库,因此添加一个数据源会降低应用程序的可用性和可靠性。
  • 在LDAP中制作自定义模式的门槛仍然很高。在LDAP服务器中,您必须将模式文件放入模式目录中,通常需要使用根或管理员权限并重新启动LDAP服务器;而当前的ORM可以在应用程序启动时创建、更新或验证关系数据库模式。

4
个人认为这是因为LDAP是一个“目录”,而不是数据库。 目录适用于查找人员及其相关数据,但对于跟踪高度关联的数据并不特别有效 - 这正是我们其余大部分数据的样子。 实际上,我们使用LDAP作为“人员”数据的前端,将许多数据流合并为单个目录视图。 我们仍然在后端数据库中拥有“人员”数据以及我们机构数据的其他部分,并且只选择了LDAP(在我们的情况下是ADAM)作为前端,以便方便地查找合并的“人员”数据。 现在我们正在转向Web服务作为访问此数据的手段,我不确定继续使用LDAP路线是否有意义(除了支持尚未更新的现有服务)。

3
我们为一些拥有6500万LDAP记录的公司工作过,但这些记录都不是针对个人的。这些数据主要涉及各种设备,包括:* DHCP * DNS * MAC地址 * 位置 * SN * 品牌 * 型号等等。-jim

1
你能否更详细地描述一下你的实现和其他考虑因素? - McGovernTheory

2
我认为这是因为A)与SQL相比,使用LDAP的复杂性更高,B)您的产品将完全与之绑定。也就是说,除了运行LDAP的大型组织以外,它没有市场。花费更少的金钱和精力,我可以构建一个在任何地方都能运行的应用程序。
现在,专门为组织编写的需要访问其他LDAP数据的内部应用程序是另一回事。但显然你会听到更少关于它们的消息,因为它们没有商业营销。

0

我认为LDAP在快速频繁读取方面进行了高度优化。 我不认为它们适用于事务性系统。

关系模型及其在SQL中的表达是一件非常强大的事情。 我不认为它会很容易地被LDAP或对象数据库所取代。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接