有人可以解释LDAP吗?

时间:2009-05-08 01:39:36

标签: database ldap protocols

我经常听到“我们可以使用LDAP加载员工信息吗?”然而,标题“轻量级目录访问协议”让我认为它是一个协议,而不是像Oracle或MSSQL这样的物理数据库管理系统。

那么有人可以向我解释一下LDAP是什么,它是如何使用的,以及它是如何工作的? LDAP只是用于从各种DBMS中提取数据的标准协议吗?在体系结构图中,LDAP只是在数据库和应用程序服务器之间绘制的箭头吗?

10 个答案:

答案 0 :(得分:35)

LDAP是用于查询用户目录的协议。例如,Active Directory或Novell eDirectory都支持LDAP。它在某种程度上也是执行此类查询的语法,例如SQL是查询数据库的查询语言。

LDAP命令可能看起来像

(给定名称=麦克)

它将返回目录中的所有Mikes。

答案 1 :(得分:21)

LDAP通常用作身份验证数据库。假设您拥有作为软件即服务销售的CMS产品。因此,用户获得CMS并维护它等。

因此,您将它安装到examplecustomer1.com,examplecustomer2.org,examplecustomer3.net(每个域一个软件)。现在您需要维护三个用户数据库。因此,您也可以将自己添加到所有系统中作为管理员和客户帐户。

然后你发现了LDAP。您可以向产品添加LDAP支持,现在您拥有一个用户中央数据库。您可以使用自己的ONE用户名和密码以管理员身份登录所有系统。 CMS系统仍包含每个用户的用户数据库和权限,但用户名现在用作LDAP数据库的参考,密码字段将从CMS数据库架构中删除。

答案 2 :(得分:14)

是的,LDAP(轻量级目录访问协议)是一种在TCP / IP上运行的协议。

它用于访问目录服务,如Microsoft的Active Directory或Sun ONE Directory Server。

目录服务是一种数据库或数据存储,但不一定是关系数据库。该结构通常更简单,存储名称 - 值对的分层集合,例如, lastName = Smith,firstName = John。

答案 3 :(得分:6)

LDAP是一种协议,但我认识的许多人都喜欢将其含义重载为“任何能够响应LDAP查询的商店”。 Active Directory就是这样一个商店,还有很多其他商店。当建筑师不关心商店是什么时使用它。当您不关心它是MySql还是Oracle或SQL Server时,它的使用方式就像您说“将它存储在SQL中”一样。

答案 4 :(得分:5)

LDAP代表轻量级目录访问协议。这是一个可扩展的开放式网络协议标准 提供对分布式目录服务的访问。 LDAP是运行的目录服务的Internet标准 TCP / IP。在OpenLDAP和相关服务器下,有两个服务器 - slapd,LDAP守护进程所在的位置 查询被发送到和slurpd,复制守护进程将来自一个服务器的数据推送到一个或多个从属服务器。通过让多个服务器托管相同的数据,您可以提高可靠性,可扩展性和 可用性。

它定义了可以执行的操作,如搜索,添加,删除,修改,更改名称 它定义了如何传达操作和数据。

LDAP有可能整合所有现有的应用程序特定信息,如用户,公司电话 和电子邮件列表。这意味着在LDAP服务器上进行的更改将对每个目录服务生效 基于应用程序使用此用户信息。有关新用户的各种信息都可以 通过单一界面添加,可用于Unix帐户,NT帐户,电子邮件服务器,Web 服务器,作业特定的新闻组等。当用户离开他的帐户时,可以禁用所有服务 单一操作。

