轻量级目录访问协议 (LDAP)
轻量级目录访问协议 (LDAP)是一种基于 TCP/IP 的互联网协议,用于访问目录中的信息。 LDAP 协议主要用于访问活动目录。
LDAP的特点:
- LDAP 的功能模型更简单,因为它省略了重复、很少使用和深奥的特性。
- 它更容易理解和实施。
- 它使用字符串来表示数据
目录:
目录是一组具有相似属性的对象,以逻辑和分层方式组织。例如,电话目录。它是一个分布式数据库应用程序,用于管理目录中的属性。
LDAP 定义了用于访问和修改目录条目的操作,例如:
- 搜索用户指定的条件
- 添加条目
- 删除条目
- 修改条目
- 修改条目的专有名称或相对专有名称
- 比较条目
LDAP 模型:
LDAP 可以通过使用它所基于的四个模型来解释:
- 信息模型:
该模型描述了存储在 LDAP 目录中的信息结构。在此存储在目录中的基本信息称为实体。这里的条目代表现实世界中感兴趣的对象,例如人、服务器、组织等。条目包含属性的集合,其中包含有关对象的信息。每个属性都有一个类型和一个或多个值。这里的属性类型与语法相关联,语法指定可以存储什么样的值 - 命名模型:
该模型描述了如何组织和识别 LDAP 目录中的信息。在此条目中,以称为目录信息树 (DIT) 的树状结构组织。条目根据其专有名称 DN 在 DIT 中排列。 DN 是一个唯一名称,可以明确标识单个条目。 - 功能型号:
LDAP 定义了访问和修改目录条目的操作。在本文中,我们以独立于编程语言的方式讨论 LDAP 操作 LDAP 操作可以分为以下几类:• Query • Update • Authentication
- 安全模型:
该模型描述了如何保护 LDAP 目录中的信息免受未经授权的访问。它基于 BIND 操作。有几种绑定操作可以执行。
LDAP 客户端和服务器交互:
它与任何其他客户端-服务器交互非常相似。在这个客户端对服务器执行协议功能。交互发生如下:-
- 客户端向服务器发送协议请求。
- 服务器对目录执行搜索、更新、删除等操作。
- 响应被发送回客户端。
Microsoft、Open LDAP、Sun 等都可以很容易地成为 LDAP 服务器。如果用户不想安装目录服务但想对可用的 LDAP 服务器使用 LDAP 指令,那么用户可以使用four11、bigfoot 等。制作 LDAP 客户端非常简单,因为在许多编程语言中都有 SDK,例如 C、C++ , Perl, Java等
用户必须执行某些任务才能成为 LDAP 客户端:
(i) Go get SDK for your language
(ii) Use function of SDK to connect to LDAP
(iii) Operate on LDAP
LDAP 功能/操作:
- (a) 认证:
它包括绑定、解除绑定和放弃操作,用于连接和断开与 LDAP 服务器的连接、建立访问权限和保护信息。在身份验证中,使用函数建立和结束客户端会话-> BIND/UNBIND -> Abandon
- (b) 查询:
它包括用于从目录中检索信息的搜索和比较操作。在查询中,服务器使用函数执行操作-> Search -> Compare Entry
- (c) 更新:
它包括用于更新目录中存储信息的添加、删除、修改和修改 RDN 操作。在更新中,我们可以使用函数对目录进行更改-> Add an entry -> Delete an entry -> Modify an entry
- 客户端使用主机名/IP/和端口号与服务器 (BIND) 建立会话。出于安全目的,用户设置基于用户 ID 和密码的身份验证。
- 服务器执行读取、更新、搜索等操作。
- 使用 UNBIND 或 Abandon函数的客户端会话。
LDAP 的优点:
- LDAP 中的数据可供许多客户端和库使用。
- LDAP 支持多种类型的应用程序。
- LDAP 非常通用并且具有基本的安全性。
LDAP 的缺点:
它不能很好地处理关系数据库。