LDAP解决了什么?

时间:2009-05-19 19:30:27

标签: ldap

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

我在我的盒子里安装了openldap,我找到了许多关于安装的教程。

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

更新: 补充我找到的答案this link,其中包含像我这样的LDAP新手的快速入门指南。

11 个答案:

答案 0 :(得分:39)

  

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

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

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

等等。

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

答案 1 :(得分:13)

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

答案 2 :(得分:9)

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

LDAP是正确的选择,其中使用非关系数据库的痛苦,在降低开发人员熟悉度和奇怪的性能特征方面,小于快速读取访问的快速增益。

答案 3 :(得分:5)

此链接将说明LDAP http://blogs.oracle.com/raghuvir/entry/ldap

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

答案 4 :(得分:5)

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

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

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

答案 5 :(得分:3)

我兼职和全日制学生。我的课程鼓励(阅读要求)许多小组项目。

我已经使用openLdap和phpLdapAdmin来控制对我的Subversion和Mercurial回购,Trac项目,Hudson等的访问。这不容易安装,但是在管理中节省的时间是上帝发送的。

如果您的项目中有许多人需要能够使用不同的资源,那么这是一个很好的工具。

答案 6 :(得分:2)

LDAP只是一种协议,维基百科的文章充分解释了http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol

它是一种查询基础组织结构(如Microsoft的Active Directory)的方法。您可以使用LDAP查询获取有关用户的各种信息,使用它来设置应用程序权限等。

答案 7 :(得分:2)

LDAP是一种访问协议;它只为您尝试查找应用程序的基础技术提供API - directory service。 OpenLDAP是开源目录服务之一; Sun还有另一个名为OpenDS的实现。 Active Directory和Novell NDS是该领域常见的另外两种。

该目录可用于存储有关任何类型资源的信息,以及资源之间的关系 - 例如,用户对目录,打印机或网络访问设备的权限。

答案 8 :(得分:2)

请看这个链接:

http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/1.html#RTFToC1

深入解释了LDAP:

例如,您可以在该文档中看到此图像,

http://www.umich.edu/~dirsvcs/ldap/doc/guides/slapd/guide-51.gif

答案 9 :(得分:1)

在我的一个旧工作场所,我们使用LDAP作为我们的主要用户身份验证系统。

这反过来为我们的各种系统提供了部门的信息。他们属于他们应该安装他们的主页目录,联系信息,员工管理。

不一定受LDAP控制,但我们混合使用LDAP的其他事情是SQL用户,K4,samba和电子邮件帐户的生成。

答案 10 :(得分:1)

  

互联网上有没有一个好的文档解释所有这些问题?

IBM出版了一本关于LDAP的优秀红皮书。标题是: Understanding LDAP - Design and Implementation

可以从上一个链接下载。

相关问题