65

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

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

4

10 回答 10

46

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

LDAP 命令可能看起来像

(给定名称=迈克)

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

于 2009-05-08T01:43:58.040 回答
23

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

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

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

于 2009-05-08T02:06:59.780 回答
19

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

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

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

于 2009-05-08T08:40:18.727 回答
7

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

于 2009-05-08T01:53:47.237 回答
6

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

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

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

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

于 2014-10-10T12:41:01.160 回答
4

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

于 2009-05-08T02:01:46.860 回答
4

什么是 LDAP:

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

我们使用 LDAP 访问它。

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

或者

LDAP 语法

CN=Bob,OU=Users,DC=Youtube,DC=Com

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

OU = 组织单位(Active Directory 中的文件夹)

DC = 域控制器(在哪里)

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

于 2015-09-15T09:12:17.853 回答
2

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

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

LDAP 操作流程

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

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

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

功能模型
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 服务器批准的任何类型的身份验证。

于 2019-06-09T10:26:31.663 回答
1

是的,LDAP 本身通常需要较低级别的数据库存储。我建议你在这里弄脏你的手:

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

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

在这种情况下,其中之一是 SleepyCat。

玩得开心。

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

于 2015-06-16T18:03:26.383 回答
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/
于 2017-07-28T06:44:24.377 回答