

LDAP là giao thức phổ biến giúp doanh nghiệp tìm kiếm, truy cập và quản lý thông tin người dùng, thiết bị cùng các tài nguyên trong dịch vụ thư mục. Vậy LDAP là gì, hoạt động như thế nào và có gì khác với Active Directory? Hãy cùng tìm hiểu trong bài viết dưới đây.
LDAP (Lightweight Directory Access Protocol) là giao thức mạng được sử dụng để tìm kiếm, truy cập và quản lý dữ liệu của các đối tượng (như tổ chức, cá nhân, thiết bị). LDAP đảm nhiệm hai vai trò cốt lõi: lưu trữ dữ liệu có cấu trúc trong thư mục LDAP và xác thực người dùng trước khi cấp quyền truy cập.
LDAP cũng cung cấp cơ chế giao tiếp để các ứng dụng gửi, nhận và truy vấn thông tin từ dịch vụ thư mục. Trong đó, dịch vụ thư mục đóng vai trò xác định vị trí lưu trữ dữ liệu về người dùng, tổ chức, thiết bị và các tài nguyên khác trong hệ thống mạng.
LDAP được phát triển dựa trên mô hình dữ liệu và dịch vụ thư mục của X.500, nhưng được thiết kế để đơn giản hóa việc truy cập, giảm yêu cầu tài nguyên và hoạt động hiệu quả trên nền tảng TCP/IP. LDAPv2 được mô tả trong RFC 1777, còn đặc tả LDAPv3 hiện được quy định chủ yếu trong bộ RFC 4510–4519. Trên z/OS, máy chủ LDAP của IBM hỗ trợ cả giao thức LDAPv2 và LDAPv3.

LDAP có thể được sử dụng để quản lý người dùng, thiết bị và quyền truy cập trong doanh nghiệp, chẳng hạn:
LDAP và Active Directory thường được sử dụng cùng nhau nhưng không phải là một khái niệm. LDAP là giao thức dùng để truy cập và truy vấn dữ liệu trong dịch vụ thư mục, còn Active Directory là dịch vụ thư mục của Microsoft, chịu trách nhiệm lưu trữ và quản lý thông tin về người dùng, máy tính, nhóm cùng các tài nguyên trong mạng.
LDAP có khả năng tìm kiếm đối tượng chỉ từ một lượng thông tin hạn chế, vì vậy không cần truy xuất toàn bộ thuộc tính được lưu trữ trong Active Directory. Điều này giúp quá trình tìm kiếm và trao đổi dữ liệu trở nên nhanh chóng, thuận tiện hơn.
Có thể hình dung Active Directory giống như một thư viện lớn chứa rất nhiều sách và thông tin chi tiết. LDAP đóng vai trò như một thủ thư giàu kinh nghiệm, tiếp nhận yêu cầu, tìm đúng tài liệu trong thư viện và trả về những thông tin mà người dùng cần.
Tiêu chí | LDAP | Active Directory |
| Bản chất | Giao thức truy cập dịch vụ thư mục | Dịch vụ thư mục do Microsoft phát triển |
| Tên đầy đủ | Lightweight Directory Access Protocol | Active Directory |
| Chức năng chính | Tìm kiếm, truy vấn và trao đổi dữ liệu thư mục | Lưu trữ, quản lý và xác thực người dùng, máy tính, nhóm |
| Phạm vi sử dụng | Hoạt động với nhiều dịch vụ thư mục khác nhau | Chủ yếu được triển khai trong môi trường Microsoft |
| Dữ liệu | Truy xuất các thuộc tính cần thiết của đối tượng | Lưu trữ nhiều thuộc tính chi tiết về từng đối tượng |
| Đối tượng quản lý | Miền, người dùng, nhóm và các bản ghi thư mục | Người dùng, máy tính, nhóm, chính sách và tài nguyên mạng |
| Vai trò xác thực | Hỗ trợ ứng dụng gửi yêu cầu xác thực đến dịch vụ thư mục | Trực tiếp kiểm tra và xác thực người dùng hoặc máy tính |
| Giao thức mạng | Hoạt động trên TCP/IP | Hỗ trợ LDAP cùng nhiều giao thức và cơ chế khác |
Điều gì kích hoạt một truy vấn LDAP và quy trình này hoạt động như thế nào?
Quy trình xác thực LDAP hoạt động theo mô hình client-server và gồm các thành phần chính sau:
Quy trình bắt đầu khi người dùng cố gắng truy cập một chương trình client hỗ trợ LDAP trên máy tính, chẳng hạn như ứng dụng email doanh nghiệp. Với LDAPv3, người dùng thường được xác thực theo một trong hai phương thức: xác thực đơn giản, chẳng hạn đăng nhập một lần (SSO) bằng thông tin tài khoản, hoặc xác thực SASL, trong đó LDAP Server được liên kết với một chương trình như Kerberos.
Khi người dùng đăng nhập, hệ thống gửi yêu cầu xác thực DN được gán cho tài khoản đó. DN được chuyển qua API của client hoặc dịch vụ khởi chạy DSA.
Client sau đó tự động thiết lập kết nối Bind với DSA. LDAP sử dụng DN để tìm kiếm đối tượng hoặc nhóm đối tượng tương ứng trong các bản ghi của cơ sở dữ liệu LDAP.

