LDAP在Web世界中解决了什么问题?

时间:2010-01-02 15:42:06

标签: ldap openldap

我理解LDAP是用于与OpenLDAP等活动目录系统通信的协议 我也理解OpenLDAP是一种将对象存储在树中的数据库 我的问题是:什么时候应该使用(如果有的话)LDAP而不是关系数据库。

5 个答案:

答案 0 :(得分:7)

关系数据库和基于LDAP的数据库解决了不同的问题。 LDAP主要关注快速读取,慢速写入,分层,分布式以及基于权限(如DNS)。如果您的数据与此假设不匹配,则LDAP不是正确的选择。

LDAP可以很好地描述实体的层次结构,例如公司地址簿。虽然关系数据库要求每个部门都使用所有地址访问大型全局表,但LDAP解决方案允许将每个部门的地址簿的职责分配给部门本身,同时保持可供公司中任何其他人查询。 / p>

LDAP允许您存储任何类型的信息。地址簿是最典型的示例,但是可以作为分层的,以权威为重点的数据集的所有内容都可以存储在LDAP中。另一个例子:假设图书馆是图书馆联盟的一部分,他们希望存储有关图书的数据。数据库是分层的(每个库在其边界内具有权威性),每个库独立于其他库。在架构内部,您可以存储有关书籍的数据,例如作者,出版年份,标题,isbn等。

要存储数据,您可以使用特殊文件格式LDIF表示数据,但也存在API。但是,LDIF是查看信息的最简单方法。它只是一个纯文本文件。来自维基百科的一个例子

 dn: cn=John Doe,dc=example,dc=com
 cn: John Doe
 givenName: John
 sn: Doe
 telephoneNumber: +1 888 555 6789
 telephoneNumber: +1 888 555 1232
 mail: john@example.com
 manager: cn=Barbara Doe,dc=example,dc=com
 objectClass: inetOrgPerson
 objectClass: organizationalPerson
 objectClass: person
 objectClass: top

这描述了一个名叫John Doe的人的信息。它位于dc = example,dc = com的“领域”之下,并且有一堆与之关联的其他信息(就像表行一样)。请注意,层次结构可以(显然)与互联网域相关联,就像在这种情况下一样,但实际上层次结构描述非常灵活。您可以根据自己的喜好,根据国家边界或公司部门或任何您喜欢的任何内容组织层次结构。

当您需要管理数据域

时,应使用LDAP
  1. 需要灵活的架构,降低存储要求。
  2. 减少了写入需求,强烈的阅读需求
  3. 管理和信息组织的强烈等级性
  4. 当局和权威性授权

答案 1 :(得分:2)

This concise and nice post提供了与此方案相关的非常好的信息。

如果有兴趣,你可以更深入in here,这是上述链接的延续。

答案 2 :(得分:1)

LDAP适用于经常读取且很少写入的数据。例如,LDAP通常用于存储用户登录名或密码信息。

答案 3 :(得分:0)

LDAP是一个集中的用户和帐户管理系统,它也可以存储一些数据字段。

答案 4 :(得分:0)

您还可以使用LDAP作为查找寻址机制来检索资源,例如数据库连接或远程服务。

我喜欢LDAP的好处是,您可以检索目录/ URL样式的内容。这与您必须使用专用查询语言的RDBMS完全不同。如果事情以层次结构的方式组织,这通常是有意义的并且是直观的。