📜  轻量级目录访问协议 (LDAP)

📅  最后修改于: 2022-05-13 01:57:02.220000             🧑  作者: Mango

轻量级目录访问协议 (LDAP)

轻量级目录访问协议 (LDAP)是一种基于 TCP/IP 的互联网协议,用于访问目录中的信息。 LDAP 协议主要用于访问活动目录。

LDAP的特点:

  1. LDAP 的功能模型更简单,因为它省略了重复、很少使用和深奥的特性。
  2. 它更容易理解和实施。
  3. 它使用字符串来表示数据

目录:
目录是一组具有相似属性的对象,以逻辑和分层方式组织。例如,电话目录。它是一个分布式数据库应用程序,用于管理目录中的属性。

LDAP 定义了用于访问和修改目录条目的操作,例如:

  • 搜索用户指定的条件
  • 添加条目
  • 删除条目
  • 修改条目
  • 修改条目的专有名称或相对专有名称
  • 比较条目

LDAP 模型:
LDAP 可以通过使用它所基于的四个模型来解释:

  1. 信息模型:
    该模型描述了存储在 LDAP 目录中的信息结构。在此存储在目录中的基本信息称为实体。这里的条目代表现实世界中感兴趣的对象,例如人、服务器、组织等。条目包含属性的集合,其中包含有关对象的信息。每个属性都有一个类型和一个或多个值。这里的属性类型与语法相关联,语法指定可以存储什么样的值
  2. 命名模型:
    该模型描述了如何组织和识别 LDAP 目录中的信息。在此条目中,以称为目录信息树 (DIT) 的树状结构组织。条目根据其专有名称 DN 在 DIT 中排列。 DN 是一个唯一名称,可以明确标识单个条目。
  3. 功能型号:
    LDAP 定义了访问和修改目录条目的操作。在本文中,我们以独立于编程语言的方式讨论 LDAP 操作 LDAP 操作可以分为以下几类:
    • Query
    • Update 
    • Authentication 
  4. 安全模型:
    该模型描述了如何保护 LDAP 目录中的信息免受未经授权的访问。它基于 BIND 操作。有几种绑定操作可以执行。

LDAP 客户端和服务器交互:
它与任何其他客户端-服务器交互非常相似。在这个客户端对服务器执行协议功能。交互发生如下:-

  1. 客户端向服务器发送协议请求。
  2. 服务器对目录执行搜索、更新、删除等操作。
  3. 响应被发送回客户端。

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 的缺点:
它不能很好地处理关系数据库。