LDAP là gì? Thông tin chi tiết về LDAP dân kỹ thuật cần biết

Mục lục

1. LDAP là gì?

LDAP được viết đầy đủ là  Lightweight Directory Access Protocol, là một giao thức thuộc loại client – server có nhiệm vụ quan trọng là truy cập vào những dịch vụ thư mục. Nguồn gốc phát triển của LDAP chính là dựa vào chuẩn X500.

Để hiểu được rõ khái niệm về DLAP ở trên, chúng ta sẽ cần hiểu sâu hơn về thư mục. Mỗi một thư mục được ví là một cơ sở của dữ liệu mang theo xu hướng chứa đựng nhiều các thông tin về thuộc tính và các yếu tố trong mô tả. Các thông tin này thường tồn tại ở dạng đọc.

Khi người ta điều chỉnh thư mục thực chất là phục vụ tìm kiếm nhanh chóng hoặc có nhu cầu tìm thông tin lớn. Thư mục sẽ thể hiện khả năng tái tạo thông tin nhằm độ tin cậy cũng như tính khả dụng, thời gian phản hồi cũng được tối ưu tốt hơn. Như vậy LDAP sẽ làm việc và kết nối trực tiếp với thư mục và sẽ hỗ trợ thư mục thực hiện hiệu quả các tính năng và nhiệm vụ vốn có.

2. Cơ chế hoạt động của LDAP

Như đã nói, LDAP thực hiện hoạt động dựa trên mô hình Client – server. Giao thức này sẽ chứa các thông tin liên quan đến cây thư mục DIT. Cơ chế cụ thể như sau: Client sẽ dược kết nối tới server, gửi đi yêu cầu về thông tin, tiếp đến, server gửi lại phản hồi trên chính nó hoặc LDAP server khác. Sau quá trình này Client sẽ có thể lấy được thông tin.

Trình tự khi diễn ra sự kết nối với LDAP như sau:

- Chế độ connect sẽ dược kết nối đến LDAP thông qua việc client mở ra sự kết nối.

- Bind cho phép bạn chọn kiểu kết nối hay là tiến hành đăng nhập để xác thực lại mức độ uy tín. Client sẽ gửi tới bạn thông tin để xác thực.

 - Search: tiếp theo nữa, client sẽ gửi đi yêu cầu về việc tìm kiếm.

- Interpret search là nhiệm vụ của server tiến hành việc xử lý thao tác tìm kiếm.

-  Result: sau khi đã trải qua các bước trên, server sẽ gửi kết quả lại cho client.

- Unbind: khi client đã nhận được kết quả thì sẽ gửi tới server một yêu cầu đóng kết nối.

- Close connection sẽ là khâu cuối cùng mà bạn cần thực hiện để đóng kết nối với server lại.

3. LDAP và những thuộc tính của nó

Trong LDAP có nhiều thuộc tính. Trước tiên đó là SLAP. Thuộc tính này hỗ trợ được nhiều cơ sở dữ liệu có thể dùng. Trong Slap lại gồm BDB hoạt động với hiệu suất cao; LDBM; SHELL dùng cho những tập lệnh về shell và PASSWD.

Với BDB được tối ưu khi dùng với Sleepycat Berkeley DB4 ; LDBM dùng tối ưu cho Berkeley DB/ GDBM. Dựa trên sự phù hợp này thì BDB thường dược dùng cho việc truy cập vào các cơ sở dữ liệu có nhiều người dùng, có khả năng kết hợp cả hai thao tác, ghi và đọc. Chương trình này được cài đặt ở những ứng dụng thực hiện chức năng giao dịch, có thể thay đổi cơ sở dữ liệu, đồng thời cũng có thể khôi phục lại mọi sự thay đổi đó nếu như không có sự cam kết và cần phải thay đổi. BDB có lợi thế lớn khi có được khả năng phục hồi sau lỗi phần cứng cũng như sự cố hệ thống mà không mất đi bất cứ giao dịch nào đã được cam kết rõ ràng.

Bạn có thể hiểu rõ vấn đề thông qua ví dụ điển hình sau:

