Network Information System NIS:là hệ thống thông tin mạng NIS là giao thức tương tự như LDAP nhưng còn khá nhiều hạn chế Được phát triển bởi Sun MicroSystem ,ban đầu được Sun đặt tê
Trang 1GVHD:TS.PHẠM VĂN TÍNH
Đỗ Hoàng Tuyên
Phạm Phanh Phương
Nguyễn Trung Tín
Trang 3Tại sao sử dụng LDAP
Hiện nay, để xây dựng các hệ thống lớn, điều tối quan trọng là phải làm cách nào để có thể tích hợp dữ liệu để từ đó có thể
dùng chung giữa các hệ thống khác nhau Trong đó, tích hợp tài khoản của người sử dụng là vấn đề cần thiết nhất trong
những cái "tối quan trọng" trên
Hãy tưởng tượng một hệ thống với khoảng 5 - 6 mô đun khác nhau, mỗi mô đun lại được thiết kế trên một nền tảng khác nhau ( Oracle +
AS Portal, có người thì xài DB2 với WebSphere, lão khác thì
MySQL , ông thì xài Wíndow, lão thì cài Linux, Unix), do đó cần có một hệ thống người dùng khác nhau Vậy thì với mỗi mô đun, người
sử dụng cần phải có một User Name, một mật khẩu khác nhau, đó là điều không thể chấp nhận được Người dùng chẳng mấy chốc mà
chán ghét hệ thống.
Trang 4 Làm cách nào để có thể tích hợp được người dùng giữa các hệ thống trên?
Câu trả lời đó là LDAP.
=>Như Vậy LDAP là gì?
Trang 5Network Information System
NIS:là hệ thống thông tin mạng
NIS là giao thức tương tự như LDAP nhưng còn khá nhiều hạn chế
Được phát triển bởi Sun MicroSystem ,ban đầu được Sun đặt tên là Yellow Page nhưng lại đụng độ với tên của một số công
ty điện thoại,nên đổi tên lại
Được tích hợp trong hệ thống Unix trước đây
• Với một nhóm 50 trạm làm việc, khi người điều hành hệ thống thêm vào một người sử dụng mới thì người sử dụng đó phải được thêm vào 50 file password, 50 file thư tín…
Trang 6Network information system
NIS ra đời giải quyết phần lớn các vấn đề này bằng cách đặt hầu hết các thông tin quản lý vào một nơi do NIS kiểm soát và mọi trạm làm việc đều tham chiếu đến các file NFS thay vì đến các file riêng của họ
Khi có một người sử dụng mới, người điều hành chỉ phải thêm người sử dụng đó vào cơ sở dữ liệu NFS được dùng chung, do
đó tức thời làm cho người mới vào có thể làm việc với tất cả các trạm làm việc
Trang 7Network information system
Tuy nhiên, thỉnh thoảng nó cũng bị mất đồng bộ (sau khi người quản trị cập nhật các file chính, cần phải thực hiện một số lệnh
để làm phát sinh lại cơ sở dữ liệu NIS và dễ mắc sai lầm)
Khi NIS không đồng bộ, nó có thể gây ra những kết quả rất kỳ
Trang 8LDAP là gì
LDAP - viết tắt của Lightweight Directory Access Protocol, hay dịch ra tiếng Việt có nghĩa là giao thức truy cập nhanh các dịch vụ thư mục
Nó là giao thức dạng Client/Server dùng để truy cập dịch vụ thư mục
LDAP chạy trên TCP/IP hoặc các dịch vụ hướng kết nối khác
Trang 9Nguồn gốc của LDAP
Bản chất của LDAP là một phần của dịch vụ thư mục
X.500(DAP) LDAP thực chất được thiết kế như một giao thức nhẹ nhàng
X500 được biết như là một heavyweight Nó yêu cầu client và server liên lạc với nhau sử dụng theo mô hình OSI Mô hình 7 tầng của OSI là một mô hình chuẩn phù hợp trong thiết kế với giao thức mạng, nhưng khi so sánh với chuẩn TCP/IP thì nó trở nên không còn hợp lý
Trang 10 LDAP được so sánh với lightweight vì nó sử dụng gói tin
overhead thấp, nó được xác định chính xác trên lớp TCP ( mặc định là cồng 389) của danh sách các giao thức TCP/IP Bởi vì X.500 là một lớp giao thức ứng dụng, nó chứa nhiều thứ hơn ví
dụ như các network header được bao quanh các gói tin ở mỗi layer trước khi nó được chuyển đi trong mạng
LDAP được coi là lightweight bởi vì nó đã lược bỏ rất nhiều những phương thức ít được dùng của X.500
Cung cấp một mô hình đơn giản cho người lập trình và quản trị
hệ thống
Trang 12Cấu trúc LDAP-Khái niệm Directory
Một thư mục là list thông tin về các đối tượng,được sắp xếp một cách chi tiết về mỗi đối tượng
Trong Computer thì thư mục là một database đặc biệt,lư u trữ thông tin về các đối tượng
Thư mục cho phép user và ứng dụng có thể tìm kiếm tài
nguyên để phục vụ cho các task
Mặc dù thư mục xem như database nhưng thư mục thì thường chứa thông tin tĩnh ,ít thay đổi khác với DB
Thư mục thường được đọc nhiều hơn là update,written
Trang 13Cấu trúc LDAP- Directory Service :Directory Service
là một loại service có thể nằm trên client hoặc server
Khái niệm Directory services thì không có gì
mới,nếu chúng ta đã từng làm quen với dịch vụ DNS (phân giải tên miền).Tuy nhiên, một số
người thường nhầm lẫn Directory services giống như một database
Trang 14Cấu trúc LDAP- Directory Service :
để lấy dữ liệu nhiều hơn là ghi không giống như một Database cung cấp khả năng đọc và ghi dữ liệu với tần số liên tục
Một ví dụ phổ biến của service là :file services,
mail services, print services, Web page services…
Trang 15Cấu trúc LDAP(cont…)
LDAP (Lightweight Directory Access Protocol) là một chuẩn
mở rộng cho nghi thức truy cập thư mục, hay là một ngôn ngữ
để LDAP client và severs sử dụng để giao tiếp với nhau
LDAP là một giao thức hướng thông điệp
Nó là giao thức dạng Client/Server
LDAP chạy trên TCP/IP hoặc các dịch vụ hướng kết nối khác
Là một mô hình thông tin cho phép xác định cấu trúc và đặc điểm của thông tin trong thư mục
Là một giao thức mở rộng ,được định nghĩa nhiều phương thức
mở rộng cho việc truy cập và update thông tin trong thư mục
LDAP một nghi thức thuộc tầng ứng dụng
Trang 16Cấu trúc LDAP(cont…)
LDAP tổ chức data theo thư mục phân cấp:
Trang 19Mộ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
Trang 20Mô hinh của một Entry
Trang 21Cấu trúc của entry trong Directory
Trang 22Cấu trúc LDAP(cont )
Dịch vụ thư mục LDAP được dựa trên một mô hình server
Trang 23client-Cấu trúc LDAP(cont )
LDAP là một giao thức hướng thông điệp:
Do client và sever giao tiếp thông qua các thông điệp,Client tạo một thông điệp (LDAP message) chứa yêu cầu và gởi nó đến cho server Server nhận được thông điệp và xử lý yêu cầu của client sau đó gởi trả cho client cũng bằng một thông điệp LDAP
Ví dụ:khi LDAP client muốn tìm kiếm trên thư mục, client tạo LDAP tìm kiếm và gởi thông điệp cho server Sever tìm trong
cơ sở dữ liệu và gởi kết quả cho client trong một thông điệp LDA
Trang 26Cấu trúc LDAP(cont )
Do nghi thức LDAP là nghi thức thông điệp nên, client được phép phát ra nhiều thông điệp yêu cầu đồng thời cùng một lúc Trong LDAP, message ID dùng để phân biệt các yêu cầu của client và kết quả trả về của server
Trang 27 LDAP thực hiện theo cách hoàn toàn khác, quản lý tất cả thao tác trên một kết nối.
Trang 28Các thao tác của trên LDAP
LDAP có 9 thao tác cơ bản, chia thành 3 nhóm thao tác chính:
Thao tác thẩm tra (interrogation) : search, compare Hai thao tác này cho phép chúng ta thực hiện thẩm tra trên thư mục
Thao tác cập nhật (update): add, delete, modify, modify DN ( rename ) Những thao tác này cho phép chúng ta thực hiện cập nhật thông tin trên thư mục.
Thao tác xác thực và điều kiển(authentiaction and control) : bind,
unbind, abandon Thao tác bind cho phép client tự xác định được
mình với thư mục, thao tác này cung cấp sự xác nhận và xác thực
chứng thư; unbind cho phép client huỷ bỏ phân đoạn làm việc hiện hành; và cuối cùng là thao tác abandon cho phép client chỉ ra các
thao tác mà kết quả client không còn quan tâm đến nữa.
Trang 29Các thao tác của trên LDAP(cont )
Ngoài 9 thao tác cơ bản LDAP version 3 được thiết kế mở rộng thông qua 3 thao tác
Thao tác mở rộng LDAP(LDAP extended operations) – đây là một nghi thức thao tác mới Trong tương lai nếu cần một thao tác mới, thì thao tác này có thể định nghĩa và trở thành chuẩn mà không yêu cầu ta phải xây dựng lại các thành phần cốt lõi của LDAP
LDAP control - Những phần của thông tin kèm theo cùng với các thao tác LDAP, thay đổi hành vi của thao tác trên cùng một đối tượng
Trang 30Các thao tác của trên LDAP(cont )
Xác thực đơn giản và tầng bảo mật (Simple
Authentication and Security Layer SASL) là một mô hình
hổ trợ cho nhiều phương thức xác thực Bằng cách sử dụng mô hình SASL để thực hiện chứng thực LDAP có thể dễ dàng thích nghi với các phương thức xác thực mới khác, SASL còn hổ trợ một mô hình cho client và server
có thể đàm phán trên hệ thống bảo mật diển ra ở các tầng thấp(dẫn đến độ an toàn cao) Mặt dù như vậy nhưng các
mô hình này của SASL đều thích nghi với các nghi thức của internet
Trang 31Các mô hình của LDAP
Information Model: Model cho ta biết thông tin hoặc dữ liệu được thể hiện như thế nào trong một hệ thống có kích hoạt
Trang 32Information 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
Trang 33LDAP SCHEMA
Thiết lập các rule mô tả những loại data gì được lưu trữ
Giúp quản lí một cách nhất quán và chất lượng của data
Trang 34LDAP Schema (cont…)
Schema chứa đựng những thông tin sau:
Những thuộc tính yêu cầu
Những thuộc tính được phép
So sánh các thuộc tính đó như thế nào
Giới hạn những thuộc tính gì có thể lưu trữ
Những thông tinh gì thì bị cấm lưu trữ,hay sao lưu
Trang 35 Sử dụng để nhóm các thông tin lại
Cung cấp những rule sau đây:
Thuộc tính yêu cầu
Thuộc tính được phép
Dễ dàng lấy được nhóm thông tin
• Entry có thể có nhiều objectclass,nhưng bắt buộc phải có objectclass
• Theo chuẩn LDAP thì có những loại object class sau:
Groups in the directory
Locations
Organizations in the directory
People in the directory.
Trang 37 Ví dụ entry trong LDIF
Trang 38Một Entry thư mục trong LDIF:
dn: uid=bjensen, dc=airius, dc=com objectClass: top
objectClass: person
objectClass: organizationalPerson objectClass: inetOrgPerson
Trang 39 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
Trang 41Naming 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
Trang 42Naming Model (cont )
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
Trang 43Distinguished names
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 dưới 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
Trang 45Relative Distingguished name
Kí hiệu là :RDN
Thành phần trái nhất được gọi là relative distingguished name (RDN)
RDN là tên phân biệt các entry
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 sau ta thấy
Trang 46Mặc dù cho có hai entry có cùng RDN cn=Joohn Smith như hai entry ở hai nhánh khác nhau
Trang 49Bí Danh(Alias)
Để 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
Trang 50 LDAP version ngoài 3 nhóm thao tác trên, còn có thao tác LDAP extended thao tác này cho phép nghi thức LDAP sau này có thể mở rộng một cách có tổ chức và không làm thay đổi đến nghi thức
Trang 51Các thao tác thẩm tra-Interrogation
Hai thao tác thẩm tra cho phép client có thể tìm và nhận lại
thông tin từ thư mục Nhưng LDAP không có thao tác đọc một entry thư mục,do đó khi đó chúng ta muốn đọc một entry thì ta phải thực hiện tìm kiếm và dừng tìm kiếm ngay khi nhận được kết quả đầu tiên Thao tác tìm kiếm (LDAP search operation) yêu cầu 8 tham số:
Tham số đầu tiên :là đối tượng cơ sở mà các thao tác tìm kiếm
thực hiện trên đây tham số này là DN chỉ đến đỉnh của cây mà chúng ta muốn tìm
Trang 56Các thao tác thẩm tra-Interrogation
(cont…)
Tham số thứ ba :derefAliases cho server biết rằng liệu bí danh
aliases có bị bỏ qua hay không tham khảo đến khi thực hiện tìm
kiếm, có 4 giá trị mà derefAliases có thể nhận được:
nerverDerefAliases - nghĩa là thực hiện tìm kiếm và không bỏ qua bí danh (aliases) trong lúc thực hiện tìm kiếm và áp dụng với cả đối
derfAlways - bỏ qua cả hai nếu việc tìm kiếm thấy đối tượng cơ sở hay là các entry cấp thấp là các entry aliases
Trang 57Ví dụ 2:Nếu tham số này 0,thì server trả về toàn bộ kết quả
Tham số thứ năm: qui định thời gian tối đa cho việc thực hiện
tìm kiếm
Trang 58Các thao tác thẩm tra-Interrogation
(cont…)
Tham số thứ sáu: attrOnly – là một tham số kiểu bool
Nếu attrOnly=true ,thì server sẽ trả về các thuộc tính của entry
Nếu attrOnly=false ,thì server sẽ trả về các thuộc tính và giá trị của entry
Tham số thứ bảy: là bộ lọc tìm kiếm(search filter) đây là một
biểu thức mô tả các loại entry sẽ được giữ lại
Tham số thứ tám :và đây là tham số cuối cùng đây là một
danh sách các thuộc tínhđược giữ lại với mỗi entry Bạn có thể chỉ định các thuộc tính được giữ lại
Trang 60Các thao tác thẩm tra-Interrogation
(cont…)
Trong hình trên chỉ có LDAP version 3 hổ trợ cho bộ lọc này: đây là một bộ lọc thiết kế cho các thao tác tìm kiếm phát triển trong tương lai Bộ lọc này mang tính dễ dàng mở rộng của LDAP khi các thao tác tìm kiếm phát triển
Cú pháp của bộ lọc mở rộng này khá phức tạp, gồm có 5 phần
và 3 trong đó là các tuỳ chọn
Trang 61Cú pháp ldapsearch
Trang 62Thao tác cập nhật
Có 4 thao tác cập nhật:add,delete,rename,modify:
Add :Thao tác add tạo ra một entry mới với tên DN và danh sách
các thuộc tính truyền vào, khi thực hiện add một entry mới vào thư mục phải thoả các điều kiện sau :
Entry là nút cha của entry mới phải tồn tại
Chưa tồn tại một entry nào có cùng tên DN với entry mới trên thư mục
• Delete :Thao tác xoá (delete) chỉ cần truyền vào tên của entry cần
xoá và thao tác thực hiện được nếu như:
Entry tồn tại với tên là DN truyền vào
Entry bị xoá không có các entry con
Trang 63
Thao tác cập nhật (cont )
Rename:Thao tác rename hay modify DN sử dụng để đổi tên
hay dùng để di chuyển các entry trong thư mục, các tham số cần truyền vào là DN của entry cần đổi tên, RDN mới của
entry và một số tham số tuỳ chọn dành cho các entry là cha mới của entry di chuyển đến, và cuối cùng là một cờ cho phép xoá hay không xóa với RDN cũ Cũng như trên thao tác thực hiện được nếu như thoả :
Các entry bị đổi tên phải tồn tại
Tên mới của entry phải chưa tồn tại