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
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 4Là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 :
(cont…)
Directory services và Database cùng có chung các
chức năng giống nhau như hổ trợ tìm kiếm dữ liệu nhanh chóng và chứa các file cấu hình hệ thống extendable schema nhưng chúng khác nhau ở chổ một Directory services được thiết kế để 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 19Cấu trúc LDAP(cont…)
Thành phần cơ bản của LDAP directory là
entry , chứa toàn bộ thông tin của một đối tượng
Mỗi Entry có một tên đặc trưng kí hiệu là (DN: distinguished name )
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
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 client-server
Trang 23Cấ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 LDAP.
Naming Model : mô hình này định nghĩa tổ chức và
tham khảo đến data như thế nào.
Functional Model : Mô tả các hoạt động có thể thực hiện trên Directory thông qua giao thức LDAP
Security Model : Mô hình này giúp bạn có thể kiểm soát 1
cách tinh tế những người dùng trên dữ liệu Đây là mô hình phức tạp nhưng có công cụ mạnh mẽ để giúp bạn quản lý
vấn đề về bảo mậ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 33interface phù hợp trên data
Object class attibute xác định rõ những Schema rule mà entry phải làm theo
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 37LDIF (cont…)
Dữ liệu trong file LDIF cần phải tuân theo
một luật có trong schema của LDAP directory
Mọi thành phần được thêm vào hoặc thay đổi trong
directory của bạn sẽ được check lại trong schema để đảm bảo sự chính xác
Ví dụ entry trong LDIF
Trang 38Một Entry thư mục trong LDIF:
dn: uid=bjensen, dc=airius, dc=com objectClass: top
Trang 39Thuộ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 47Bí Danh(Alias)
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
khái niệm Aliases entry giống như khái niệm symbolic
links trong UNIX hay shortcuts trên WINDOW
Không phải tất cả các LDAP Directory Server đều hổ trợ Aliases vì:
Alias entry có thể chỉ đến bất kì một entry
nào,kể cả LDAP server khác
Việc tìm kiếm alias entry trên một cây thư
mục khác nằm trên server LDAP,làm tăng chi phí cho việc tìm kiếm
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 52Phạm vi “subtree” thao tác này thực hiện tìm hết trên cây
mà đối tượng cơ sở là đỉnh
Hình minh họa cho từng phạm vi
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 57Các thao tác thẩm tra-Interrogation
(cont…)
Tham số thứ bốn :cho server biết có tối đa bao nhiêu
entry kết quả được trả về
Ví dụ 1:Nếu tham số này 100,nếu server tìm thấy 200,chỉ trả về client 100 entry
Ví 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 58Tham 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