LDAP là gì ? LDAP là viết tắt của Lightweight Directory Access Protocol – đây là một giao thức client-server để truy cập các dịch vụ thư mục, cụ thể hơn về LDAP sẽ được làm rõ trong biết sau đây.
1.1. LDAP là gì ?
LDAP là viết tắt của Lightweight Directory Access Protocol. Đây là một giao thức client-server để truy cập các dịch vụ thư mục, cụ thể là các dịch vụ thư mục dựa trên X.500. LDAP chạy trên TCP/IP hoặc các dịch vụ hướng kết nối khác.
Một thư mục tương tự như một cơ sở dữ liệu, nhưng có xu hướng chứa nhiều thông tin dựa trên mô tả, thuộc tính. Thông tin trong một thư mục thường được đọc thường xuyên hơn được viết. Các thư mục được điều chỉnh để phục vụ cho các hoạt động tìm kiếm nhanh hoặc tìm kiếm lượng thông tin lớn. Chúng có khả năng tái tạo thông tin để tăng tính khả dụng và độ tin cậy, đồng thời giảm thời gian phản hồi. Khi thông tin thư mục được sao chép, sự không nhất quán tạm thời giữa các bản sao có thể chấp nhận được, miễn là cuối cùng chúng được đồng bộ hóa với nhau.
Có nhiều cách khác nhau để cung cấp một dịch vụ thư mục. Các phương pháp khác nhau cho phép các loại thông tin khác nhau được lưu trữ trong thư mục, đặt các yêu cầu khác nhau về tham chiếu, truy vấn và cập nhật, cách bảo vệ khỏi truy cập trái phép,… Một số dịch vụ thư mục có tính cục bộ, nên chỉ cung cấp cho một số trường hợp nhất định (ví dụ: dịch vụ finger trên một máy duy nhất). Các dịch vụ có tính toàn cầu thì phạm vi cung cấp dịch vụ rộng lớn hơn nhiều.
1.2. LDAP hoạt động như thế nào?
LDAP hoạt động theo mô hình client-server. Một hoặc nhiều LDAP server chứa thông tin về cây thư mục (Directory Information Tree – DIT). Client kết nối đến server và gửi yêu cầu. Server phản hồi bằng thông tin trên chính nó hoặc trỏ tới LDAP server khác để client lấy thông tin.
Trình tự khi có kết nối với LDAP:
Connect (kết nối với LDAP): client mở kết nối tới LDAP server
Bind (kiểu kết nối: nặc danh hoặc đăng nhập xác thực): client gửi thông tin xác thực
Search (tìm kiếm): client gửi yêu cầu tìm kiếm
Interpret search (xử lý tìm kiếm): server thực hiện xử lý tìm kiếm
Result (kết quả): server trả lại kết quả cho client
Unbind: client gửi yêu cầu đóng kết nối tới server
Close connection (đóng kết nối): đóng kết nối từ server
1.3. Các backend, object và thuộc tính của LDAP
LDAP server daemon được gọi là Slapd. Slapd hỗ trợ nhiều cơ sở dữ liệu backend khác nhau mà bạn có thể sử dụng.
Chúng bao gồm BDB (transactional database backend với hiệu suất cao); LDBM (lightweight DBM); SHELL (backend interface cho các tập lệnh shell và PASSWD, backend interface đơn giản cho tệp passwd).
BDB sử dụng tối ưu với Sleepycat Berkeley DB 4, còn LDBM sử dụng tối ưu với Berkeley DB hoặc GDBM.
BDB phù hợp cho truy cập cơ sở dữ liệu đọc/ghi đa người dùng, kết hợp các hoạt động đọc và ghi. BDB được sử dụng trong các ứng dụng có yêu cầu:
Giao dịch, bao gồm việc thực hiện nhiều thay đổi đối với cơ sở dữ liệu và khôi phục các thay đổi không được cam kết khi cần thiết.
Khả năng phục hồi sau sự cố hệ thống và lỗi phần cứng mà không mất bất kỳ giao dịch đã cam kết nào.
Trong tài liệu này, giả sử rằng bạn chọn cơ sở dữ liệu BDB.
Để nhập và xuất thông tin thư mục giữa các máy chủ thư mục dựa trên LDAP hoặc để mô tả một tập hợp các thay đổi sẽ được áp dụng cho một thư mục, định dạng tệp được gọi là LDIF (viết tắt của LDAP Data Interchange Format) sẽ được sử dụng. Tệp LDIF lưu trữ thông tin theo hướng phân cấp đối tượng của các mục nhập. Gói phần mềm LDAP đi kèm với một tiện ích để chuyển đổi các tệp LDIF sang định dạng BDB
Một tệp LDIF phổ biến trông như thế này:
dn: o=TUDelft, c=NL o: TUDelft objectclass: organization dn: cn=Luiz Malere, o=TUDelft, c=NL cn: Luiz Malere sn: Malere mail: malere@yahoo.com objectclass: person |
Như bạn có thể thấy mỗi entry được xác định duy nhất bởi một tên phân biệt hoặc DN. DN bao gồm tên của entry cộng với đường dẫn tên cho phép truy ngược lại entry ở đầu phân cấp thư mục (giống như một cái cây).
Trong LDAP, một object class xác định tập hợp các thuộc tính có thể được sử dụng để xác định entry. Tiêu chuẩn LDAP cung cấp các loại object class cơ bản sau đây:
– Các nhóm trong thư mục
– Các Locations chẳng hạn như tên quốc gia và mô tả
– Các organizations trong thư mục
– People trong thư mục
Một entry có thể thuộc về nhiều hơn một object class. Ví dụ, entry cho một người được xác định bởi person object class, nhưng cũng có thể được xác định bởi các thuộc tính trong inetOrgPerson, groupOfNames và các organization object class. Cấu trúc object class của máy chủ (còn gọi là lược đồ) xác định tổng danh sách các thuộc tính bắt buộc và được phép cho một entry cụ thể.
Dữ liệu thư mục được biểu diễn dưới dạng cặp giá trị thuộc tính. Bất kỳ thông tin cụ thể nào cũng đều được liên kết với một thuộc tính mô tả.
Chẳng hạn, thuộc tính commonName hoặc cn, được sử dụng để lưu trữ tên người. Một người có tên Jonas Salk có thể được đại diện trong thư mục như
cn: Jonas Salk |
Mỗi người được nhập trong thư mục được xác định bởi tập hợp các thuộc tính trong person object class. Các thuộc tính khác được sử dụng để xác định mục này có thể bao gồm:
givenname: Jonas surname: Salk mail: jonass@airius.com |
Các thuộc tính bắt buộc bao gồm các thuộc tính phải có trong các mục sử dụng object class. Tất cả các mục đều yêu cầu có thuộc tính objectClass, liệt kê các object class mà entry thuộc về.
Các thuộc tính được phép bao gồm các thuộc tính có thể có trong các entry sử dụng object class. Ví dụ, trong person object class, các thuộc tính cn và sn sẽ được yêu cầu. Các thuộc tính mô tả, phoneNumber, seeAlso và userpassword được cho phép nhưng không bắt buộc.
Mỗi thuộc tính có một định nghĩa cú pháp tương ứng. Ví dụ, định nghĩa cú pháp mô tả loại thông tin được cung cấp bởi thuộc tính:
– bin: binary
– ces: trường hợp chuỗi chính xác
– cis: trường hợp bỏ qua chuỗi
– tel: chuỗi số điện thoại
– dn: tên phân biệt
Lưu ý: Thông thường các định nghĩa thuộc tính và object class nằm tại các schema file
Lưu trữ thông tin của LDAP
LDIF (LDAP Data Interchange Format) là một chuẩn định dang file text lưu trữ thông tin cấu hình LDAP và nội dung thư mục. File LDIF thường dùng để import dữ liệu mới vào trong directory hoặc thay đổi dữ liệu đã có. Dữ liệu trong file LDIF phải tuân theo quy luật có trong schema của LDAP.
Schema là loại dữ liệu được định nghĩa từ trước. Mọi thành phần được thêm vào hoặc thay đổi trong directory của bạn sẽ được kiểm tra lại trong schema để đảm bảo chính xác.
>> Có thể bạn quan tâm: Network là gì? Lợi ích và các loại network
NQ Computing là hệ sinh thái điện toán đám mây được vận hành bởi VCCorp – Công ty dẫn đầu trong lĩnh vực truyền thông và internet tại Việt Nam. Với đội ngũ kỹ thuật viên trình độ cao và kinh nghiệm lâu năm làm việc trên các công nghệ khác nhau như cloud, mobile, web…, chúng tôi có đủ khả năng để hỗ trợ đưa ra những lời khuyên hữu ích và công nghệ toàn diện giúp doanh nghiệp chuyển đổi số thành công. Dành cho độc giả quan tâm tới các dịch vụ đám mây do NQ Computing cung cấp có thể truy cập tại đây.