輕型目錄存取協定
互聯網協定套組 |
---|
應用層 |
傳輸層 |
網絡層 |
連結層 |
輕型目錄存取協定(英語:Lightweight Directory Access Protocol,縮寫:LDAP,/ˈɛldæp/)是一個開放的,中立的,工業標準的應用協定,通過IP協定提供訪問控制和維護分散式資訊的目錄資訊。[1]
目錄服務在開發內聯網和與互聯網程式共用用戶、系統、網絡、服務和應用的過程中佔據了重要地位。[2]例如,目錄服務可能提供了組織有序的記錄集合,通常有層級結構,例如公司電子郵件目錄。同理,也可以提供包含了地址和電話號碼的電話簿。
LDAP由互聯網工程任務組(IETF)的文件RFC定義,使用了描述語言ASN.1定義。最新的版本是版本3,由RFC 4511所定義。例如,一個用語言描述的LDAP的搜尋如:「在公司郵件目錄中搜尋公司位於那什維爾名字中含有「Jessy」的有郵件地址的所有人。請返回他們的全名,電子郵件,頭銜和簡述。」[3]
LDAP的一個常用用途是單一登入,用戶可以在多個服務中使用同一個密碼,通常用於公司內聯網站的登入中(這樣他們可以在公司電腦上登入一次,便可以自動在公司內聯網上登入)。[3]
LDAP基於X.500標準的子集。因為這個關係,LDAP有時被稱為X.500-lite。[4]
概述
[編輯]鑑於原先的目錄訪問協定(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
[編輯]- 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。
外部連結
[編輯]- 軟件
- 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) (英語).
- ^ 3.0 3.1 What is LDAP? (頁面存檔備份,存於互聯網檔案館). Gracion.com. Retrieved on 2013-07-17.
- ^ LDAP - Lightweight Directory Access Protocol. Webopedia.com. [2014-04-05]. (原始內容存檔於2020-08-12) (英語).