Khi bạn lựa chọn cơ sở dữ liệu là BDB, nếu như có một trong những nhu cầu hoặc là nhập – xuất thông tin hoặc là mô tả những tập hợp thay đổi áp dụng đối với một thư mục thì chúng ta sẽ có tệp định dạng LDIF được sử dụng. Tệp này có chức năng lưu lại thông tin theo cơ chế về hướng phân cấp các đối tượng theo mục nhập.

Bên trong LDAP, mỗi object class xác định được một tập hợp thuộc tính dùng vào việc xác định rõ ràng các entry. Do đó một LDAP mang tới những object cơ bản sau:

- Nhóm thư mục

- Những locations (có thể là tên của quốc gia đi kèm cùng mô tả chi tiết)

- Những organizations nằm bên trong của thư mục

- People thuộc thư mục

Mỗi một entry có thể nằm trong nhiều object class. Chẳng hạn như entry xác định trong một person object class thì cũng vẫn có thể nằm trong các loại thuộc tính khác như trong những Organization object class hay inet OrgPerson Group Of name. Object class ở trong máy chủ sẽ làm nhiệm vụ xác định tổng toàn bộ tất cả thuộc tính cần thực hiện, và chúng được phép dùng đối với mỗi entry cụ thể.

Các dữ liệu bên trong các thư mục thì đều được biểu diễn ở dạng các cặp giá trị thuộc tính. Bất cứ thông tin nào cũng sẽ được liên kết chặt chẽ kèm với thuộc tính mô tả. Ví dụ như thuộc tính CU hay common Name dùng cho việc lưu lại dữ liệu tên người. Ví dụ:

Cn: Jonas Salk

Ngoài ra còn có những thuộc tính khác cũng được dùng như:

- Givennam: …

- Surname: …

- Mail: …

Những thuộc tính được sắp xếp vào diện bắt buộc thì sẽ phải nằm trong những mục có object class. Còn những thuộc tính nằm trong diện được phép thì sẽ có thuộc tính có thể xuất hiện trong entry có dùng tới object class. Chẳng hạn như đối với một person object class thì thuộc tính được yêu cầu sẽ là sn và cn. Còn những thuộc tính nằm trong diện cho phép và không bắt buộc sẽ là seeAlso, phoneNumber, userpassword. Đi kèm với từng thuộc tính đó chính là những định nghĩa, cú pháp riêng.

4. Cơ chế của việc lưu trữ thông tin trong LDAP

Thông tin LDAP sẽ được lưu trữ trong LDIF vì nó là chuẩn về định dạng text. Người ta sẽ sử dụng LDIF để import data mới vào drictory, cũng có thể thay đổi các dữ liệu vốn sẵn có. Dữ liệu nằm tỏng file này cần phải đảm bảo việc tuân thủ đúng quy luật mà DLAP đưa ra đối với các schema.

Trong đó, schema sẽ được định nghĩa trước đó một cách rõ ràng, nó có nhiệm vụ kiểm tra lại bất cứ yếu tố nào được thêm hay được thay đổi. Cơ chế hoạt động của DLAP trong vấn đề lưu trữ thông tin dường như diễn ra khá đơn giản. Vì có rất nhiều thuật toán xuất hiện trong cơ chế này cho nên bạn cần hiểu được bản chất của chúng để có thể tiến hành đúng các quy trình được đưa ra đảm bảo cho hoạt động lưu trữ của DLAP được hiệu quả.

Những thông tin sau đây sẽ nói cho bạn rõ hơn về cơ chế này.

4.1. Cấu trúc của tập lưu trữ DLIF

Mỗi file LDIF thường sẽ có mẫu như sau:

- Các tập entry không giống nhau thì được tách nhau bằng dòng trắng

- Cấu trúc DLIF: “tên của thuộc tính: giá trị”

- Các tập có chỉ dẫn cụ thể để nhập đúng cú pháp giúp bạn tiến hành xử lý các thông tin một cách hiệu quả nhất.

- Yêu cầu đối với việc khai báo tập tin LDIF

+ Gõ chú thích trong 1 dòng và sau dấu #

+ Các thuộc tính sẽ được nằm ở phần bên trái, trước dấu “:”, giá trị kèm theo nằm phía bên phải sau dấu “:”

+ Thuộc tính dn sẽ được dùng để định nghĩa chỉ cho duy nhất một DN được xác định thuộc vào một entry đó.

