Lightweight Directory Access Protocol (LDAP) là công nghệ phát triển cho việc truy cập vào thư mục thông tin nói chung. LDAP là một chuẩn mở, trung lập cung cấp một kiến trúc mở rộng cho việc lưu trữ và quản lý thông tin tập trung cần thiết cho nhiều hệ thống và dịch vụ hiện nay.
Lịch sử phát triển của LDAP bắt nguồn từ dịch vụ thư mục X.500 của ISO. Một dịch vụ thư mục là một kho chứa thông tin hay chỉ tới thông tin(như user, group, resource...) như DNS. X.500 có lẽ là một dịch vụ thư mục nổi tiếng nhất. X.500 chỉ ra một giản đồ ngầm định giải thích các lớp đối tượng và các thuộc tính liên kết của chúng. X.500 tổ chức thư mục thành một vùng lưu trữ có cấu trúc phân cấp, hỗ trợ lượng thông tin rất lớn; nó cũng định nghĩa khả năng tìm kiếm rất mạnh để lấy thông tin dễ dàng.
Các dịch vụ thư mục dựa trên X.500 có nhiều đặc tính chung, quan trọng nhất là tổ chức OU - Organizational Unit. OU được quy chiếu như là một đối tượng bao -container object trong thư mục do OU có thể có nhiều đối tượng lá hoặc các container khác, do vậy các thư mục này có mối quan hệ có thứ bậc. Một phần khác của dịch vụ thư mục là schema, là cấu trúc bên trong của thư mục. Schema định nghĩa mối quan hệ giữa các lớp đối tượng, mỗi lớp đối tượng có một tập hợp các thuộc tính. Thư mục là mô hình hướng đối tượng, các lớp được thừa kế từ các lớp khác, định hình nên kiến trúc của các lớp.
X500 định nghĩa truyền thông giữa Directory client và Directory server sử dụng giao thức truy cập thư mục là DAP. Tuy nhiên, do là một giao thức lớp ứng dụng, DAP đòi hỏi toàn bộ các lớp OSI để hoạt động, do vậy cần nhiều tài nguyên hơn, vì vậy cần thiết nghiên cứu một giao mới .
Các nhà nghiên cứu ở trường đại học Michigan đã xây dựng LDAP để làm đơn giản hoá giao thức truy cập DAP của X.500. Mặc dù sự bắt đầu của LDAP từ X.500, nhưng đã sớm phát triển một chuẩn độc lập LDAP dựa trên thư mục mà có thể được truy cập bởi bất cứ LDAP client nào. Sau đó với sự nỗ lực chuẩn hoá của IETF đã được định hướng để trở thành một chuẩn độc lập cho các thư mục LDAP.
Phiên bản đầu tiên của LDAP định nghĩa trong RFC 1487, sau đó được thay bằng RFC 1777. LDAP Version 2 định nghĩa xuất phát từ RFC-1777 và kết hợp với RFC 1778, RFC 1779, RFC 1959, RFC 1960. LDAP Version 3 được định nghĩa bởi Lightweight Directory Access Protocol (v3)(RFC 2251). Các RFC liên quan của LDAP-3 gồm có RFC 2252, RFC 2253, RFC 2254, RFC 2255 và RFC2256.
LDAP V3 mở rộng LDAP V2 ở những điểm sau:
+ Tham chiếu: Một server không lưu dữ liệu có thể tham chiếu client tới server khác.
+ Bảo mật: Mở rộng xác thực bằng cách sử dụng cơ chế SASL-Simple Authentication and Security Layer.
+ Hỗ trợ đa ngôn ngữ.
+ Các kiểu đối tượng và hoạt động có thể được định nghĩa động và đưa giản đồ theo chuẩn truyền thống.
* LDAP là giao thức hay thư mục ?
LDAP là một giao thức truyền thông định nghĩa kiểu định dạng của các messages và phương thức truyền tải giữa một máy khách truy cập vào dữ liệu trong một dịch vụ thư mục kiểu X.500 (CSDL hướng đối tượng). LDAP không tự định nghĩa bản thân dịch vụ thư mục.
Dịch vụ thư mục LDAP là gì ? Một trình ứng dụng khởi tạo một LDAP message, do X.500 directory server không hiểu các LDAP message đó vì thực tế LDAP client và X.500 server sử dụng các giao thức truyền thông khác nhau (TCP/IP và OSI), thực tế LDAP client giao tiếp với tiến trình gateway (còn gọi là proxy hay frontend) và chuyển tiếp các yêu cầu đó tới X.500 Directory server, gateway này được hiểu là LDAP server, nó là máy khách của X.500 server và phục vụ các yêu cầu từ LDAP Client. LDAP server phải giao tiếp với cả mô hình TCP/IP và OSI.
Việc sử dụng LDAP phát triển nhanh chóng và xuất hiện các LDAP Server lưu trữ và truy nhập vào thư mục của chính nó thay vì hoạt động chỉ như gateway tới X.500 servers. Các máy chủ LDAP này thường được gọi là stand-alone LDAP server do chúng không phụ thuộc vào một máy chủ X.500 directory. LDAP không hỗ trợ toàn bộ các khả năng của X.500, một stand-alone
LDAP server chỉ cần hỗ trợ các khả năng cần thiết cho LDAP.
Từ phía người dùng, bất kỳ server nào có LDAP protocol đều là LDAP directory server, không kể server đó thực sự là dịch vụ thư mục hay là một gateway tới X.500 server. Dịch vụ thư mục được truy cập tới gọi là LDAP directory, directory có thể là stand-alone LDAP server hay X.500 server.
* Sự khác nhau giữa Directory và Database
Directory có thể được hiểu là Database, nhưng nó là một CSDL đặc biệt có các đặc điểm khác với CSDL quan hệ nói chung như:
+ Truy cập Directory(đọc, tìm kiếm) thường được tối ưu hoá nên nhanh hơn việc cập nhật. + Directory có thể không hỗ trợ giao dịch (transactions) như Database.
+ Kiểu dữ liệu chứa trong Directory thường không đòi hỏi tính toàn vẹn thật chặt chẽ. + Directories có thể bị giới hạn ở kiểu dữ liệu.
+ LDAP Directory sử dụng giao thức truy cập đơn giản và đã được tối ưu hoá so với truy cập qua SQL với nhưng Database nói chung.