Các RDN trong DN đóng vai trò rất quan trọng ở giai đoạn này vì chúng xác định từng bước trong quá trình LDAP di chuyển qua cây DIT để tìm đúng đối tượng. Nếu đường dẫn phía hệ thống thiếu một RDN liên kết, kết quả tìm kiếm có thể bị xác định là không hợp lệ.
Trong trường hợp này, đối tượng mà LDAP tìm kiếm là tài khoản của người dùng, ví dụ cn=Susan. LDAP chỉ có thể xác thực người dùng nếu tài khoản trong thư mục có uid và userPassword trùng khớp. Các nhóm người dùng cũng được xác định là những đối tượng trong thư mục LDAP.
Sau khi nhận được kết quả xác thực hợp lệ hoặc không hợp lệ, client sẽ ngắt kết nối khỏi LDAP Server. Người dùng được xác thực thành công có thể truy cập API cùng các dịch vụ liên quan, bao gồm tệp tin cần thiết, thông tin người dùng và dữ liệu ứng dụng khác, dựa trên quyền do quản trị viên hệ thống cấp.
LDAP sử dụng cấu trúc cây thông tin thư mục (Directory Information Tree – DIT) để tổ chức và tìm kiếm dữ liệu. Nhờ cấu trúc phân cấp này, LDAP có thể nhanh chóng xác định vị trí của người dùng, nhóm hoặc tài nguyên trong hệ thống thư mục.
Hiểu rõ các thành phần trong DIT giúp quản trị viên dễ dàng điều hướng LDAP Server, xây dựng truy vấn và quản lý dữ liệu hiệu quả hơn.
DIT là cấu trúc dạng cây dùng để tổ chức các bản ghi trong thư mục LDAP. Mỗi bản ghi được gọi là một entry và được sắp xếp theo từng cấp từ tổng quát đến chi tiết.
Một cây thư mục LDAP có thể bắt đầu từ tên miền hoặc tổ chức, sau đó phân nhánh thành các đơn vị tổ chức, nhóm và tài khoản người dùng.
Ví dụ:
o=Company
├── ou=groups
│ └── cn=developers
└── ou=users
└── cn=SusanDomain Component, viết tắt là dc, được sử dụng để biểu diễn từng thành phần trong tên miền của tổ chức.
Ví dụ, tên miền example.com có thể được biểu diễn trong LDAP như sau:
dc=example,dc=comCác thành phần dc thường nằm ở cấp cao trong cây thư mục, giúp xác định phạm vi tên miền mà LDAP đang quản lý.
Organization Name, viết tắt là o, đại diện cho tên của một tổ chức trong thư mục LDAP.
Ví dụ:
o=CompanyTrong một số cấu trúc thư mục, o có thể đóng vai trò là điểm bắt đầu để LDAP tìm kiếm các đơn vị tổ chức, người dùng hoặc nhóm trực thuộc doanh nghiệp.
Organizational Unit, viết tắt là ou, được sử dụng để phân chia dữ liệu theo phòng ban, bộ phận hoặc nhóm chức năng.
Các giá trị phổ biến gồm:
ou=users
ou=groups
ou=developersMỗi ou có thể chứa nhiều tài khoản người dùng, nhóm hoặc các đơn vị tổ chức nhỏ hơn. Cách phân chia này giúp doanh nghiệp quản lý dữ liệu rõ ràng và dễ tìm kiếm hơn.
Common Name, viết tắt là cn, dùng để xác định tên của một đối tượng cụ thể trong thư mục LDAP, chẳng hạn người dùng hoặc nhóm.
Ví dụ:
cn=Susan
cn=developersTrong đó, cn=Susan có thể đại diện cho tài khoản của người dùng Susan, còn cn=developers đại diện cho một nhóm lập trình viên.
Distinguished Name là tên đầy đủ dùng để xác định duy nhất vị trí của một entry trong cây DIT.
Ví dụ:
cn=Susan,ou=users,o=CompanyDN hoạt động giống như một đường dẫn, giúp LDAP biết chính xác tài khoản Susan nằm trong đơn vị users của tổ chức Company.
Mỗi thành phần trong DN được gọi là Relative Distinguished Name (RDN). Trong ví dụ trên, cn=Susan, ou=users và o=Company đều là các RDN.
Mỗi entry trong LDAP chứa nhiều thuộc tính và giá trị mô tả đối tượng. Các thuộc tính này tương tự các trường thông tin trong danh bạ, chẳng hạn tên, số điện thoại, địa chỉ hoặc email.
Ví dụ, một tài khoản người dùng có thể chứa:
cn: Susan
uid: susan
mail: susan@example.com
userPassword: ********Trong đó, cn, uid, mail và userPassword là các thuộc tính. Susan, susan và địa chỉ email là những giá trị tương ứng.
LDAP Schema quy định loại dữ liệu, thuộc tính và cấu trúc mà một entry có thể sử dụng. Trong đó, ObjectClass xác định một entry đại diện cho loại đối tượng nào.
Một số ObjectClass thường gặp gồm:
Nhờ schema và ObjectClass, LDAP có thể bảo đảm dữ liệu được lưu trữ theo cấu trúc thống nhất và đúng định dạng.
Trong một nhóm như cn=developers, LDAP có thể sử dụng thuộc tính uniqueMember để tham chiếu đến DN của từng thành viên.
Ví dụ:
uniqueMember=cn=Susan,ou=users,o=CompanyGiá trị này cho biết tài khoản Susan thuộc nhóm developers và xác định chính xác vị trí của tài khoản trong cây thư mục.
Trong doanh nghiệp, quản trị viên thường phải quản lý số lượng lớn tài khoản người dùng, nhóm và quyền truy cập. LDAP giúp tập trung dữ liệu danh tính trong một hệ thống thư mục thống nhất, từ đó đơn giản hóa việc xác thực và quản lý người dùng.
Một số lợi ích nổi bật của LDAP gồm:

Trước khi triển khai LDAP, doanh nghiệp cần cân nhắc:
LDAP thường được sử dụng cùng Microsoft Active Directory, OpenLDAP và Red Hat Directory Server. Giao thức này cũng có thể hỗ trợ xác thực và quản lý quyền truy cập trong hệ thống API, Docker, Kubernetes và mô hình kiểm soát truy cập dựa trên vai trò (Role-Based Access Control – RBAC).
Hy vọng bài viết đã giúp bạn hiểu rõ LDAP là gì, cách giao thức này xác thực người dùng và tổ chức dữ liệu trong dịch vụ thư mục. Việc nắm vững cấu trúc và cơ chế hoạt động của LDAP sẽ giúp doanh nghiệp triển khai hệ thống quản lý danh tính, tài khoản và quyền truy cập hiệu quả hơn.