4.2. Cơ chế của entry phục vụ lưu trữ dữ liệu trong LDAP

Entry sẽ tập hợp các thuộc tính lại, bảo đảm các thuộc tính đều có chức năng mô tả rõ đặc trưng tiêu biểu của đối tượng. Trong mỗi entry đều bao gồm nhiều dòng khác nhau bao gồm

- DN biểu diễn tên loại entry thư mục, viết ở trong cùng một dòng.

- Tiếp đến biểu diễn lần lượt từng thuộc tính khác nằm trong entry và đến thuộc tính lưu trữ data. Mỗi một thuộc tính thì nằm trọn vẹn trong cùng dòng, định dạng của chúng sẽ là “kiểu: giá trị” của thuộc tính.

Bạn có thể tham khảo thêm một vài thuộc tính căn bản nhất của LDIF tại bảng sau đây:

- Thuộc tính thứ nhất là dn. Đây là tên viết tắt của Distinguished Name. Mục đích của thuộc tính này chính là cách gọi tên để phân biệt. 

- Thuộc tính thứ 2 là c, c được viết đầy đủ là country. Với thuộc tính này, cho phép bạn viết 2 ký tự để tạo thành tên viết tắt cho dữ liệu nói về một quốc gia nào đó.

- Thuộc tính thứ 3 là o. hay cũng chính là organization, mang nghĩa thể hiện giá trị "Tổ chức"

- Thuộc tính thứ 4, thuộc tính ou-Organization unit. Nó thể hiện cho giá trị Đơn vị tổ chức

- Thuộc tính thứ 5 là ObjectClass. Với một oc, nó có cơ chế hoạt động của một khuôn mẫu dữ liệu thuộc entry, là định nghĩa cho một thuộc tính cần trình bày.

- Thuộc tính thứ 6, GivenName cũng thể hiện giá trị "tên".

- Thuộc tính thứ 7 là uid, thể hiện Id của người dùng.

- Thuộc tính thứ 8 được gọi là   cn", cách viết tắt của common name, chỉ giá trị Tên gọi phổ biến.

- Thuộc tính thứ 9 có tên là telephoneNumber, ý thể hiện giá trị là Số điện thoại.

- Thuộc tính thứ 10 - sn, viết tất của surname thể hiện trường nội dung là "Họ".

- Thuộc tính thứ 11 - userPassword, ý chỉ "Mật khẩu của người dùng".

5. Mô hình của LDAP

Dựa vào từng trường hợp và sự thích ứng khác nhau mà bản thân LDAP cũng được phân chia ra làm các loại riêng biệt để có thể trở nên phù hợp. Theo đó, giao thức LDAP đã được chia ra làm 4 kiểu mô hình sau đây:

- LDAP information - kiểu mô hình có giá trị xác định đặc điểm cũng như cấu trúc của thông tin thuộc trong thư mục.

- LDAP Naming - kiểu mô hình có giá trị xác định cách mà nhưng thông tin được tham chiếu, được tổ chức như thế nào.

- LDAP Functional - kiểu mô hình có tác động định nghĩa cách truy cập thông tin và cập nhật chúng ở bên trong thư mục.

- LDAP Security - mô hình này định nghĩa cách thức bạn thực hiện việc thông tin ở bên trong của thư mục, các thông tin này đã được bảo vệ

4 kiểu mô hình này không chỉ tạo nên nét đặc trưng cơ bản cho LDAP mà hơn hết nó sẽ định hướng được những thể thức hoạt động của giao thức này. Những kỹ sư công nghệ thông tin sẽ dựa vào đây mà chọn ra một phương thức kết nối phù hợp nhất để sử dụng cho từng trường hợp cụ thể, mang lại hiệu quả tốt nhất đối với hệ thống công nghệ và kỹ thuật. 

Như vậy, những thông tin cơ bản trên đây đã mang tới cho bạn hiểu biết cụ thể về LDAP. Còn rất nhiều tin tức xoay quanh loại giao thức kết nối này mà bạn cần tìm hiểu nhưng tôi sẽ cung cấp cụ thể ở những bài viết tiếp theo. Mong rằng, bạn sẽ đón đọc những thông tin hữu ích đó để tự củng cố thêm kiến thức cần thiết cho mình

Đăng ngày 20/11/2020, 18 lượt xem