Các mô hình LDAP

Một phần của tài liệu Nghiên cứu, ứng dụng và phát triển hệ thống hỗ trợ làm việc nhóm zimbra, tính bản địa hóa, tối ưu mã nguồn và khả năng tích hợp, mở rộng các ứng dụng trong môi trường zimbra cơ sở dữ liệu, LDAP và các giao thức bảo mật qua SSL (Trang 125 - 131)

H. Giới thiệu LDAP và JNDI

III. CĂN BẢN VỀ LDAP

7. Các mô hình LDAP

LDAP định nghĩa ra 4 mô hình gồm có LDAP informmation, LDAP Naming, LDAP Functional, LDAP Security. Bây giờ chúng ta sẽ thảo luận chi tiết từng mô hình trước tiên là với LDAP information

7.1 Mô hình LDAP (LDAP Information Model)

Mô hình LDAP Information định nghĩa ra các kiểu của dữ liệu và các thành phần cơ bản của thông tin mà bạn có thể chứa trong thư mục. Hay chúng ta có thể nói rằng LDAP Information mô tả cách xây dựng ra các khối dữ liệu mà chúng ta có thể sử dụng để tạo ra thư mục.

Thành phần cơ bản của thông tin trong một thư mục gọi là entry đây là một tập hợp chứa các thông tin về đối tượng (Object). Thường thì các thông tin trong một entry mô tả một đối tượng thật như là thông tin về người, nhưng đây không phải là qui định bắt buộc với mô hình.

Ví dụ như trên thư mục dưới đây.

Giới Thiệu LDAP

Một cây thư mục với các entry là các thành phần cơ bản

Một entry là tập hợp của các thuộc tính, từng thuộc tính này mô tả một nét đặt trưng tiêu biểu của một đối tượng. Mỗi thuộc tính có kiểu một hay nhiều giá trị, kiểu của thuộc tính mô tả loại thông tin được chứa, giá trị là dữ liệu thực sự.

Ví dụ một entry mô tả một người với các thuộc tính: tên họ, tên, số điện thoại, và địa chỉ email.

Bảng 0-1: Một entry với các thuộc tính cơ bản Atrribute type Atrribute values

cn : Barbara jensen Bads jensen sn : Jensen telephone number

:

+1 408 555 1212 mail : bads@arius.com

7.1.1 LDAP Data Interchange Format (LDIF)

LDAP định nghĩa ra LDIF là dạng văn bản để mô tả thông tin thư mục. LDIF có thể mô tả một tập hợp các entry thư mục hay là tập hợp các cập nhật lên thư mục dữ liệu của các thư mục có thể trao đổi cho nhau bằng cách dùng LDIF.

Thí dụ thông tin thư mục ở dạng văn bản LDIF, đây là dạng chuẩn dành cho việc nhập và xuất thông tin trên thư mục, và các tập tin LDIF đều ở dạng ASCII điều này làm cho chúng dễ dàng chuyền tải trên hệ thống email.

Một entry thư mục ở dang LDIF:

dn: uid=bjensen, dc=airius, dc=com objectClass: top objectClass: person

objectClass: inetOrgPerson cn: Barbara Jensen

cn: Babs Jensen sn: Jensen

mail: bjensen@airius.com telephoneNumber: +1 408 555 1212 description: A big sailing fan.

Dạng một entry LDIF bao gồm nhiều dòng, đầu tiên là distinguished name (dn) là tên của entry thư mục tất cả được viết trên một dòng, sau đó lần lượt là các thuộc tính của entry, mổi thuộc tính trên một dòng theo thứ tự là:

kiểu thuộc tính: giá trị thuộc tính

Thứ tự các thuộc tính không quan trọng tuy nhiên để dễ đọc được thông tin chúng ta nên đặt các giá trị objectclass trước tiên và nên làm sao cho các giá trị của các thuộc tính cùng kiểu ở gần nhau.

KiểuThuộc tính dữ liệu qui định, mô tả dữ liệu được đặt vào và cách thư mục so sánh giá trị khi dò tìm. Ví dụ như cú pháp:

 caseIgnoreString : qui định trong trong một ngữ cảnh nào đó thì chúng ta xem như nhau và không cần thực hiện so sánh như là Tom và tom như nhau không phân biệt chữ hoa và thường.

 caseExactString : trái ngược lại với cú pháp trên phân biệt rõ ràng chữ hoa và chữ thường do đó Tom và tom là không tương đương nhau.

LDAP sever không hổ trợ các kiểu dữ liệu trù tượng chỉ hổ trợ duy nhất cho các kiểu chuẩn. Không như những nghi thức khác chẳng hạn là X.500 ngoài một số liểu dữ liệu chuẩn (chuỗi, số, kiểu bool) và một số kiểu dữ liệu phức tạp xây dựng từ các kiểu dữ liệu trên. Tuy nhiên những giao diện plug-in cho phép định nghĩa các cú pháp mới.

