LDAP解决了什么?

vic*_*ugo 60 ldap

在我参与的许多项目中,我一直与LDAP保持联系,但事实是,我真的不明白它.我认为它只是一个人员目录,但在我发现它可以包含层次结构中的任何对象之后.

我在我的盒子里安装了openldap,我发现了许多关于安装的教程.

什么是LDAP?LDAP是正确选择的场景是什么?使用它时我应该知道哪些LDAP概念?LDAP的优点是什么?它只是因为旧的应用程序使用它吗?互联网上是否有一个好的文档解释所有这些问题?

更新:补充答案我发现此链接包含像我这样的LDAP新手的快速入门指南.

Joh*_*lla 39

什么是LDAP?LDAP是正确选择的场景是什么?

LDAP是一种用于访问适合存储在目录中的对象的协议.某些东西是否"合适"是一个完全主观的决定,留给实施者,但通常这意味着许多对象的集合,每个对象都有不经常(或从未)更新的数据,其中每个对象都有一个明显或规范的方式来查找:

  • 电话簿(按姓名或电话号码查询)
  • 图书馆中的标题(按标题,作者等查找)
  • 建筑物内的租户(按楼层,套房,名称等查看)

等等.

请注意,LDAP本身只是一个协议,并不提供任何实际存储 - 以同样的方式,HTTP并不暗示您是否使用Apache,Jetty,Tomcat,Mongrel等.作为Web服务器.(一般来说,LDAP的一个问题是混淆名称的重用意味着不同的东西.维基百科有一个很好的部分.)


小智 13

DIT是一种分层描述方案,非常适合B-Tree algos,在大多数情况下会产生巨大的搜索性能.像OpenDS这样的Directory Server以微秒为单位返回索引搜索,而RDBMS系统则慢得多.目录服务器(通常称为LDAP服务器)交换资源(RAM,CPU)以实现快速读取响应.RDBMS系统在管理所讨论的数据方面提供了更多功能.需要更新或零更新,简单和小型网络协议的速度?使用目录服务器.需要数据管理和挖掘功能,和/或数据库的高变化率以及数据之间定义的关系方面?使用RDBMS(MySQL是你最好的选择).


Dan*_*ett 9

LDAP具有O(1)读取性能,以换取O(更糟糕的是)写入性能.它非常适合经常访问但很少更改的数据 - 人员,计算机名称和地址等目录.(因此首字母缩略词:轻量级目录访问协议.)

在降低开发人员熟悉度和奇怪的性能特征方面,使用非关系型数据库的痛苦小于获得快速读取访问权限的情况,LDAP是正确的选择.

  • 请你的O()是对的.他们并不代表你的想法 (5认同)
  • 澄清一下:我的意思是检索时间不依赖于数据存储中的元素数量(即查询不会随着表的增大而变慢)。但是,在大多数 LDAP 实现中都可以插入。 (2认同)

Red*_*ves 5

此链接将解释LDAP http://blogs.oracle.com/raghuvir/entry/ldap

我们在办公室使用LDAP在公司范围内查找电子邮件地址.我们也将其用作内部应用程序的单一源代码登录服务.


squ*_*ism 5

我喜欢的一个观点是LDAP是持久性存储上的应用程序,数据库是持久性存储.两者都可用于存储用户信息.

LDAP为您提供了一个在数据库中更难做的层次结构.您可以在数据库中创建层次结构,但是执行委托(这些行仅属于您)或行上的ACL更加困难.因此,如果使用LDAP存储用户身份,则可以更轻松地将安全问题排除在数据库之外.试图在数据库中解决它是很奇怪的.

同时,LDAP很难报告(将LDAP转换为数据库以进行报告).在树中深处存储需要快速搜索的属性可能会对性能造成问题(不要这样做,有侧边的数据库或者尝试通过重新设计DIT来展平查询).在非常深的DIT中存储所有地方的属性只是糟糕的LDAP或系统设计,但有时如果您与供应商产品或传统应用程序绑定则不可避免.