轻型目录访问协议

轻型目录访问协议（，缩写：LDAP，）是一个开放的，中立的，工业标准的应用协议，通过IP协议提供访问控制和维护分布式信息的目录信息。

目录服务在开发内部网和与互联网程序共享用户、系统、网络、服务和应用的过程中占据了重要地位。例如，目录服务可能提供了组织有序的记录集合，通常有层级结构，例如公司电子邮件目录。同理，也可以提供包含了地址和电话号码的电话簿。

LDAP由互联网工程任务组（IETF）的文档RFC定义，使用了描述语言ASN.1定义。最新的版本是版本3，由RFC 4511所定义。例如，一个用语言描述的LDAP的搜索如：“在公司邮件目录中搜索公司位于那什维尔名字中含有“Jessy”的有邮件地址的所有人。请返回他们的全名，电子邮件，头衔和简述。”What is LDAP? . Gracion.com. Retrieved on 2013-07-17.

LDAP的一个常用用途是单点登录，用户可以在多个服务中使用同一个密码，通常用于公司内部网站的登录中（这样他们可以在公司电脑上登入一次，便可以自动在公司内部网上登入）。

LDAP基于X.500标准的子集。因为这个关系，LDAP有时被称为X.500-lite。

 概述 
鉴于原先的目录访问协议（Directory Access Protocol即DAP）对于简单的互联网客户端使用太复杂，IETF设计并指定LDAP做为使用X.500目录的更好的途径。LDAP在TCP/IP之上定义了一个相对简单的升级和搜索目录的协议。 

常用词"LDAP目录"可能会被误解，而实际并没有"LDAP目录"这么一个目录种类。通常可以用它来描述任何使用LDAP协议访问并能用X.500标识符标识目录中对象的目录。与ISODE提供的X.500协议的网关相比，尽管OpenLDAP及其来自密歇根大学的前身等的目录基本上设计成专门为LDAP访问而优化的，但也没有比其他用LDAP协议访问的目录额外多出来所谓“LDAP目录”。

协议的第三版由Netscape的Tim Howes，ISODE的Steve Kille和Critical Angle Inc的Mark Wahl撰写。

 协议内容 
LDAP目录的条目（entry）由属性（attribute）的一个聚集组成，并由一个唯一性的名字引用，即专有名称（distinguished name，DN）。例如，DN能取这样的值：“ou=people,dc=wikipedia,dc=org”。

          dc=org

       |dc=wikipedia
        /          \
  ou=people     ou=groups

LDAP目录与普通数据库的主要不同之处在于数据的组织方式，它是一种有层次的、树形结构。所有条目的属性的定义是对象类object class的组成部分，并组成在一起构成schema；那些在组织内代表个人的schema被命名为white pages schema。数据库内的每个条目都与若干对象类联系，而这些对象类决定了一个属性是否为可选和它保存哪些类型的信息。属性的名字一般是一个易于记忆的字符串，例如用cn为通用名（common name）命名，而"mail"代表e-mail地址。属性取值依赖于其类型，并且LDAPv3中一般非二进制值都遵从UTF-8字符串语法。例如，mail属性包含值“user@example.com”；jpegPhotos属性一般包含JPEG/JFIF格式的图片。 

LDAP目录条目可描述一个层次结构，这个结构可以反映一个政治、地理或者组织的范畴。在原始的X.500模型中，反应国家的条目位于树的顶端；接着是州或者民族组织。典型的LDAP配置使用DNS名称作为树形结构的顶端，下列是代表人、文档、组织单元、打印机和其他任何事务的条目。

LDAP影响了后续的Internet协议，包括新版本的X.500、Directory Services Markup Language (DSML)、Service Provisioning Markup Language (SPML)和Service Location Protocol.

安全问题
Windows LDAP服务的wldap32.dll中因存在整数溢出问题，导致存在远程代码执行漏洞（），该漏洞已在2024年12月修复。

 RFC 
 RFC 1777 - LDAPv2
 RFC 1778 - LDAPv2 String Representation of Standard Attribute Syntaxes
 RFC 1959 - URL Format
 RFC 1960～RFC 2254 - String Representation of LDAP Search Filters
 RFC 1823 - C API
 RFC 2247 - Use of DNS domains in distinguished names
 RFC 2251 - LDAPv3: The specification of the LDAP on-the-wire protocol
 RFC 2252 - LDAPv3: Attribute Syntax Definitions
 RFC 2253 - LDAPv3: UTF-8 String Representation of Distinguished Names
 RFC 2254 - LDAPv3: The String Representation of LDAP Search Filters
 RFC 2255 - LDAPv3: The LDAP URL Format
 RFC 2256 - LDAPv3: A Summary of the X.500 (96) User Schema for use with LDAPv3
 RFC 2829 - LDAPv3: Authentication Methods for LDAP
 RFC 2830 - LDAPv3: Extension for Transport Layer Security
 RFC 3377 - LDAPv3: Technical Specification
 RFC 2307 - Using LDAP as a Network Information Service

 产品 
LDAP从下面-{}-厂商获得广泛支持：
 Apache（通过Apache目录服务器）
 Apple（通过Open Directory）
 AT&T
 Banyan 
 HP
 IBM/Lotus
 ISODE（通过M-Vault server）
 Microsoft（通过Active Directory）
 Netscape（现在是Sun Microsystems和Red Hat的产品）
 Novell（通过eDirectory）
 OctetString（通过VDE服务器）
 Oracle（通过Oracle Internet Directory）
 Red Hat（通过Fedora目录服务器 ）
 西门子公司（通过DirX服务器） 
 Sun（通过iPlanet目录服务器）
此外还有开源/自由软件的实现——如OpenLDAP
Apache HTTP Server使用代理服务器（通过模块mod_proxy）支持LDAP。

 外部链接 
 软件
 OpenLDAP 
 Novell eDirectory 
 Sun目录服务器 
 Windows Server 2003 Active Directory 
 EDS管理工具  
 自由的Win32 LDAP客户端
 Linux LDAP HOWTO 
 LDAP文章、链接和白皮书 
 LDAP软件和工具 
 LDAP (v3) Revision (ldapbis) Working Group
 What is LDAP? 
 Nice Neat示例介绍LDAP
 Using OpenLDAP - 在Debian GNU/Linux安装OpenLDAP 
 LDAP Linux鉴权 - 将LDAP集成到PAM 
 C#LDAP库 。
 火箭科学家的LDAP 
 PerLDAP 1.4的LDAP实现 
 The importance of LDAP Tom Jackiewicz关于LDAP的说明
 了解LDAP - 设计与实现 IBM红皮书

 参考资料 


Category:网际协议
Category:互联网标准
Category:身份验证方法
Category:Open Group標準