Các thuộc tính cũng phân thành 2 loại: thuộc tính người dùng, thuộc tính thao tác.

 Thuộc tính người dùng (user attributes) là các thuộc tính bình thường của một entry thư mục, các thuộc tính này có thể được điều chỉnh bởi user của thư mục(tất nhiên là các thao tác sữa chữa được phép)..

 Thuộc tính thao tác (operational attributes) đây là các thuộc tính đặc biệt và chỉ có thể được điều chỉnh bởi directory server hay là các thuộc tính cho biết trạng thái của thư mục, ví dụ một thuộc tính thao tác là một thuộc tính modifytimestamp, những thuộc tính này được bảo trì bởi thư muc và nó cho biết thời điểm cuối cùng mà entry này được cập nhật. Khi entry được gởi đến cho client, các operational attributes sẽ không được gởi đi cùng trừ khi client yêu cầu.

Có một số ràng buộc trên giá trị của thuộc tính. Một số server software cho phép nhà quản trị khai báo rằng một thuộc tính có thể giữ một hay nhiều giá trị. Ví dụ như thuộc tính givenName có thể chứa nhiều giá trị, khi một người muốn thêm vào nhiều tên (ví dụ như là Jim và James chẳng hạn) và cũng có một số thuộc tính chỉ chứa duy nhất một giá trị. những nhà quản trị hệ thống đặt ra phạm vi giới hạn của dữ liệu để ngăn chặn các user sử dụng vượt qua giới hạn cho phép.

7.1.2 Bảo Trì các hệ thống thư mục

Giới Thiệu LDAP Bất kì một entry trong thư mục có tập các kiểu thuộc tính đây là các kiểu được yêu cầu và được cho phép, ví dụ như một entry mô tả một người thì thuộc tính yêu cầu cho entry đó là phải có cn(common name) và sn(surname). Một số thuộc tính cho phép nhưng phải là cần thiết cho entry mô tả một người, các thuộc tính khác không được yêu cầu hay không được phép sẽ không có mặt trong entry.

Những tập hợp các tập thuộc tính yêu cầu và thuộc tính được phép được gọi là mô hình thư mục(directory schemas). Directory schemas có thể được thiết kế cho phép chúng ta có quyền điều kiển và bảo trì các thông tin chứa trong entry.

Chúng ta đã có một khối thông tin cơ bản đó là entry, nhưng làm sao để có thể sắp xếp xây dựng một cây thông tin thư mục (directory information tree) DIT. Chúng ta sẽ nghiên cứu các qui tắc xây dựng trong phần LDAP Naming Model.

7.2 Mô hình LDAP Naming (LDAP Naming Model)

Mô hình LDAP Naming định nghĩa ra cách để chúng ta có thể sắp xếp và tham chiếu đến dữ liệu của mình. Hay chúng ta có thể nói rằng mô hình này mô tả cách sắp xếp các entry của chúng vào một cấu trúc có logical, và mô hình LDAP Naming chỉ ra cách để chúng ta có thể tham chiếu đến bất kỳ một entry thư mục nào nằm trong cấu trúc đó.

Mô hình LDAP Naming cho phép chúng ta có thể đặt dữ liệu vào thư mục theo cách mà chúng ta có thể dễ dàng quản lý nhất. Ví dụ như chúng ta có thể tạo ra một container(khái niệm vật thể chứa đựng) chứa tất cả các entry mô tả người trong một tổ chức, và một container chứa tất cả các group của bạn, hoặc bạn có thể thiết kế entry theo mô hình phân cấp theo cấu trúc tổ chức của bạn. Việc thiết kế tốt cần phải có những nghiên cứu thoả đáng.

Chúng ta đưa ra hệ thống tập tin UNIX để thấy được những điểm khác biệt với hệ thống thư mục LDAP, sau đó phân tích mô hình cây thư mục LDAP.

Hình 0-4: Một cây thư mục LDAP

Hình 0-5: hệ thống tập tin của unix

 Có ba điểm khác biệt quan trọng :

- Điểm khác biệt đầu tiên giữa hai mô hình là trong mô hình LDAP không thực sự có một entry gốc(root). Root là nơi mà chúng ta có thể đặt các entry vào. Trên hệ thống LDAP có một entry đặc biệt được gọi là root DES chứa các thông tin về server, nhưng đây không phải là một entry thư mục bình thường.

- Khác biệt thứ hai là thư mục LDAP mỗi một node chứa dữ liệu, và cũng có thể là một container chứa các entry khác. Đây là một khác biệt với hệ thống tập tin do ở hệ thống tập tin chỉ có thư mục có thể chứa thư mục con và chỉ có tập tin mới chứa dữ liệu.

Ta có thể thấy rằng entry trong thư mục có thể đồng thời là tập tin và thư mục.

Hình 5-23 minh hoạ khái niệm trên các entry dc=airius, dc=com, ou=People và ou=devices tất cả đều chứa dữ liệu nhưng tất cả đều có node con cấp dưới.

