# 课程：LDAP 用户的高级主题

> 原文： [https://docs.oracle.com/javase/tutorial/jndi/ldap/index.html](https://docs.oracle.com/javase/tutorial/jndi/ldap/index.html)

**LDAP** 跟踪中的课程提供了有关 LDAP 和 JNDI 之间映射的详细信息。它们还提供了通过 JNDI 访问 LDAP 服务的提示和技巧。

## LDAP

X.500 是目录服务的 CCITT 标准，是 OSI 服务套件的一部分。 X.500 标准定义了一个协议（以及其他），以便客户端应用程序访问称为 _ 目录访问协议 _（DAP）的 X.500 目录。它位于开放系统互连（OSI）协议栈之上。

互联网社区认识到需要类似 X.500 的服务，但面对不同的底层网络基础设施（TCP / IP 而不是 OSI），设计了一种基于 X.500 DAP 协议的新协议，称为 _Lightweight_ DAP 或 LDAP。 [RFC 2251](http://www.ietf.org/rfc/rfc2251.txt) 定义了现在称为 _ 版本 3_ 的 LDAP（或 LDAP v3），它是 [RFC 1777](http://www.ietf.org/rfc/rfc1777.txt) 中指定的其前身 LDAP v2 的改进版本。

LDAP 的目标是一个可以轻松实现的协议，特别注重能够构建小而简单的客户端。它试图实现简化的一种方法是使用大量字符串并尽可能减少结构的使用。例如，DN 在协议中表示为字符串，属性类型名称和许多属性值也是如此。

该协议包括客户端向服务器发送请求，服务器响应该请求，但不一定按照发送请求的顺序。每个请求都标有 ID，以便可以匹配请求和响应。该协议适用于 TCP 或 UDP，尽管 TCP 版本是最常用的。

由于专注于客户端，LDAP 社区还定义了 DN 的字符串表示（ [RFC 2553](http://www.ietf.org/rfc/rfc2553.txt) ），搜索过滤器（ [RFC 1960](http://www.ietf.org/rfc/rfc1960.txt) ）和属性语法（[）的标准。 RFC 1778](http://www.ietf.org/rfc/rfc1778.txt) ），用于基于 C 语言的 API（ [RFC 1823](http://www.ietf.org/rfc/rfc1823.txt) ），以及用于访问 LDAP 服务的 URL 格式（ [RFC 1959](http://www.ietf.org/rfc/rfc1959.txt) ）。

LDAP v3 支持国际化，各种身份验证机制，引用和通用部署机制。它允许将新功能添加到协议中，而无需通过使用 _ 扩展 _ 和 _ 控件 _ 来更改协议。