因此,LDAP最有用的是提供“白页”(例如姓名,电话号码,角色等)和“黄页”​​(例如 打印机,应用服务器等的位置,如服务。通常在J2EE应用程序环境中 用于验证和授权用户。

答案 5 :(得分:4)

LDAP是为响应X.500协议系列的复杂性而创建的协议。它旨在表示分层目录结构。 X.500标准最初旨在用于完整的OSI层堆栈,旨在满足电信行业的要求。 LDAP旨在使用TCP / IP提供类似的功能,而无需额外的开销。您可以在维基百科上找到有关X.500,OSI和LDAP的信息。 X.500和OSI也包含在大多数数据通信教科书中。

答案 6 :(得分:3)

什么是LDAP:

所有LDAP都是Microsoft为Active Directory目录服务实现的通信协议,用于其他NTDS.DIT​​文件。让我们解决困惑。 NTDS.DIT​​包含Active Directory数据库。要访问数据库,您需要通信协议LDAP。而已。所以NTDS.DIT​​再次是一个简单的数据库,即ADDS数据库(Active Director目录服务)我们如何访问它?

我们使用LDAP访问它。

让我们使用LDAP快速示例 C:/users/data.doc

  

LDAP语法

     

CN =鲍勃,OU =用户,DC =的Youtube,DC = com的

     

CN =规范名称(对象或名称)

     

OU =组织单位(活动目录中的文件夹)

     

DC =域控制器(它在哪里)

其他信息:Active Directory是基于X.500 Standard的数据库,它包含所有AD对象,即NTDS.DIT​​文件。

答案 7 :(得分:1)

LDAP基本上是一个访问目录的协议。这里的目录基本上是指具有组织中存在的用户的信息的目录。目录的示例包括Microsoft的Active Directory(AD)和Oracle的Internet Directory(OID)。该目录主要用于通过集中用户身份验证和授权来实现组织的单点登录功能。有关更多详细信息,请参阅以下链接:

  1. http://searchmobilecomputing.techtarget.com/definition/LDAP
  2. https://eagledatagistics.com/what-is-enterprise-user-security-eus/

答案 8 :(得分:0)

是的,LDAP本身通常需要较低级别的DB存储。 我建议你把手放在这里:

如果您只是安装OpenLDAP& 玩它... http://www.openldap.org/doc/admin22/install.html

...你将被迫考虑依赖关系。

其中一个是SleepyCat。

玩得开心。

为了更多的乐趣,这里是关于分类学的一个很好的哲学讨论: http://archive.oreilly.com/pub/post/ldap_is_not_a_database.html

答案 9 :(得分:0)

LDAP是一种Internet协议,用于从服务器查找数据,该协议用于存储和检索分层目录结构中的信息。 LDAP还遵循数据模型,该数据模型是分层类型的。简单来说,我们可以说它是一个分层数据库,其中数据以树状结构存储,叶节点保存实际数据。

LDAP从未定义程序如何在客户端或服务器上起作用,但是它解释了有关将用于客户端和服务器之间通信的消息类型的更多信息。消息可以是客户端请求的信息,服务器响应和数据格式。这些消息通过TCP / IP协议传递。因此,应该存在一些操作,该操作将在客户端和服务器之间的操作完成之后建立会话连接并断开连接。在需要大量读取操作而较少写入操作的情况下,可以使用LDAP。例如,我们知道用户身份验证的用户名和密码更改不是那么频繁。

LDAP操作流程

要开始通信,客户端需要与服务器创建会话。此过程称为绑定。要绑定到服务器,客户端必须指定服务器所在的IP地址或主机名以及TCP / IP端口号。客户端还可以提供用户名和密码之类的凭据,以确保与服务器进行正确的身份验证。或者,客户端也可以使用默认访问权限创建匿名会话。或者,双方都可以建立一个会话,该会话使用更强的安全性流程(例如数据加密)。 一旦建立会话,客户端便会对目录数据执行其预期的操作。在LDAP中,目录信息可以提供读取和更新功能,因此可以对其进行管理和查询。 客户端完成请求后将关闭会话。此过程称为解除绑定。 LDAP模式 LDAP主要依赖像这样的数据模型

信息模型     目录包括信息的基本单位,它被称为条目,它代表诸如服务器,人员等的真实对象。条目包括定义有关对象信息的属性的集合。每个属性都包括与语法关联的Type,以及一个或多个值。下图说明了条目及其属性以及它们的类型和值之间的关系:

命名模型     LDAP的命名模型表示如何识别和组织条目。在LDAP中,条目以称为DIT(目录信息树)的分层或树状结构进行组织。条目根据其DN(可分辨名称)在DIT中排序,该名称是唯一标识单个条目的唯一名称。

功能模型
     LDAP定义了客户端请求的操作,可以分为三类。他们是:

   1.  Query which is used to fetch information from a directory. Include operations like search and                   compare.

   2. Update which is used to update the information stored in the directory. Include operations like                add, modify and delete.

   3. Authentication which is  used to connect and disconnect with a server, create access rights and                preserve information. Include operations like bind, unbind and abandon.

安全模型

In LDAP, the security model relies on the bind operation. Three different bind operations are                possible according to the security mechanisms applied. They are:
  1. 无身份验证

    最简单的方法,但只能在数据安全性不成问题且没有访问控制权限的情况下应用。例如,目录包含任何人都可以浏览的通讯簿。如果用户在绑定API调用期间将DN和密码字段保留为空,则服务器将自动采用匿名用户会话,并授予访问权限以及为该访问类型所述的相应访问控制。

  2. 基本身份验证

    基本身份验证是LDAP中使用的另一种简单安全机制,它已在其他一些面向Web的协议(例如HTTP)中使用。在这种方法中,客户端必须通过输入以明文形式通过网络传输的密码和DN的方式,向LDAP服务器进行身份验证。另一方面,服务器将DN和密码与目录中的条目进行比较。如果密码匹配,则授予访问权限。此外,明文密码不能保证机密性;因此,可能导致向未授权方泄露密码。

  3. SASL(简单身份验证和安全层)

    此框架已添加到LDAP V3中,该框架为面向连接的协议添加了其他身份验证方法。此机制指定了质询和响应协议,在该协议中,客户端和服务器交换一些数据以确保身份验证并建立将在其上进行后续通信的安全层。使用SASL,LDAP协议可以支持LDAP客户端和LDAP服务器批准的任何身份验证。