轻型目录访问协议

轻型目录访问协议（英語：Lightweight Directory Access Protocol，缩写：LDAP，/ˈɛldæp/）是一个开放的，中立的，工业标准的应用协议，通过IP协议提供访问控制和维护分布式信息的目录信息。 目录服务在开发内部网和与互联网程序共享用户、系统、网络、服务和应用的过程中占据了重要地位。例如，目录服务可能提供了组织有序的记录集合，通常有层级结构，例如公司电子邮件目录。同理，也可以提供包含了地址和电话号码的电话簿。 LDAP由互联网工程任务组（IETF）的文档RFC定义，使用了描述语言ASN.1定义。最新的版本是版本3，由RFC 4511所定义。例如，一个用语言描述的LDAP的搜索如：“在公司邮件目录中搜索公司位于那什维尔名字中含有“Jessy”的有邮件地址的所有人。请返回他们的全名，电子邮件，头衔和简述。” 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. 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红皮书 Network Working Group RFC 4511. IETF.org. 2006-06-01 [2014-04-04]. （原始内容存档于2021-03-03） （英语）.  Directory Services LDAP. Oracle.com. [2014-04-04]. （原始内容存档于2021-01-19） （英语）.  What is LDAP? （页面存档备份，存于互联网档案馆）. Gracion.com. Retrieved on 2013-07-17. LDAP - Lightweight Directory Access Protocol. Webopedia.com. [2014-04-05]. （原始内容存档于2020-08-12） （英语）.