Hình 32: Mô hình kết nối giữa client và server
• LDAP client và server thực hiện theo các bước sau:
• Client mở một kết nối TCP đến LDAP server và thực hiện một thao tác bind. Thao tác bind bao gồm tên của một directory entry ,và uỷ nhiệm thư sẽ được sử dụng trong quá trình xác thực, uỷ nhiệm thư thông thường là pasword nhưng cũng có thể là chứng chỉ điện tử dùng để xác thực client.
• Sau khi thư mục có được sự xác định của thao tác bind, kết quả của hao tác bind được trả về cho client.
• Client phát ra các yêu cầu tìm kiếm.
• Server thực hiện sử lý và trả về kết quả cho client. Server thực hiện sử lý và trả về kết quả cho client. Server gởi thông điệp kết thúc việc tìm kiếm.
• Client phát ra yêu cầu unbind, với yêu cầu này server biết rằng client muốn huỷ bỏ kết nối.
• Server đóng kết nối.
III. 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.
1. 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.
Hình 33: 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.
Atrribute type Atrribute values
cn : Barbara jensen
Bads jensen
sn : jensen
telephone number : +1 408 555 1212 mail : ba d s@ a rius. co m
• 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
• Ví 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: organizationalPerson objectClass: inetOrgPerson cn: Barbara Jensen cn: Babs Jensen sn: Jensen
mail:bjens e n@airius.c o m
telephoneNumber:+14085551212 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ườngcaseExactString : 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ư mục 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.
• Bảo trì các hệ thống thư mục:
• 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.