Hình 0-6 :Một phần thư mục LDAP với các entry chứa thông tin - Khác biệt cuối cùng là hệ thống tập tin phân cấp và hệ thống LDAP:

 Trong một hệ thống tập tin khi ta đi từ trái sang phải tên tập tin là cách ta thực hiện đi từ gốc(/) đến tập tin. Ví dụ như hình 5-22 hệ thống file Unix tên file của node đậm màu là: /user/bin/grep

Giới Thiệu LDAP

 Với hệ thống thư mục LDAP tại node đậm màu có tên là uid=bjensen,

 ou=people, dc=airius, dc=com nếu chúng ta đi từ trái sang phải thì chúng ta có thể quay ngược lại đỉnh của cây. Ta thấy rằng hệ thống thư mục LDAP sắp đặt có trật tự các entry của thư mục, tuy nhiên LDAP không quy định bất kỳ sự phân cấp đặt biệt nào, chúng ta có thể tự do sắp xếp hệ thống tập tin của bạn một cách có ý nghĩa nhất với bạn.

Ngoài việc chỉ cho bạn cách sắp xếp dữ liệu vào trong các cấu trúc phân cấp, mô hình LDAP Naming còn chỉ ra cách để tham chiếu đến từ entry trong thư mục bây giờ chúng ta sẽ phân tích kĩ hơn.

7.2.1 Distinguished names & Relative Distingguished name

Distinguished names (DNs) trong LDAP đây là tên của một entry chỉ ra cách bạn có thể tham chiếu đến các entry trên thư mục, hai entry khác nhau trên thư mục hai DNs cũng khác nhau.

Giống như đường dẫn của hệ thống tập tin, tên của một entry LDAP được hình thành bằng cách nối tất cả các tên của từng entry cấp trên (cha) cho đến khi trở lên root, như hình trên ta thấy node có màu đậm sẽ có tên là uid=bjensen, ou=people, dc=airius, dc=com nếu chúng ta đi từ trái sang phải thì chúng ta có thể quay ngược lại đỉnh của cây, chúng ta thấy rằng các thành phần riêng lẽ của cây được phân cách bởi dấu phẩy khoảng trắng sau dấu phẩy là tuỳ ý, do đó hai DNs sau là tương đương:

uid=bjensen, ou=people, dc=airius, dc=com uid=bjensen,ou=people,dc=airius,dc=com

Với bất kỳ một DN, thành phần trái nhất được gọi là relative distingguished name (RDN), như đã nói DN là tên duy nhất cho mỗi entry trên thư mục, do đó các entry có chùng cha thì RDN cũng phải phân biệt, vì dụ hình dưới đây ta thấy trên thư mục

Hình 0-7: relative distingguished name

Mặc dù cho có hai entry có cùng RDN cn=Joohn Smith như hai entry ở hai nhánh khác nhau.

7.2.2 Bí danh (Aliases)

Những entry bí danh (Aliases entry) trong thư mục LDAP cho phép một entry chỉ đến một entry khác, do đó chúng ta có thể xây dựng ra cấu trúc mà thứ bật không còn chính xác nữa, khái niệm Aliases entry giống như khái niệm symbolic links trong UNIX hay shortcuts trên Windows9x/NT. Hình dưới đây cho ta thấy được một aliases entry trỏ đến một entry thật

Để tạo ra một alias entry trong thư mục trước tiên bạn phải tạo ra một entry với tên thuộc tính là aliasedOjecctName với giá trị thuộc tính là DN của entry mà chúng ta muốn alias entry này chỉ đến.

Hình 0-8: LDAP với Alias entry

Nhưng không phải tất cả các LDAP Directory Server đều hổ trợ Aliases. Bởi vì một alias entry có thể chỉ đến bất kỳ một entry nào, kể cả các entry LDAP server khác. Do việc tìm kiếm khi gặp phải một bí danh có thể phải thực hiện tìm kiếm trên một cây thư mục khác nằm trên các server khác, do đó làm tăng chi phi cho việc tìm kiếm và đây cũng là lý do chính mà các phần mềm không hổ trợ alias.

7.2.3 Mô hình LDAP Security

Vấn đề cuối cùng trong các mô hình LDAP là việc bảo vệ thông tin trong thư mục khỏi các truy cập không được phép. Khi thực hiện thao tác bind dưới một tên DN hay có thể client một người vô danh thì với mỗi user có một số quyền thao tác trên entry thư mục. Và những quyền nào được entry chấp nhận tất cả những điều trên gọi là truy cập điều kiển (access control).

Hiện nay LDAP chưa định nghĩa ra một mô hình Access Control, các điều kiển truy cập này được thiết lập bởi các nhà quản trị hệ thống bằng các server software.

Một phần của tài liệu Nghiên cứu, ứng dụng và phát triển hệ thống hỗ trợ làm việc nhóm zimbra, tính bản địa hóa, tối ưu mã nguồn và khả năng tích hợp, mở rộng các ứng dụng trong môi trường zimbra cơ sở dữ liệu, LDAP và các giao thức bảo mật qua SSL (Trang 125 - 131)

Tải bản đầy đủ (PDF)

(256 trang)