TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN CHUYÊN NGÀNH
Tìm hiểu và triển khai hệ thống
xác thực sử dụng OpenLDAP
Chuyên ngành: QUẢN TRỊ MẠNG
Giảng viên hướng dẫn : Ths NGUYỄN NHƯ HOA
TP. Hồ Chí Minh, tháng 5 năm 2013
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo
trong trường Đại học Công Nghiệp nói chung và các thầy cô giáo trong khoa
Công nghệ Thông tin, nói riêng đã tận tình giảng dạy, truyền đạt cho em những
kiến thức, kinh nghiệm quý báu trong suốt thời gian qua.
Đặc biệt em xin gửi lời cảm ơn đến cô Nguyễn Như Hoa, cô đã tận tình giúp
đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm đồ án chuyên ngành.
Trong thời gian làm việc với cô, em không ngừng tiếp thu thêm nhiều kiến thức bổ
ích mà còn học tập đƣợc tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm
túc, hiệu quả, đây là những điều rất cần thiết cho em trong quá trình học tập và
công
tác sau này.
Sau cùng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động viên,
đóng góp ý kiến và giúp đỡ trong quá trình học tâp, nghiên cứu và hoàn thành đồ
án chuyên ngành.
Trang 2
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
NHẬN XÉT CỦA GVHD
Trang 3
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
NHẬN XÉT CỦA GVPB
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
……………………………………………………………………………..
Trang 4
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
LỜI MỞ ĐẦU
LDAP là một phương tiện chứa dữ liệu nó không phải là một công nghệ.
Đúng ra, LDAP là một protocol (Light Weight Access Protocol) nhưng nó có ứng
dụng cho protocol nhằm mục đích lưu trữ dữ liệu.
Các dịch vụ ứng dụng khả năng của LDAP rất rộng rãi nhất là trong khu vực
xác thực người dùng (authentication và authorisation). Mường tượng nó như một
DNS có chứa thông tin.
Một cách tổng quát mà nói, LDAP thường phân chia theo O (Organisation tổ chức) và các OU (Organisation Unit - phân bộ). Trong các OU có thể có những OU
con và trong các OU có các CN (Common Name), những nhóm giá trị này thường
được gọi là DN (Distinguished Name - tên gọi phân biệt). Mỗi giá trị chứa trong
LDAP thuộc dạng tên:giá trị, thường được gọi là LDAP Attribute (viết tắt là attr,
mỗi attr được nhận diện như một LDAP Object.
Những điểm ở trên hình thành một cái gọi là LDAP schema và có tiêu chuẩn
thống nhất giữa các ứng dụng phát triển LDAP. Đây là lý do LDAP được ưa chuộng
cho công tác lưu trữ và tích hợp với các cơ phận authentication / authorisation vì
chúng có thể được dùng giữa các LDAP system (bất kể công ty sản xuất) miễn sao
các cty sản xuất tuân thủ đúng tiêu chuẩn chung.
Nếu có ai hỏi, tại sao không dùng CDSL để chứa account của người dùng mà
phải đụng tới LDAP. Câu trả lời là: vẫn có thể dùng CSDL cho mục đích đó. Tuy
nhiên, CSDL không linh động bằng vì mỗi CSDL có những điểm khác nhau. LDAP
như một bộ phận độc lập dùng để lưu dữ liệu, bất cứ hệ thống nào cần thông tin về
user account (chẳng hạn), đều có thể share chung một (hoặc nhiều LDAP có cùng
thông tin). Thử hình dung một hệ thống có 100 UNIX server và mỗi server phải bảo
trì 1 /etc/passwd file. Làm cách nào để đồng bộ hóa 100 /etc/passwd file một cách
bảo đảm, gọn gàng? Ngoài hệ thống NIS (và NIS+) cho mục đích này, càng ngày
càng nhiều hệ thống tích hợp và sử dụng LDAP vì nó không giới hạn platform.
LDAP đóng vai trò rất quan trọng trong việc ứng dụng SSO (single sign on).
Điều này có nghĩa là một người đăng nhập vào một hệ thống, người ấy có thể truy
cập đến các servers / services / tài nguyên... cho phép mà không cần phải xác thực
Trang 5
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
lại. Thử hình dung việc logon mail.yahoo.com, sau đó có thể nhảy đến yahoo 360,
yahoo mailing list.... mà không cần phải xác thực tài khoản nữa. Thử hình dung
yahoo sẽ có những dịch vụ khác và mỗi yahoo account chỉ cần chứa ở 1 nơi và các
dịch vụ để dùng chung một LDAP chứa account để xác thực người dùng. Thử hình
dung yahoo có 1000 servers và 1000 /etc/passwd file để bảo trì ).
Ngoài ra, LDAP được tạo ra đặc biệt cho hành động "đọc". Bởi thế, xác thực
người dùng bằng phương tiện "lookup" LDAP nhanh, hiệu suất, ít tốn tài nguyên,
đơn giản hơn là query 1 user account trên CSDL.
Trang 6
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
MỤC LỤC
Trang 7
Báo cáo đồ án chuyên ngành
I.
GVHD : ThS Nguyễn Như Hoa
GIỚI THIỆU TỔNG QUAN
1. Giới thiệu tổng quan về Linux
Giới thiệu về Linux
Linux
Vào những năm đầu của thập kỷ 90, Linus Tovarlds - một sinh viên đại học
tổng hợp Helsinki (Phần Lan) - qua quá trình mày mò nghiên cứu cách làm việc của
máy tính PC có trang bị bộ xử lý 386 trên hệ điều hành Minix (là hệ điều hành Unix
cỡ nhỏ). Do có sự hạn chế của hệ điều hành này, Linus đã viết lại một số phần mềm
để thêm các chức năng cho nó. Hệ điều hành mới ra đời với tên gọi là Linux - (chữ
viết tắt của Linus và Unix). Ông ta đã công bố kết quả của mình miễn phí trên
Internet và ông ta cũng không thể ngờ rằng chính điều này đã khiến cho Linux có
một sự phát triển chóng mặt và đã trở thành một hệđiều hành tiên tiến nhất, ổn
định nhất và phổ biến nhất hiện nay trên phạm vi toàn thế giới.
a. Khái niệm Linux
Linux được tạo thành bởi các module hoạt động độc lập với
nhau, người dùng có thể tự xây dựng kernel (nhân) cho hệ điều hành
của mình bằng cách thêm những module cần thiết vào. Vì vậy hệ
thống Linux có tính linh hoạt cao hơn Windows. Thường Linux được
Trang 8
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
sử dụng làm máy chủ nhiều hơn là làm máy trạm vì việc cấu hình cho
Linux phức tạp hơn nhiều vì thường phải dùng command line để cấu
hình chứ không có giao diện đồ hoạ như Windows. Hệ thống chạy trên
Linux thường nhanh hơn và ổn định hơn là chạy trên Windows. Sở dĩ
Linux chưa được dùng nhiều cho máy tính cá nhân vì nó hỗ trợ giao
diện đồ hoạ chưa tốt. Tuy nhiên, hiện nay một số phiên bản mới của hệ
điều hành dạng Linux có giao diện đồ hoạ tương đối tốt (như Centos,
Solais, Fedora, v.v....).
b. Các phiên bản hệ điều hành Linux
c. Những ưu, nhược điểm của HĐH Linux.
Những ưu điểm:
Vấn đề bản quyền.
Trong bối cảnh nền kinh tế thế giới đang có xu hướng toàn cầu hóa
như hiện nay thì đây là một vấn đề nổi cộm. Ở Việt Nam, vấn đề vi
phạm bản quyền phần mềm là rất phổ biến (nước ta dẫn đầu thế giới
về số lượng phần mềm dùng không có bản quyền).
Trang 9
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
Trước tình hình đó, việc tự xây dựng cho mình những phần mềm
thương hiệu Việt Nam đang trở nên một vấn đề cấp bách. Phần mềm
mã nguồn mở được xem là một giải pháp hữu hiệu nhất cho bài toán
bản quyền ở nước ta hiện nay. Phần mềm mã nguồn mở một mặt có
chi phí rẻ hơn so với các phần mềm truyền thống, mặt khác rất dễ
nâng cấp, cải tiến (do cung cấp mã nguồn kèm theo). Chính vì thế,
phát triển phần mềm mã nguồn mở chúng ta có thể tận dụng được
những công nghệ tiên tiến có sẵn trên thế giới, cải tiến cho phù hợp
với người Việt Nam, tiết kiệm được rất nhiều công sức so với việc phát
triển từ đầu. Linux là một HĐH mã nguồn mở như vậy!!
Kỹ thuật nổi bật của Linux.
Kinh tế: đó là một đặc điểm không thể bỏ qua của Linux (ít nhất là
đối với nước ta hiện nay). Tuy nhiên đối với Linux đó vẫn chưa là tất
cả. HĐH này còn rất nhiều ưu điểm khác mà không một hệ điều hành
nào có. Chính những đặc điểm này mới là nguyên nhân khiến cho
Linux ngày càng trở nên phổ biến không chỉ ở Việt Nam mà cả ở trên
thế giới
Linh hoạt, uyển chuyển : Có thể chỉnh sửa Linux và các ứng dụng
trên đó sao cho phù hợp với mình nhất. Việc Việt hóa Windows được
xem là không thể nếu như bạn không có sự đồng ý và hỗ trợ của
Microsoft. Tuy nhiên với Linux thì bạn có thể làm được điều này một
cách đơn giản hơn.( tham khảo thêm Sản phẩm Việtkey Linux đã đoạt
giải nhất TTVN 2002) Mặt khác do Linux được một cộng đồng rất lớn
những người làm phần mềm cùng phát triển trên các môi trường,
hoàn cảnh khác nhau nên tìm một phiên bản phù hợp với yêu cầu của
bạn sẽ không phải là một vấn đề quá khó khăn. Tính linh hoạt của
Linux còn được thể hiện ở chỗ nó tương thích được với rất nhiều môi
trường. Hiện tại, ngoài Linux dành cho server,máy tính để bàn...nhân
Linux (Linux kernel) còn được nhúng vào các thiết bị điều khiển như
Trang 10
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
máy tính palm, robot.....Phạm vi ứng dụng của Linux được xem là rất
rộng rãi.
Độ an toàn cao: Ngoài ra chính tính chất "mở" cũng tạo nên sự an
toàn của Linux. Nếu như một lỗ hổng nào đó trên Linux được phát
hiện thì nó sẽ được cả cộng đồng mã nguồn mở cùng sửa vàthường
thì chỉ sau 24h sẽ có thể cho ra bản sửa lỗi. Mặt khác đối với những
HĐH mã nguồn đóng như Windows, bạn không thể biết được người ta
viết gì, và viết ra sao mà chỉ biết đươc chúng chạy như thế nào. Vì vậy
nếu như Windows có chứa những đoạn mã cho phép tạo những "back
door" để xâm nhập vào hệ thống của bạn thì bạn cũng không thể biết
được. Đối với người dùng bình thường như chúng ta vấn đề này có vẻ
như không quan trọng nhưng đối với một hệ thống tầm cỡ như hệ
thống quốc phòng thì vấn đề như thế này lại mang tính sống còn. Các
nhân viên an ninh không được phép để lộ một kẽ hở nào, dù là nhỏ
nhất vì nó liên quan đến an ninh của cả một quốc gia.Và một lần nữa
các phần mềm mã nguồn mở nói chung và Linux nói riêng lại là sự lựa
chọn số 1. Trong Linux mọi thứ đều công khai, người quản trị có thể
tìm hiểu tới mọi ngõ ngách của hệ điều hành. Điều đó cũng có nghĩa là
độ an toàn được nâng cao.
Thích hợp cho quản trị mạng: Được thiết kế ngay từ đầu cho chế độ
đa người dùng, Linux được xem là một hệ điều hành mạng rất giá trị.
Nếu như Windows tỏ ra là một HĐH thích hợp với máy tính Desktop
thì Linux lại là hệ điều hành thống trị đối với các Server. Đó là do
Linux có rất nhiều ưu điểm thỏa mãn đòi hỏi của một hệ điều hành
mạng: tính bảo mật cao, chạy ổn định, các cơ chế chia sẻ tài nguyên
tốt.....Giao thức TCP/IP mà chúng ta vẫn thấy ngày nay chính là một
giao thức truyền tin của Linux (sau này mới được đưa vào Windows)
Chạy thống nhất trên các hệ thống phần cứng: Dù cho có rất nhiều
phiên bản Linux được các nhà phân phối khác nhau ban hành nhưng
nhìn chung đều chạy khá ổn định trên mọi thiết bị phần cứng, từ Intel
Trang 11
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
486 đến những máy Pentium mới nhất, từ những máy có dung lượng
RAM chỉ 4MB đến những máy có cấu hình cực mạnh (tất nhiên là tốc
độ sẽ khác nhau nhưng về nguyên tắc vẫn có thể chạy được). Nguyên
nhân là Linux được rất nhiều lập trình viên ở nhiều môi trường khác
nhau cùng phát triển (không như Windows chỉ do Microsoft phát
triển) và bạn sẽ bắt gặp nhiều người có "cùng cảnh ngộ" như mình và
dễ dàng tìm được các driver tương ứng với thiết bị của mình . Tính
chất này hoàn toàn trái ngược với Windows. Mỗi khi có một phiên bản
Windows mới ra đời thì bao giờ kèm theo đó cũng là một cơn khát về
phần cứng vì HĐH mới thường không hỗ trợ các thiết bị quá cũ.
Một vài nhược điểm cố hữu của Linux :
Đòi hỏi người dùng phải thành thạo.
Trước kia việc sử dụng và cấu hình Linux được xem là một công
việc chỉ dành cho những chuyên gia. Hầu như mọi công việc đều thực
hiện trên các dòng lệnh và phải cấu hình nhờ sửa trực tiếp các file.
Mặc dù trong những phiên bản gần đây, các HĐH Linux đã có những
cải tiến đáng kể, nhưng so với Windows tính thân thiện của Linux vẫn
còn là một vấn đề lớn. Đây là một trong những nguyên nhân chủ yếu
khiến Linux mặc dù có rất nhiều đặc tính kỹ thuật tốt nhưng vẫn chưa
đến được với người dùng cuối.
Tính tiêu chuẩn hóa.
Linux được phát hành miễn phí nên bất cứ ai cũng có thể tự
mình đóng gói, phân phối theo những cách riêng. Hiện tại có khá
nhiều bản Linux phát triển từ một nhân ban đầu cùng tồn tại như:
RedHat, SuSE, Knoppix..... Người dùng phải tự so sánh xem bản nào là
phù hợp với mình. Điều này có thể gây khó khăn cho người dùng, nhất
là những người còn có kiến thức về tin học hạn chế
Số lượng các ứng dụng chất lượng cao trên Linux còn hạn
chế.
Trang 12
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
Mặc dù Windows có sản phẩm nào thì Linux cũng gần như có
phần mềm tương tự.(VD: OpenOffice trên Linux tương tự như
MSOffice, hay GIMP tương tự như Photoshopv..v..) Tuy nhiên chất
lượng những sản phẩm này là chưa thể so sánh được với các sản
phẩm viết cho Windows.
Một số nhà sản xuất phần cứng không có driver hỗ trợ Linux.
Do hiện nay Linux chưa phổ biến bằng Windows nên nhiều nhà
sản xuất không hỗ trợ các driver chạy trên Linux. Tuy nhiên bạn vẫn
có thể tìm thấy các driver này do ai đó trong cộng đồng mã nguồn mở
viết.
Linux có một số nhược điểm mang tính cố hữu như vậy nhưng
bạn vẫn có thể chạy được một số chương trình Windows trên nên
Linux thông qua chương trình WINE.( một chương trình giả lập để
chạy các ứng dụng Windows trên Linux) Do đó bạn có thể tận dụng
được các ưu điểm của Windows lẫn Linux.
Kết luận.
Trên cơ sở nhìn nhận một cách khách quan các ưu nhược điểm
của HĐH Linux cũng như xem xét xu hướng phát triển tin học ở nước
ta có thể thấy: Đối với người dùng thông thường việc chuyển từ
Windows sang Linux trong ngày một ngày hai là chưa thể. Tuy nhiên
đối với những người làm tin học, đặc biệt là đối với sinh viên chúng ta,
việc tìm hiểu và nghiên cứu Linux và phần mềm mã nguồn mở là một
điều kiện rất tốt để nâng cao hiểu biết của mình. Linux dẫu sao vẫn là
một hệ điều hành rất có giá trị: chi phí thấp, linh hoạt, ổn đinh, và bảo
mật cao. Trong tương lai gần, Linux sẽ dần dần trở thành một trong
những hệ điều hành hàng đầu trên thế giới.
Trang 13
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
2. Giới thiệu về LDAP
LDAP (Lightweight Directory Access Protocol) là một chuẩn mở rộng cho
giao 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 “lightweight ” có nghĩa là đây là một giao thức có tính
hiệu quả, đơn giản và dễ dàng để cài đặt. Trong khi chúng sử dụng các hàm ở mức
cao. Điều này trái ngược với giao thức “heavyweight” như là giao thức truy cập thư
mục X.500 (DAP). Giao thức này sử dụng các phương thức mã hoá quá phức tạp.
LDAP sử dụng các tập các phương thức đơn giản và là một giao thức thuộc tầng
ứng dụng.
LDAP đã phát triển với phiên bản LDAP v2 được định nghĩa trong chuẩn RFC
1777 và 1778, LDAP v3 là một phần trong chuẩn Internet, được định nghĩa trong
RFC 2251 cho đến RFC 2256, do chúng quá mới nên không phải tất cả các nhà cung
cấp hỗ trợ hoàn toàn cho LDAP v3.
Các tổ chức tích hợp LDAP trong sản phẩm của mình :
Ngoài vai trò như là một thủ tục mạng, LDAP còn định nghĩa ra bốn mô hình, các
mô hình này cho phép linh động trong việc sắp đặt các thư mục:
Mô hình LDAP information - định nghĩa ra các loại dữ liệu mà bạn cần đặt vào
thư mục.
Trang 14
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
Mô hình LDAP Naming - định nghĩa ra cách bạn sắp xếp và tham chiếu đến thư
mục.
Mô hình LDAP Functional - định nghĩa cách mà bạn truy cập và cập nhật thông
tin trong thư mục của bạn.
Mô hình LDAP Security - định nghĩa ra cách thông tin trong trong thư mục của
bạn được bảo vệ tránh các truy cập không được phép.
Ngoài các mô hình ra LDAP còn định nghĩa ra khuôn dạng để trao đổi dữ liệu
LDIF (LDAP Data Interchange Format), ở dạng thức văn bản dùng để mô tả thông
tin về thư mục . LDIF còn có thể mô tả một tập hợp các thư mục hay các cập nhật có
thể được áp dụng trên thư mục
II.
Giới thiệu tổng quan về LDAP server
1. Lịch sử ra đời của LDAP
Vào giữa thập niên 1980, Ủy ban Tư vấn Điện thoại - Điện tín quốc tế
(International Telegraph and Telephone Consultative Committee -CCITT), tiền thân
của Liên minh Viễn thông quốc tế (International Telecommunication Union - ITU)
và Tổ chức Tiêu chuẩn hóa quốc tế (International Organization for Standardization
- ISO) đã hợp tác với nhau để tạo ra một chuẩn mới cho dịch vụ thư mục nhằm mục
đích thống nhất nỗ lực của 2 tổ chức. Cuối năm 1988, CCITT đã công bố chuẩn dịch
vụ thư mục X.500 đầu tiên. Sau đó, chuẩn này đã được cập nhật vào các năm 1993,
1997, và 2001.
Khi mới xuất hiện, X.500 đã mang lại rất nhiều tiện ích cho người dùng. Nhưng
sau này, nó bộc lộ những khiếm khuyết của mình. Một trong những khiếm khuyết
Trang 15
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
đó nằm ở giao thức DAP (tiếng Anh: Directory client Access Protocol - giao thức
truy cập thư mục khách) của X.500. Giao thức này tương đối phức tạp, không thích
hợp và không có sẵn trên các máy tính thời đó. Bên cạnh đó, DAP cũng khá cồng
kềnh và khó hiện thực. Vì những lý do đó, người ta bắt đầu nghĩ đến một cách tiếp
cận mới để tránh việc phải hiện thực một giao thức phức tạp như vậy
Vào khoảng năm 1990, 2 giao thức đơn giản hóa của DAP, gọi là DAS (Directory
Assistance Service) và DIXIE (Directory Interface to X.500 Implemented Efficiently)
đã được định nghĩa lần lượt trong RFC 1202 và RFC 1249.
Sau sự ứng dụng thành công của DIXIE và DAS, các thành viên của OSI-DS quyết
định tăng cường nguồn lực vào việc tạo ra một giao thức truy cập thư mục đơn
giản hóa với đầy đủ tính năng cho X.500. Đó chính là LDAP
2. Phương thức hoạt động của LDAP
Ldap dùng giao thức giao tiếp client/sever
• Giao thức giao tiếp client/sever là một mô hình giao thức giữa một chương
trình client chạy trên một máy tính gởi một yêu cầu qua mạng đến cho một
máy tính khác đang chạy một chương trình sever (phục vụ). Chương trình
server này nhận lấy yêu cầu và thực hiện sau đó nó trả lại kết quả cho
chương trình client. Ý tưởng cơ bản của giao thức client/server là công việc
được gán cho những máy tính đã được tối ưu hoá để thực hiện công việc đó.
• Một máy server LDAP cần có rất nhiều RAM (bô nhớ) dùng để lưu trữ nội
dung các thư mục cho các thao tác thực thi nhanh và máy này cũng cần đĩa
cứng và các bộ vi xử lý ở tốc độ cao.
Trang 16
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
Tiến trình hoạt động trao đổi LDAP client/server
• 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 thao 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 xử 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.
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 LDAP.
Thao tác tìm kiếm cơ bản
• Nếu client tìm kiếm thư mục và nhiều kết quả được tìm thấy, thì các kết quả
này được gởi đến client bằng nhiều thông điệp.
Trang 17
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
Những thông điệp Client gửi cho Server
• Do nghi thức LDAP là giao thức hướng 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.
Nhiều kết quả tìm kiếm được trả về
• Việc cho phép nhiều thông điệp cùng xử lý đồng thời làm cho LDAP linh động
hơn các nghi thức khác.
o Ví dụ như HTTP, với mỗi yêu cầu từ client phải được trả lời trước khi
một yêu cầu khác được gởi đi, một client program như là Web
browser muốn tải xuống cùng lúc nhiều file thì Web browser phải thực
hiện mở từng kết nối cho từng file, 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.
Các thao tác của nghi thức LDAP:
•
LDAP có 9 thao tác cơ bản, chia thành 3 nhóm thao tác chính:
Trang 18
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
o 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.
o 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.
o 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.
2.1. Các thao tác mở rộng:
•
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.
o 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. Ví dụ một thao tác
mở rộng là StarTLS, nghĩa là báo cho sever rằng client muốn sử dụng
transport layer security(TLS) để mã hoá và tuỳ chọn cách xác thực khi
kết nối.
o 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.
o 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 19
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
2.2. Mô hình kết nối Client – Server:
•
Sau đây là một là một tiến trình hoạt động trao đổi giữa LDAP client/server:
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:
o 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.
o 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.
o Client phát ra các yêu cầu tìm kiếm.
o 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.
o 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.
o Server đóng kết nối.
3. Cấu trúc file Ldif
3.1. Khái niệm LDIF
LDIF ( LDAP Interchange Format) được định nghĩa trong RFC 2849, là một
chuẩn định dạng file text lưu trữ những thông tin cấu hình LDAP và nội dung thư
mục.
Trang 20
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
File LDIF thường được sử dụng để import dữ liệu mới vào trong directory của
bạn hoặc thay đổi dữ liệu đã có. Dữ liệu trong file LDIF cần phải tuân theo một luật
có trong schema của LDAP directory.
Schema là một loại dữ liệu đã được định nghĩa từ trước trong directory của bạn.
Mọi thành phần được thêm vào hoặc thay đổi trong directory của bạn sẽ được kiểm
tra lại trong schema để đảm bảo sự chính xác. Lỗi vi phạm schema sẽ xuất hiện nếu
dữ liệu không đúng với các luật đã có.
Giải pháp Import dữ liệu lớn vào LDAP. Nếu dữ liệu được lưu trong excel khoảng
vài chục ngàn mẫu tin, viết tool chuyển thành định dạng trên rồi import vào LDAP
Server.
3.2. Cấu trúc tập tin Ldif
Thông thường một file LDIF sẽ theo khuôn dạng sau:
• Mỗi một tập entry khác nhau được phân cách bởi một dòng trắng
• Sự sắp đặt “tên thuộc tính : giá trị”
• Một tập các chỉ dẫn cú pháp để làm sao xử lý được thông tin.
Những yêu cầu khi khai báo nội dung file LDIF :
• Lời chú giải trong file LDIF được gõ sau dấu # trong một dòng
• Thuộc tính được liệt kê phía bên trái của dấu (:) và giá trị được biểu diễn
bên phải. Dấu đặc biệt được phân cách với giá trị bằng dấu cách trắng.
• Thuộc tính dn định nghĩa duy nhất một DN xác định trong entry đó.
Trang 21
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
Ví dụ về cấu trúc một file Ldif:
Trang 22
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
Nội dung một entry thư mục ở dạng Ldif:
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ột entry bao gồm nhiều dòng :
• dn : distinguished name - 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, thuộc tính dùng để lưu giữ
dữ liệu.
• Mỗi thuộc tính trên một dòng theo định dạng 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.
Trang 23
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
Một số các thuộc tính cơ bản trong file Ldif
Trang 24
Báo cáo đồ án chuyên ngành
GVHD : ThS Nguyễn Như Hoa
4. 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.
4.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.
Trang 25