CHƯƠNG I: XÂY DỰNG CÁC HỆ THỐNG QUẢN LÝ THEO MÔ HÌNH CỔNG THÔNG TIN PORTAL 1.1 Giới thiệu về Cổng thông tin điện tử Portal hay Cổng thông tin điện tử được hiểu như là một trang web xuất
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SỸ KỸ THUẬT CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS TẠ TUẤN ANH
HÀ NỘI-2012
Trang 2LỜI CẢM ƠN
Lời đầu tiên em in h n th nh m n thầ các cô trong Viện Công
nghệ thông tin trường Đại họ h ho N i đ gi ng dạ và gi p đ em trong suốt qu tr nh họ t p
Em in h n th nh m n thầ Tạ Tu n nh người đ t n t nh hướng dẫn
đ em th ho n thành lu n văn n
Và tôi ũng in m n l nh đạo bạn đồng nghiệp n i tôi ông t đ
tạo điều kiện tốt nh t ho tôi họ t p v nghiên ứu
Cuối ùng tôi ũng in đượ b tỏ lòng biết n tới gi đ nh v người th n
những người luôn d nh ho tôi sự qu n t m đ ng viên v s t nh ùng tôi trong suốt thời gi n qu
Trang 3MỤC LỤC
MỞ ĐẦU 1
Lý do chọn đề tài 1
Phương pháp nghiên cứu 2
Mô tả phạm vi, nội dung nghiên cứu của luận văn 2
CHƯƠNG I: XÂY DỰNG CÁC HỆ THỐNG QUẢN LÝ THEO MÔ HÌNH CỔNG THÔNG TIN (PORTAL) 4
1.1 Giới thiệu về Cổng thông tin điện tử 4
1.2 Cách phân biệt Portal với ứng dụng web hoặc hệ thống quản trị nội dung 7
1.3 Một số phần mềm lõi cổng thông tin điện tử 12
1.4 Tích hợp các ứng dụng trên cổng thông tin 18
CHƯƠNG II: QUẢN LÝ NGƯỜI DÙNG TRONG CỔNG THÔNG TIN 20
2.1 Mô hình Cơ sở dữ liệu danh bạ người dùng 20
2.1.1 Giới thiệu một số chuẩn về Cơ sở dữ liệu danh bạ người dùng 20
2.1.2 Phương thức hoạt động của LDAP 22
2.2 Hệ thống đăng nhập một cửa SSO với CAS 27
2.2.1 Giới thiệu về hệ thống SSO 27
2.2.2 Dịch vụ chứng thực trung tâm - CAS 30
CHƯƠNG III: GIẢI PHÁP XÂY DỰNG HỆ THỐNG 36
SỬ DỤNG LIFERAY PORTAL 36
3.1 Những yêu cầu cơ bản đối với một hệ thống Cổng thông tin điện tử 36
3.1.1 Yêu cầu về kiến trúc của hệ thống Cổng thông tin điện tử 36
3.1.2 Yêu cầu về chức năng của hệ thống Cổng thông tin điện tử 40
3.1.3 Yêu cầu về kỹ thuật của hệ thống Cổng thông tin điện tử 43
3.2 Phần mềm lõi cổng thông tin LIFERAY 46
3.2.1 Giới thiệu về Liferay 46
3.2.2 Quản lý người dùng trên LIFERAY 49
CHƯƠNG IV: CÁC KẾT QUẢ TRIỂN KHAI ỨNG DỤNG 53
Trang 44.1.1 Cài đặt Liferay 53
4.1.2 Cấu hình môi trường cho hệ thống 54
4.2 Triển khai hạ tầng cổng thông tin 55
4.2.1 Đối tượng người dùng trong hệ thống biotech-hou portal 55
4.2.2 Các trang thông tin: 55
4.3 Triển khai ứng dụng quản lý học tập Courses 57
4.4 Tích hợp ứng dụng quản lý thí nghiệm QLTN_cnsh vào cổng thông tin 65
4.4.1 Giới thiệu về ứng dụng quản lý thí nghiệm QLTN_cnsh 66
4.4.2 Chạy ứng dụng: 69
ĐÁNH GIÁ VÀ KẾT LUẬN 74
TÀI LIỆU THAM KHẢO 75
Trang 5DANH MỤC CÁC HÌNH
Hình 1: Mô hình kết nối giữa client/server 22
Hình 2: Thao tác tìm kiếm cơ bản 23
Hình 3: Những thông điệp Client gửi cho server 23
Hình 4: Nhiều kết quả tìm kiếm được trả về 24
Hình 5: Chứng thực dùng LDAP 26
Hình 6: Ví dụ về một cây thư mục điển hình 26
Hình 7: Khái niệm SSO 27
Hình 8: Người dùng truy cập vào UD khi đ chứng thực với CAS server 30
Hình 9: Người dùng truy cập vào UD mà chưa chứng thực với CAS server 34
Hình10: Mô hình kiến trúc phân tầng của CTTĐT 37
Hình 11: Mô hình cổng thông tin biotech-hou 38
Hình 12: Sơ đồ khái quát về hệ thống người dùng của biotech-hou 39
Hình 13: Đặc điểm của Liferay - đầy đủ những tính năng cần thiết 47
Hình 14: Mỗi liên hệ giữa Vai trò và Permission 50
Hình 15: Giao diện để cấu hình LDAP và CAS trên Liferay 52
Hình 16: Trang chủ của biotech-hou portal 56
Hình 17: Biểu đồ lớp lĩnh vực 58
Hình 18: Các lớp được sinh ra khi chạy ServiceBuilder 64
Hình 19: Nguyên mẫu giao diện 64
Hình 20: Trang đăng ký khóa học dành cho sinh viên 65
Hình 21: Sơ đồ biểu diễn Use Case 66
Hình 22: Cấu hình CAS - Liferay 70
Hình 23: Cấu hình Liferay - LDAP 70
Hình 24: Cấu hình Liferay - LDAP (t.t) 71
Hình 25: Cấu hình Liferay - LDAP (t.t) 71
Hình 26: Cấu hình Liferay - LDAP (t.t) 72
Hình 27: Cấu hình Liferay - LDAP (t.t) 72
Hình 28: Cấu hình Liferay - LDAP 72
Hình 29: Trang liên kết với ứng dụng 73
Hình 30: Trang ứng dụng QLTN-biotech 73
Trang 6DANH MỤC CÁC BẢNG
Bảng 1:Mô tả thuộc tính URI 32
Bảng 2: Bảng tên các khóa học 58
Bảng 3: Bảng lưu thông tin sinh viên 59
Bảng 4: Bảng phòng học 59
Bảng 5: Bảng giảng viên phụ trách môn học 59
Bảng 6: Bảng giảng viên 59
Bảng 7: Bảng môn học 59
Bảng 8: Bảng lưu thông tin sinh viên viết lời bình (Comment) 60
Bảng 9: Bảng lưu thông tin những ngày nghỉ trong khóa học 60
Bảng 10: Danh mục các bảng trên ứng dụng 69
DANH MỤC CÁC CHỮ VIẾT TẮT
Trang 7MỞ ĐẦU
Lý do chọn đề tài
Trong thời đại hội nhập kinh tế toàn cầu, thông tin ngày càng trở thành nguồn tài nguyên vô giá, vấn đề trao đổi thông tin là rất trọng và cấp thiết, mạng máy tính giúp cho mọi nguời tiếp cận, trao đổi những thông tin mới nhất một cách nhanh chóng, thuận tiện Cùng với nó là các dịch vụ đi kèm đ mang lại những lợi ích không thể phủ nhận
Một trong những dịch vụ trên Internet là việc xây trang web mà từ đó người
sử dụng có thể dễ dàng truy xuất các trang web và các dịch vụ thông tin khác trên mạng máy tính một cách tiện lợi, dễ sử dụng đó chính là các web Portal
Và vấn đề lớn hiện nay đối với mỗi một Portal là chưa thể tích hợp tất cả các ứng dụng để dùng chung cơ sở dữ liệu, tức là nguời dùng chưa có một tài khoản duy nhất cho việc đăng nhập các chương trình dùng chung khi làm việc và tài khoản này
sẽ là tài khoản duy nhất
Điều được hiểu một cách đơn giản là việc quy về một tài khoản như thế này cho các chương trình là một việc rất cần thiết Nó giống như ở trong một tòa nhà hiện đại, với những phòng ốc chức năng và quyền hạn khác nhau, một người với một cái thẻ trên tay, anh ta có thể đi đến đâu ở bất kỳ chỗ nào trong tòa nhà và anh
ta chỉ có thể làm được những nhiệm vụ gì đối với cái thẻ đó khi anh ta vào một phòng nhất định
Website của Khoa Công nghệ sinh học một cổng thông tin thành viên của Công thông tin của Đại học Mở Hà Nội, với sự phân cấp sâu về tuyển sinh cũng như quản lý đào tạo, trang thông tin của Khoa công nghệ sinh học cũng có đầy đủ các thành phần giống như website hoàn chỉnh, tại đó người dùng là khách có thể truy cập để nắm được những thông tin, sinh viên có thể xem điểm, xem thời khóa biểu, thông báo, truy cập thư viện điện tử…., giảng viên đăng ký giờ giảng, dạy học trực tuyến, tra cứu lương,…
Hiện trang giống như trang website khác đ nêu ở trên trang của khoa cũng chỉ
Trang 8của Khoa nói riêng và của trường hoặc những trang khác đều phải có username/password riêng biệt, trang của khoa không có sự phân cấp và phân quyền giữa người quản trị, giảng viên và sinh viên Cùng với nó trên nền tảng đ được thiết kế sẵn các ứng dụng muốn tích hợp vào cũng rất khó khăn
Chính vì những lý do đó em xin đề xuất xây dựng một portal mà ở đó có sự phân quyền rõ ràng giữa người dùng và trên nền tảng đ sẵn có tích hợp lên hệ thống những ứng dụng khác theo cơ chế Single Sign On
Cụ thể là xây dựng một trang thông tin cho Khoa công nghệ sinh học, xây dựng cho sinh viên một trang riêng quản lý đăng ký học tập và một phần mềm quản
lý thí nghiệm được tích hợp vào cổng thông tin theo mô hình SSO để làm nền tảng phát triển thêm những ứng dụng sau này mà không phải thiết kế lại cổng thông tin
Phương pháp nghiên cứu
Nghiên cứu lý thuyết về cổng thông tin điện tử, trên cơ sở đó chọn phần mềm lõi cổng thông tin phù hợp với việc thiết kế xây dựng một cổng thông tin có
hỗ trợ quản lý người dùng và bảo mật thông tin
Mô tả phạm vi, nội dung nghiên cứu của luận văn
Trong luận văn này em nghiên cứu thiết kế một portal thực tế của đơn vị là Khoa công nghệ sinh học, Viện Đại học Mở Hà Nội theo hướng sau:
- Phân quyền người sử dụng để đảm bảo tính bảo mật thông tin
- Dùng SSO để đăng nhập một cửa để người dùng tiện lợi dễ sử dụng và tận dụng được nguồn tài nguyên sẵn có không phải xây dựng lại nhiều, cụ thể là tích hợp một ứng dụng web phát triển đ được xây dựng nền tảng thích hợp để có thể giao tiếp trên SSO server phục vụ cho đăng nhập một cửa
- Lựa chọn phần mềm lõi cổng thông tin thích hợp để xây dựng cổng thông tin cho đơn vị
Nội dụng luận văn gồm 4 chương:
Chương 1: Xây dựng các hệ thống quản lý theo mô hình cổng thông tin
Chương 2: Quản lý người dùng trong portal
Trang 9Chương 3: Giải pháp xây dựng hệ thống sử dụng liferay
Chương 4: Các kết quả triển khai ứng dụng
Đánh giá và kết luận
Trang 10CHƯƠNG I: XÂY DỰNG CÁC HỆ THỐNG QUẢN LÝ THEO MÔ HÌNH
CỔNG THÔNG TIN (PORTAL) 1.1 Giới thiệu về Cổng thông tin điện tử
Portal hay Cổng thông tin điện tử được hiểu như là một trang web xuất phát
mà từ đó người sử dụng có thể dễ dàng truy xuất các trang web và các dịch vụ thông tin khác trên mạng máy tính Lợi ích lớn nhất mà portal đem lại là tính tiện lợi, dễ
sử dụng Thay vì phải nhớ vô số các địa chỉ khác nhau cho các mục đích sử dụng khác nhau, thì người dùng chỉ cần nhớ đến một web portal nào đó, ở trong đó nhà cung cấp dịch vụ đ tích hợp mọi thứ mà người dùng cần
Portal là nơi tích hợp trên môi trường web các kênh thông tin, các ứng dụng được phân phối tới người dùng khác nhau tùy thuộc vào nhóm quyền, nhu cầu cũng như mục đích sử dụng của người dùng đó
Tùy thuộc vào mục đích cung cấp dịch vụ cho người dùng cuối mà ta có những cổng thông tin như sau:
Cổng thông tin ông ng (Publi port ls): Khi muốn ghép nối các thông tin
lại với nhau từ nhiều nguồn, nhiều ứng dụng và từ nhiều người ta dùng loại cổng thông tin này Ngoài ra nó còn cho phép cá nhân hóa (personalization) các website theo từng đối tượng người dùng Ví dụ Yahoo
Cổng thông tin do nh nghiệp (Enterprise port l h Corpor te Desktops):
Cổng thông tin này được xây dựng để cho phép các thành viên của doanh nghiệp sử dụng và tương tác trên các thông tin hay ứng dụng nghiệp vụ tác nghiệp của doanh nghiệp
Cổng gi o dị h điện tử (M rketpl e port ls): Là nơi liên kết giữa người bán
và người mua Ví dụ: eBay, ChemWeb
Cổng thông tin ứng dụng hu ên biệt (Spe i lized port ls): Ví dụ như SAP
portal, cổng thông tin loại này cung cấp các ứng dụng chuyên biệt khác nhau
Cổng thông tin điện tử l m t trung t m tí h hợp thông tin; l đi m tru p
t p trung v du nh t; tí h hợp kênh thông tin dị h vụ ứng dụng; l m t
Trang 11s n phẩm hệ thống phần mềm đượ ph t tri n trên m t s n phẩm phần mềm lõi ổng (Port l Core) thự hiện tr o đổi thông tin dữ liệu với hệ thống thông tin đồng thời thự hiện ung p v tr o đổi thông tin với người sử dụng thông qu m t phư ng thứ thống nh t trên nền t ng Web tại b t kỳ thời đi m n o v từ b t kỳ
đ u
h i niệm n kh ho n to n với kh i niệm tr ng thông tin điện tử vốn hỉ
đ n thuần l m t đ n th ung p thông tin đ l p
Như vậy, ta có thể thấy Cổng thông tin điện tử được thiết kế trở thành một
trung tâm tích hợp thông tin ứng dụng v dị h vụ Với CTTĐT, người dùng chỉ cần
đăng nhập một lần là có thể truy cập được đến các hệ thống thông tin đ được tích hợp vào CTTĐT, từ đó có thể tìm kiếm và khai thác thông tin, ứng dụng và dịch vụ thông qua môi trường duy nhất
Các tính năng nền tảng
Các loại cổng thông tin đều có chung một số tính năng cơ bản Người ta xem các tính năng đó như một tiêu chuẩn để phân biệt portal với một website tổng hợp tin tức, ứng dụng quản trị nội dung website, hoặc một ứng dụng chạy trên nền Web
h năng nh n ho (Customiz tion h Person liz tion):
Portal được hiển thị theo nhiều cách khác nhau tùy thuộc vào đối tượng người dùng hay nhóm người sử dụng Mỗi cá nhân có thể tự chỉnh sửa cách thể hiện thông tin, ứng dụng theo yêu cầu sử dụng
Tí h hợp nhiều loại thông tin (Content ggreg tion)
Đây là một đặc tính quan trọng của hệ thống portal, đặc tính này thể hiện
portal có thể mở rộng được hay không Đặc tính này thể hiện qua thuật ngữ "ghép là
hạ ", có nghĩa là khi cần mở rộng thêm thành phần (module) dịch vụ mới, thì chỉ
cần điều chỉnh và tích hợp lại thông tin của module dịch vụ đó một cách đơn giản, nhanh chóng và tức thì đối với hệ thống mà không phải biên dịch lại hoặc viết lại
m chương trình
Ngoài ra cổng thông tin cho phép tích hợp nội dung thông tin từ nhiều nguồn
Trang 12tin sẽ được xác định qua các ngữ cảnh hoạt động của người dùng (User-specific Context), ví dụ như đối với từng đối tượng sử dụng sau khi trải qua quá trình xác thực thì sẽ được cung cấp các thông tin khác nhau, hoặc nội dung thông tin sẽ được cung cấp khác nhau trong quá trình cá nhân hoá thông tin
Xu t b n thông tin (Content s ndi tion)
Một trong những đặc tính quan trọng của portal là xuất bản thông tin cho người dùng cuối qua các tiêu chuẩn đ được công bố và thừa nhận trên toàn thế giới Với các dữ liệu được xuất bản theo tiêu chuẩn này, người dùng cuối có thể khai thác, sử dụng mà không cần thông qua giao diện tương tác của hệ thống mà sử dụng một số phần mềm của h ng thứ 3
ỗ trợ nhiều môi trường hi n thị thông tin (Multidevi e support)
Cho phép hiển thị cùng một nội dung thông tin trên nhiều loại thiết bị khác nhau như: màn hình máy tính (PC), thiết bị di động (Mobile Phone, Smart phone, PDA), định dạng gửi ra máy in hoặc thiết bị Fax, một cách tự động bằng cách định dạng hiển thị tài liệu tùy thuộc vào loại thiết bị và phương thức hiển thị trên các thiết bị đó
h năng đăng nh p m t lần (Single Sign On)
Đây là một tính năng rất quan trọng để phân biệt Portal với web truyền thống Khi hệ thống cung cấp tính năng này, người sử dụng chỉ cần đăng nhập đúng một (01) lần duy nhất khi bắt đầu sử dụng hệ thống, mỗi khi dịch chuyển giữa các màn hình làm việc hoặc các module nghiệp vụ thì không cần phải đăng nhập lại và khi
đó các thành phần của hệ thống phải tự nhận biết được đó là người sử dụng nào, thẩm quyền đến đâu Khi ta đăng nhập vào hệ thống thì ta có thể vào các mục tiện ích của trang web mà không cần đăng nhập lại
Qu n trị port l (Port l dministr tion)
Cung cấp giao diện backend hỗ trợ quản trị hệ thống cổng thông tin từ xa qua giao diện web Cho phép người quản trị xác định, điều chỉnh cách thức hiển thị kênh thông tin, nội dung thông tin và định dạng chi tiết đồ họa (Look-and-Feel) Ngoài ra, người quản trị còn có khả năng định nghĩa các nhóm người sử dụng,
Trang 13quyền truy cập và sử dụng thông tin trên các kênh thông tin được thiết lập trên cổng
Qu n trị người dùng (Port l user m n gement)
Tính năng này cung cấp các khả năng quản trị người dùng cuối, tuỳ thuộc vào đối tượng sử dụng của hệ thống Tại đây, người sử dụng có thể tự đăng ký trở thành thành viên hoặc được người quản trị tạo lập và gán quyền sử dụng tương ứng Đồng thời, hệ thống phải hỗ trợ và tích hợp công việc quản trị và xác thực người dùng bằng tiêu chuẩn công nghiệp LDAP Mặt khác, phân quyền sử dụng phải mềm dẻo
và có thể thay đổi được khi cần
Cung cấp các khả năng quản trị người dùng cuối Chức năng này tập trung vào
3 nhiệm vụ chính là quản lý thông tin người dùng (User Profile), quản lý xác thực truy cập (Authentication) và quản lý việc phân quyền (Authorization) Chức năng đăng ký có thể thực hiện theo nhiều cách tùy theo số lượng thành viên nhiều hay ít: Người quản trị có thể thiết lập cấu hình cho phép người sử dụng có thể tự đăng
ký trở thành thành viên và được phép sử dụng sau khi tài khoản đăng ký được phê chuẩn
Người quản trị tạo lập và gán quyền sử dụng cho người sử dụng, sau đó thông báo cho người sử dụng biết (bằng điện thoại, email, )
Hiện tại phương pháp phân quyền sử dụng dựa trên vai trò (Role-based security) được sử dụng như một tiêu chuẩn trong các hoạt động xác định quyền truy cập và cung cấp thông tin cho các đối tượng khác nhau trong các CTTĐT cũng như các ứng dụng Web Ngoài ra, việc quản lý tài khoản và phân quyền cho người dùng được quản lý tập trung thống nhất xuyên suốt trong toàn hệ thống dựa trên tiêu chuẩn Directory Service (ví dụ LDAP)
1.2 Cách phân biệt Portal với ứng dụng web hoặc hệ thống quản trị nội dung
Hiện nay trên thị trường có khá nhiều giải pháp hoặc sản phẩm portal, mỗi sản phẩm có một sắc thái riêng, sử dụng công nghệ riêng, phục vụ cho đối tượng
riêng, và chính sự "đ dạng" này dẫn tới tình trạng khó chọn lựa một giải pháp
Trang 14ta phải phân biệt được giữa giải pháp portal với một ứng dụng web hay một phần mềm quản trị nội dung, từ đó mới có thể lựa chọn giải pháp phù hợp
Mỗi portal được phát triển mới hoặc cung cấp từ những hệ thống có bản quyền thương mại đều tập trung giải quyết một lớp vấn đề nghiệp vụ cụ thể và thực
tế Vì vậy không phải mọi tính năng về portal đều phải có trên portal mà bạn muốn kiểm nghiệm
Các tiêu chí được sử dụng để đánh giá nhằm phân biệt giữa portal với một ứng dụng web hay hệ thống quản trị nội dung là các tính năng bắt buộc phải có đối với một portal như đ nêu trên
Khả năng cá nhân hoá (Personalization): Để đánh giá tính năng này ta có thể
thấy khi cung cấp thông tin cho nhiều người dùng khác nhau hoặc nhiều cấp độ người dùng khác nhau thì phải có kết quả hiển thị khác nhau: Nếu với hai người dùng khác nhau hoặc với hai cấp độ sử dụng (quyền) khác nhau và thông tin hiển thị vẫn giống nhau, thì có thể thấy ngay rằng hệ thống này không có phép cá nhân hoá thông tin và có thể đi đến kết luận cuối cùng rằng đó không phải là hệ thống portal
Khả năng tích hợp nhiều loại thông tin (Content aggregation): Đây là một đặc
tính quan trọng bậc nhất của hệ thống portal, đặc tính này thể hiện portal có thể mở
rộng được hay không Đặc tính này thể hiện qua thuật ngữ "ghép l hạ ", có nghĩa
là khi cần mở rộng thêm thành phần (module) dịch vụ mới, thì chỉ cần điều chỉnh và tích hợp lại thông tin của module dịch vụ đó một cách đơn giản, nhanh chóng và tức thì đối với hệ thống mà không phải biên dịch lại hoặc viết lại m chương trình
Để kiểm định tính năng này, trước hết h y thử với cách thức hệ thống tích hợp thông tin từ nhiều module dịch vụ khác nhau của hệ thống Ví dụ như hiển thị một nội dung bài viết trong một màn hình, bên cạnh đó là danh sách các chủ đề thảo luận trong forum Tại đây có thể có nhiều kết quả khác nhau như: Nếu ứng dụng
được tích hợp vào portal mà phải “bẻ” m (code) của website ra để viết thêm
module về màn hình, các liên kết trang, các truy cập cơ sở dữ liệu mới, một hệ
Trang 15thống phân quyền sử dụng mới, v.v thì hệ thống đó không gọi là có tính mở được
và hệ thống đó không phải là giải pháp portal
Khả năng xuất bản thông tin theo tiêu chuẩn (Content syndication): Một trong
những đặc tính quan trọng của portal là xuất bản thông tin cho người dùng cuối qua các tiêu chuẩn đ được công bố và thừa nhận trên toàn thế giới Với các dữ liệu được xuất bản theo tiêu chuẩn này, người dùng cuối có thể khai thác, sử dụng mà không cần thông qua giao diện tương tác của hệ thống mà sử dụng một số phần mềm của h ng thứ 3 Hiện tại có nhiều chuẩn xuất bản thông tin, nhưng tất cả các chuẩn xuất bản thông tin được ủng hộ và sử dụng nhiều nhất trên thế giới đều lấy cơ
sở ngôn ngữ đánh dấu mở rộng XML (eXtensible Markup Language) làm nền tảng, đáng kể là RDF (Resource Description Format), RSS (Realy Simple Syndication), NITF (News Industry Text Format), NewsML và ATOM Syndication Format Hiện tại có 2 tiêu chuẩn được sử dụng rộng r i nhất là RSS và ATOM
Để kiểm định tính năng này, hệ thống này phải xuất bản thông tin từ một hoặc nhiều module dịch vụ khác nhau thành các tài liệu theo tiêu chuẩn RSS hoặc ATOM Nếu hệ thống có thể xuất bản tài liệu ra tiêu chuẩn RSS, nhưng cần phải
"bẻ" m chương trình ra chỉnh sửa lại thì có thể kết luận hệ thống có khả năng xuất
bản thông tin với chuẩn nhưng không phải là portal
Nếu có khả năng xuất bản ngay tức thì nội dung thành RSS, thì h y thử với việc xuất bản thông tin có đầy đủ nội dung chứ không chỉ tóm tắt như tài liệu RSS
đ cung cấp, nếu nhà cung cấp không thể làm được hoặc không thể đưa ra được hướng giải quyết cụ thể thì có thể kết luận rằng hệ thống có khả năng xuất bản thông tin theo tiêu chuẩn nhưng chưa đầy đủ
Nếu hệ thống cho phép xuất bản thành RSS và ATOM, chứa đầy đủ nội dung thông tin thì có thể kết luận hệ thống có khả năng đầy đủ để xuất bản thông tin với tiêu chuẩn công nghiệp
Nếu nhà cung cấp đưa ra được giải pháp đồng bộ dữ liệu giữa nhiều hệ thống bằng tài liệu theo tiêu chuẩn như ATOM hay SSE (Simple Sharing Extension for
Trang 16ATOM and RSS) thì có thể kết luận rằng đó là hệ thống rất mạnh trong xuất bản thông tin
Hỗ trợ nhiều môi trường hiển thị thông tin (Multidevice support): Đây là một tính
năng phụ nhưng khá quan trọng vì với xu thế hiện tại, người sử dụng có thể dùng nhiều loại thiết bị để truy cập hệ thống tại nhiều địa điểm khác nhau
Để kiểm định tính năng này, thử hệ thống với việc giới thiệu nội dung được hiển thị trên thiết bị cầm nay như PDA, Pocket PC, iPhone, Nokia 9500, Nếu không thể hiển thị được trên các thiết bị này, có thì kết luận là hệ thống không hỗ trợ hiển thị dữ lilệu ở môi trường và thiết bị khác nhau
Khả năng đăng nhập một lần (Single Sign On - SSO): Tính năng này là một trong
các tính năng tối quan trọng của giải pháp portal, vì số lượng người dùng và dịch vụ ứng dụng sẽ tăng dần theo thời gian Khi hệ thống cung cấp tính năng này, người sử dụng chỉ cần đăng nhập đúng một (01) lần duy nhất khi bắt đầu sử dụng hệ thống, mỗi khi dịch chuyển giữa các màn hình làm việc hoặc các module nghiệp vụ thì không cần phải đăng nhập lại, và khi đó các thành phần của hệ thống phải tự nhận biết được đó là người sử dụng nào, thẩm quyền đến đâu
Để kiểm định tính năng này h y thử với việc đăng nhập hệ thống, sau đó sử dụng ít nhất là 3 module nghiệp vụ, ví dụ: quản trị nội dung, diễn đàn, chia sẻ tài liệu Tại đây có thể có nhiều kết quả khác nhau như:
Nếu mỗi khi dịch chuyển sang các module nghiệp vụ mới, người dùng phải đăng nhập lại thì kết luận hệ thống không hỗ trợ khả năng SSO và đây không phải
là giải pháp portal
Nếu khi dịch chuyển giữa các module nghiệp vụ vẫn xác định được người dùng, thử log out và quay về sử dụng một module nghiệp vụ khác, nếu thấy hệ thống vẫn nhận ra người dùng thì có thể kết luận đó là hệ thống giả lập tính năng SSO và đó không phải là giải pháp portal
Nếu đăng nhập và đăng xuất đều tốt -không bị lỗi trong 2 tình huống trên thì
có thể kết luận hệ thống có hỗ trợ SSO Thử yêu cầu điều hướng sử dụng sang một
Trang 17tên miền khác đang dùng chính hệ thống này, nếu vẫn giữ được thông tin đăng nhập thì kết luận là đ hỗ trợ SSO tốt, nếu không thì kết luận là hỗ trợ SSO chưa tốt
Đồng thời thử kết nối với hệ thống quản trị người dùng chuyên nghiệp với tiêu chuẩn LDAP để xác thực người dùng, ví dụ: đăng nhập bằng tài khoản của Yahoo, nếu không thể thực hiện thì kết luận rằng tính năng SSO chưa toàn vẹn, nếu được thì khẳng định tính năng SSO đ rất tốt
Khả năng quản trị portal (Portal administration): Tính năng này xác định cách
thức hiển thị thông tin cho người dùng cuối với nhiều cách thức và nguồn khác nhau Tính năng này không chỉ đơn giản là thiết lập các giao diện người dùng với các chi tiết đồ hoạ (look-and-feel), với tính năng này người quản trị phải định nghĩa được các thành phần thông tin, các kênh tương tác với người sử dụng cuối, định nghĩa nhóm người dùng cùng với các quyền truy cập và sử dụng thông tin khác nhau
Để kiểm định tính năng này, thử trình diễn hoặc giới thiệu cách thức điều chỉnh các màn hình hiển thị thông tin, tạo lập các nguồn thông tin khác nhau với nhiều thẩm quyền sử dụng thông tin Tại đây có thể có nhiều kết quả khác nhau,
như: Nếu nhà cung cấp phải “bẻ” m (code) của hệ thống ra thì mới điều chỉnh hoặc
bổ sung được các nguồn thông tin hay màn hình hiển thị thì có thể kết luận ngay hệ thống đó không phải là giải pháp portal
Nếu hệ thống cho phép điều chỉnh được, thử với các vị trí hiển thị của các khối thông tin, thay đổi các nội dung sẽ hiển thị trong một vài khối thông tin, nếu khi đó nhà cung cấp lại bắt buộc phải sửa m chương trình thì kết luận ngay rằng hệ thống không có khả năng và đó không phải là giải pháp portal Ngược lại thì đó là giải pháp Portal
Khả năng quản trị người dùng (Portal user management): Tính năng này cung
cấp các khả năng quản trị người dùng cuối, tuỳ thuộc vào đối tượng sử dụng của hệ thống Tại đây, người sử dụng có thể tự đăng ký trở thành thành viên hoặc được người quản trị tạo lập và gán quyền sử dụng tương ứng Đồng thời, hệ thống phải hỗ
Trang 18nghiệp LDAP Mặt khác, phân quyền sử dụng phải mềm dẻo và có thể thay đổi được khi cần
Để kiểm định tính năng này thử trình diễn hoặc giới thiệu cách thức đăng ký tài khoản hoặc người quản trị tạo lập tài khoản sử dụng mới trong hệ thống, tạo lập các nhóm quyền sử dụng và gán các quyền sử dụng này cho thành viên Tại đây có thể có nhiều kết quả khác nhau, như:
Việc đăng ký tài khoản mới hoặc tạo lập tài khoản mới rất đơn giản, nhưng không thể tạo lập các nhóm quyền sử dụng mới mà chỉ dùng được các nhóm quyền
sử dụng sẵn có của hệ thống, thì kết luận hệ thống không hỗ trợ khả năng quản trị người dùng, và đây không phải là giải pháp portal
Nếu việc đăng ký mới và tạo lập các nhóm sử dụng mới suôn sẻ, thử với việc gán quyền sử dụng nào đó trong một module nghiệp vụ cụ thể với nhóm người sử dụng này Sau khi thực hiện xong, người sử dụng mới không thể khai thác được theo quyền đ được cấp thì kết luận hệ thống không thực sự hỗ trợ quản trị người dùng và khi đó hệ thống này không thể gọi là portal được Nếu tất cả đều hoạt động tốt, kết luận là đ hỗ trợ tốt tính năng quản trị người dùng
Nếu đ hỗ trợ tốt tính năng quản trị người dùng, thử cấu hình để hệ thống kết nối với hệ thống quản trị người dùng chuyên nghiệp với tiêu chuẩn LDAP, sử dụng
hệ thống LDAP này để xác thực người dùng (ví dụ: đăng nhập với tài khoản Yahoo), nếu không thể thực hiện thì kết luận rằng tính năng quản trị người dùng chưa hỗ trợ tiêu chuẩn công nghiệp, nếu thực hiện được ngay thì kết luận hệ thống
đ hoàn thiện trong tính năng quản trị người dùng
Nếu thoả m n tất cả cả 7 tính năng trên thì đó thực sự là giải pháp portal và
có khả năng hoạt động trên nhiều môi trường hoặc thiết bị khác nhau
1.3 Một số phần mềm lõi cổng thông tin điện tử
uPortal
Trang 19uPortal là một Portal Framework được sử dụng rộng r i trong các học viện và nó chủ yếu nhằm vào những yêu cầu của các tổ chức này uPortal là một Portal Framework rất ổn định và đ được ra đời thậm chí trước cả JSR -168 specification, theo đó uPortal đ áp dụng những kỹ thuật ko theo chuẩn được gọi là channel uPortal mặc dù đã tuân theo JSR-168 nhưng hầu hết những đặc điểm sẵn có trong uPortal vẫn dựa trên tùy biến và giải pháp đ phát triển với các channel adapter hơn
là các portlet nguyên thủy uPortal hỗ trợ portlet thông qua Pluto Portlet Framework uPortal cũng là open source Portal Framework hỗ trợ nhiều kiểu portal nhất: từ Java portal đến HTML portal, từ text portal đến XML portal
uPortal có thể sử dụng Central Authentication Service (CAS) để điều khiển truy cập các ứng dụng xác thực dựa trên “khi nào”, “ai”, “từ đâu”, và “dịch vụ gì” Kiểu xác thực này rất mạnh mẽ trong môi trường hỗn tạp như các trường đại học/cao đẳng Rất dễ dàng để cấu hình các group và các permission service là yêu cầu quyết định trong môi trường này với nguồn thông tin cục bộ
uPortal hỗ trợ các portlet tuân theo JSR-168 thông qua adapter và yêu cầu các file cấu hình chuẩn như portlet.xml và web.xml
Trước đây, tài liệu liên quan đến uPortal không được quan tâm tốt và không được cập nhật thường xuyên Các tài liệu về uPortal đặt ở nhiều nơi khác nhau: website uPortal, wiki, email list, issue management system của uPortal (JIRA) và những nguồn khác
uPortal hỗ trợ đặc tả WSRP và uPortal có thể được sử dụng như một WSRP với WSRP4J
eXo Platform
eXo Platform định nghĩa như một portal và một CMS Thông thường eXo được sử dụng như một portal tích hợp; eXo cung cấp cho các user khả năng truy cập tùy biến vào hệ thống thông tin của công ty và các tài nguyên Thông qua môi trường
Trang 20Web, eXo cung cấp business information cho phép chuyển đổi và quản lý data của
nó cũng nhƣ việc thực thi các xử lý business trái ngƣợc nhau
eXo là enterprise portal tuân thủ JSR-168 xây dựng từ những module khác nhau Nó dựa trên JSF, Pico Container, JbossMX và AspectJ WSRP cũng đƣợc hỗ trợ trong eXo eXo cũng hỗ trợ những công nghệ khác nhau bằng cách implement những cầu nối khác
eXo Platform đi kèm với hai phiên bản, “express” và “enterprise” edition Không có nhiều sự khác nhau giữa hai phiên bản này trong giới hạn các chức năng
và các đặc điểm mà chỉ là sự khác nhau của các container, ví dụ: Servlet Container
và EJB Container Express edition đƣợc deploy trong servlet engine trong khi đó enterprise edition đƣợc deploy trong application server J2EE 1.3 đầy đủ Cả hai phiên bản này đều đƣợc deploy thành công trong Tomcat 5.0 và JBoss 4.1
Giống nhƣ những Portal Framework khác, có nhiều tập hợp các porlet đi kèm với eXo Platform Các portet liên quan MVC, liên quan Web, liên quan navigation, liên quan user/admin Các porlet liên quan đến workflow và WSRP cũng đƣợc chứa trong tập hợp này
eXo mang đến một layer (Struts) giữa portal và bất kỳ application Struts nào có sẵn bên trong các portlet, các Struts application này có thể đƣợc nhúng vào trong một portlet với một chút thay đổi Những cầu nối khác, nhƣ Cocoon cũng đƣợc chứa trong eXo để nhúng vào các Cocoon application có sẵn vào một portlet fragment Nhìn chung, eXo Platform là một open source Portal Framework mạnh mẽ với việc
hỗ trợ nhiều công nghệ mới Khả năng thực thi của eXo Platform tốt nhất với thời gian upload portal nhỏ nhất
Stringbeans
Stringbeans Portal đƣợc tạo nên là một portlet container tuân theo JSR-168 và một framework cho việc quản trị hữu dụng các portal application Stringbeans đƣợc
Trang 21deploy như một J2EE Web Application trong một container hỗ trợ Servlet 2.3 Specification và JSP 1.2 Specification
Mặc định, Stringbeans sử dụng Hypersonic database Tuy nhiên, Stringbeans vẫn làm việc với bất kỳ relational database nào hỗ trợ JDBC 2.0 và đ được kiểm tra trên PostgreSQL database Stringbeans không hỗ trợ Hibernate, vì thế việc chuyển từ database này sang database khác phải yêu cầu tự cấu hình
Stringbeans có một tập hợp tài liệu user guide rất tốt có thể tìm thấy online hoặc download để sử dụng Stringbean được đánh giá là có documentation tốt nhất trong
số các open source Portal Framework Thêm vào đó, hình thức online support của nhóm Stringbeans rất hữu dụng cả về thời gian hồi đáp các bug, các truy vấn, và cả trong việc bổ sung những đặc điểm phụ được yêu cầu Stringbeans có nhiều đặc điểm thân thiện với user và developer và một trong số đó được liệt kê dưới đây:
-Dễ dàng layout management
-Hỗ trợ các theme cho look & feel -Xác thực user dựa trên JAAS
-Page layout đầy đủ với menu và column
-Logging với file đơn giản hoặc database đều hỗ trợ tốt
-Điểu khiển truy cập mỗi portlet dựa trên user ID, role và các quan hệ database bất kỳ
-Portal view dựa trên user ID, role và các mối quan hệ
-Các portle có khả năng hiển thị RSS headline, data từ các table, các report, các biểu đồ, XML document thông qua XSL transformation
Trang 22Liferay
Liferay Portal Enterprise mang nhiều ý nghĩa lớn hơn là một portal container, mà đi kèm với nó là rất nhiều đặc điểm hữu dụng như Content Management System (CMS), tuân theo WSRP, Single Sign On (SSO), hỗ trợ AOP (Aspect Oriented Programming), và nhiều công nghệ mới nhất khác Liferay có một thiết kế kiến trúc rất rõ ràng dựa trên thực tế tốt nhất của J2EE, điều đó cho phép nó được sử dụng với một loạt các container khác nhau, từ những servlet container như Tomcat và Jetty cho tới những server tuân theo J2EE mạnh mẽ như BorlandES, JBoss, JOnAs, JRun, Oracle9iAS, Orion, Pramati, Sun JSAS, WebLogic và WebSphere Trong trường hợp này, Liferay chỉ là một open source portal container hỗ trợ gần như hầu hết JavaServer open source hay thương mại
Tính linh hoạt trong thiết kế cho phép bổ sung business logic bất kỳ một công nghệ nào tương ứng và thích hợp như Struts, Tiles, Spring và EJB, có thể được dựa trên Hibernate, Java Messaging Service (JMS), Java Mail và Web Service Liferay có thể thay đổi Portal Presentation trở thành một Java Application bất kỳ mà không có hoặc rất ít sự thay đổi
Việc customize các portal page và các portlet trong những open source Portal Framework như eXo Platform là không dễ dàng, và có thể làm rất nhiều trong việc cấu hình, nhưng với Liferay layout management thì rất dễ dàng Liferay Portal có một GUI dựa trên Web cho phép user tương tác để thiết kế layout của Portal Page
mà không cần phải chỉnh sửa bất kỳ file cấu hình nào Điều này tương tự như Stringbeans Portal
Liferay Portal Enterprise đi kèm với những portlet hữu dụng Và nếu đem so sánh với các open source Portal Framework khác, Liferay portal có một lượng lớn các portlet tiện ích tuân theo JSR-168 và có thể được sử dụng trong bất kỳ Portal nào chỉ với rất ít thay đổi
Trang 23Liferay hỗ trợ WSRP specification cả cho WSRP consumer và WSRP producer như một thực thể của Liferay portal Việc cấu hình Liferay yêu cầu một vài deployment descriptor không chuẩn chẳng hạn Struts hoặc Tiles, điều này có thể làm cho việc phát triển trở nên phức tạp hơn
Giống như hầu hết các Portal Framework, Liferay sử dụng database mặc định là Hypersonic rất tốt cho mục đích phát triển Liferay có thể được sử dụng với bất kỳ database nào với chút ít ảnh hưởng tùy theo việc sử dụng Hibernate trong thiết kế của nó Liferay có các JSP tag lib và nhiều class tiện ích khác trong những package khác nhau để trợ giúp các developer trong việc phát triển portal/portlet Sử dụng những package tiện ích này có thể dễ dàng phát triển portal nhưng khi đó những portal này sẽ giống Liferay và các portlet thì không còn tuân theo JSR-168 nữa Những tiêu chí để đánh giá phần mềm lõi cổng thông tin :
- Tuân thủ theo chuẩn JSR-168
- Sự phụ thuộc vào server
Sau đây là kết quả đánh giá của CCLRC e-Science Centre, CCLRC Daresbury Laboratory, Vương Quốc Anh về các hệ trên :
Trang 24Theo kết quả khảo sát trên, chúng ta thấy hệ thống Liferay tỏ ra là một hệ thống mạnh, đáp ứng tốt nhất các yêu cầu nền tảng để xây dựng nên CTTĐT
1.4 Tích hợp các ứng dụng trên cổng thông tin
Một trong những tính năng quan trọng để phát triển cổng thông tin, với sự phát triển về công nghệ thông tin đi cùng với với nó là những yêu cầu xây dựng những ứng dụng mới trên nền tảng Công nghệ thông tin sẵn có của mỗi cơ quan, tổ chức, doanh nghiệp, thì tìm kiếm các giải pháp tích hợp và chia sẻ dữ liệu một cách hữu hiệu nhằm đáp ứng được nhu cầu ngày càng cao của người dùng là điều rất cần thiết Các hướng đi để có thể tích hợp ứng dụng lên cổng thông tin là:
- Xây dựng các ứng dụng hỗ trợ được phát triển trên nền tảng portlet JSR 168 (Java Specification Request) hoặc (WSRP 1.0/WSRP2.0)/WebPart Phát triển theo hướng này đem lại cho chúng ta một hệ thống mềm dẻo, để nâng cấp và không phụ thuộc
- Xây dựng các ứng dụng dịch vụ web (Web Services) có cấu trúc và định dạng tuân thủ theo tiêu chuẩn về chia sẻ và trao đổi thông tin
Trang 25- Xây dựng phần mềm ứng dụng được phát triển trên nền tảng thích hợp để có thể giao tiếp trên SSO server để đăng nhập một cửa
- Tích hợp toàn bộ trang thông tin của ứng dụng vào Cổng thông tin theo kiểu một đường link
Trang 26CHƯƠNG II: QUẢN LÝ NGƯỜI DÙNG TRONG CỔNG THÔNG TIN 2.1 Mô hình Cơ sở dữ liệu danh bạ người dùng
Là một mô hình tổ chức thông tin, dữ liệu mà trong đó các thông tin dữ liệu
có mối quan hệ chặt chẽ với nhau, theo kiểu cấu trúc thư mục
Ví dụ: Danh bạ điện thoại, với tên trên danh bạ thì ta có thể truy ra được số điện thoại tương ứng
Hiện nay, để xây dựng các hệ thống lớn, điều 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 quan trọng chính vì vậy cần phải quản lý cơ sở dữ liệu theo kiểu cấu trúc danh bạ người dùng với tính năng truy cập nhanh, thiết kế để đọc nhiều hơn là để ghi vào
Phải cần có một giao thức làm sao đó một tập những thông tin cho việc xử lý các loại dữ liệu, một giao thức không thể biết dữ liệu được lưu trữ ở đâu
Ngoài ra nó phải đảm bảo hiệu quả đọc nhanh, hiệu suất, ít tốn tài nguyên Để đáp ứng được những tính năng trên rất nhiều các h ng đưa ra được những chuẩn để
xây dựng trong đó chuẩn về Lightweight Directory Access Protocol (LDAP và
Active Directory (AD)) là 2 chuẩn tiêu biểu nhất hiện nay
2.1.1 Giới thiệu một số chuẩn về Cơ sở dữ liệu danh bạ người dùng
Active Directory(AD)
AD là một ứng dụng của dịch vụ thư mục, là một dịch vụ trong windows cung cấp đầu mối quản lý và bảo vệ tài khoản người dùng Windows, các client, server và các ứng dụng
AD là nơi lưu trữ cơ sở dữ liệu của các tài nguyên trên mạng, còn gọi là đối tượng cũng như thông tin liên quan đến đối tượng đó
AD sử dụng LDAP và được xây dựng trên cơ sở hệ thống xác định domain theo tên DNS
Chứ năng ủ D
- Lưu trữ thông tin về tài khoản người dùng và các tài nguyên trên máy tính
Trang 27- Xác định tính hợp lệ của người truy cập tài nguyên mạng
- Lưu trữ thông tin mạng máy tính như là các đối tượng trong một cấu trúc phân cấp
- Ngoài ra nó còn cung cấp: dịch vụ quản lý tập chung, các khả năng tìm kiếm nâng cao, ủy quyền đại diện
C mô h nh l m việ ủ D
- Hierarchical Organization: Phân cấp theo thứ bậc
- Object-oriented Storage: Hướng đối tượng
- Multi-Master Replication: Nhiều kết nối
- Domain: Là đơn vị chức năng nòng cốt của cấu trúc Logic Active Directory,
là phương tiện để quy định một tập hợp những người dùng, máy tính, tài nguyên, được chia sẻ có những quy tắc bảo mật giống nhau từ đó giúp cho việc quản lý các truy nhập vào server dễ dàng hơn
- Domain Tree: Là cấu trúc bao gồm nhiều Domain được sắp xếp có cấp bậc theo cấu trúc hình tree
- Là cấu trúc được trên một hoặc nhiều cấu trúc Domain Tree có thiết lập và
ủy quyền quan hệ cho nhau
LDAP –Lightweight Directory Access Protocol
LDAP (Lightweight Directory Access Protocol) – là giao thức truy cập nhanh các dịch vụ thư mục - là một chuẩn mở rộng cho nghi thức truy cập thư mục
LDAP là một giao thức tìm, truy nhập các thông tin dạng thư mục trên server
Nó dùng giao thức dạng Client/Server để truy cập dịch vụ thư mục
Trang 28Ngoà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 Trong khuân khổ luận văn em dùng chuẩn LDAP để áp dụng cho những thiết
kế của mình
2.1.2 Phương thức hoạt động của LDAP
LDAP dùng giao thức giao tiếp client/server
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
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
Đây là một tiến trình hoạt động trao đổi LDAP client/server :
Hình 1: Mô h nh kết nối giữ lient/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à password 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
Trang 29Server 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
Trang 30Do 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
Hình 4: Nhiều kết qu t m kiếm đượ 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
Thành phần của LDAP:
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 đặc trưng ký hiệu là DN ( Distinguished name) ví dụ: một entry mô tả một người với các thuộc tính tên, tuổi, số điện thoại, và địa chỉ email
Chứng thực trong LDAP
Việc xác thực trong một thư mục LDAP là một điều cần thiết và không thể thiếu Các quá trình xác thực được sử dụng để thiết lập các quyền của khách hàng cho mỗi lần sử dụng
Tất cả các công việc như tìm kiếm, truy vấn, vv… được sự kiểm soát bởi các mức uỷ quyền của người được xác thực
Khi xác nhận một người dùng của LDAP cần tên người dùng được xác định như là một DN (ví dụ cn = tuanh, o = it, dc = nlu, dc = info) và mật khẩu tương ứng với DN đó
Một số phương thức xác thực người dùng
Xác thực người dùng chưa xác định (Anonymous Authentication)
Trang 31Xác thực người dùng chưa xác định là một xử lý ràng buộc đăng nhập vào thư mục với một tên đăng nhập và mật khẩu là rỗng Cách đăng nhập này rất thông dụng và được thường xuyên sử dụng đối với ứng dụng client
Xác thực người dùng đơn giản ( Simple Authtication)
Đối với xác thực người dùng đơn giản, tên đăng nhập trong DN được gửi kèm cùng với một mật khẩu dưới dạng clear text tới máy chủ LDAP
Máy chủ sẽ so sánh mật khẩu với giá trị thuộc tính userPassword hoặc với những giá trị thuộc tính đ được định nghĩa truớc trong entry cho DN đó
Nếu mật khẩu đuợc lưu dưới dạng bị băm (mã hoá), máy chủ sẽ sử dụng hàm băm tương ứng để biến đối mật khẩu và so sánh với giá trị đó với giá trị mật khẩu
đ m hoá từ trước
Nếu cả hai mật khẩu trùng nhau, việc xác thực client sẽ thành công
Xác thực đơn giản qua SSL/TLS
Nếu việc gửi username và mật khẩu của bạn qua mạng khiến bạn không cảm thấy yên tâm về tính bảo mật, sẽ là an toàn hơn khi truyền thông tin trong một lớp truyền tải được m hóa
LDAP sẽ vượt qua lớp truyền tải đ được m hóa này trước khi thực hiện bất
cứ hoạt động kết nối nào Do đó, tất cả thông tin người dùng sẽ được đảm bảo an toàn (ít nhất là trong suốt session đó)
Khi thiết kế cổng thông tin này user trong hệ thống sẽ có một tài khoản trên LDAP để đăng nhập vào cổng thông tin trừ các user là khách
Đầu tiên chương trình thẩm tra tạo ra một đại diện để xác thực với LDAP thông qua (1)
Sau đó so sánh mật khẩu của user A với thông tin chứa trong thư mục Nếu so sánh thành công thì user A đ xác thực thành công
Trang 32Hình 5: Chứng thự dùng LD P
Cấu trúc dạng Tree của LDAP:
Hình 6: Ví dụ về m t thư mụ đi n h nh
Các thao tác trên LDAP:
- Thao tác thẩm tra (enterrogation): Search, compare
- Thao tác cập nhật (update): add, delete, modify, modify DN
- Thao tác xác thực và điều khiển (Authentiaction and control): Blind- cho phép client tự xác định mình với thƣ mục, cung cấp sự xác nhận và xác thực chứng thƣ, unblind- cho phép client hủy bỏ phân đoạn làm việc hiện hành, 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ữa
Ngoài 9 thao tác cơ bản LDAP còn đƣợc thiết kế mở rộng để khi có thao tác mới không phải xây dựng thành phần cốt lõi
Trang 332.2 Hệ thống đăng nhập một cửa SSO với CAS
2.2.1 Giới thiệu về hệ thống SSO
Hệ thống đăng nhập một cửa SSO (Single Sign-On) cho phép nhập cùng một id/password để đăng nhập nhiều ứng dụng trong cùng một tổ chức (Enterprise)
Hình 7: h i niệm SSO
Ví dụ: Người dùng sử dụng nhiều dịch vụ như: Đăng ký môn học, hê thống xem điểm, … ứng mỗi dịch vụ chúng ta có một tài khoản riêng Trước đây, khi chưa sử dụng SSO thì khi với mỗi dịch vụ chúng ta đều phải nhập thông tin để xác thực Khi một tổ chức đ thống nhất sử dụng SSO cho tất cả các dịch vụ của họ thì người dùng chỉ cần đăng nhập một lần duy nhất trên bất kỳ dịch vụ nào trong tổ chức, thì khi truy xuất những dịch vụ khác, người dùng không cần phải đăng nhập lại
Trang 34Như vậy, chúng ta có thể thấy rằng SSO phải đảm nhiệm một nhiệm vụ rất lớn trong việc chứng thực toàn bộ người dùng cho các ứng dụng web Do vậy vấn đề bảo mật luôn đặt lên hàng đầu, nếu SSO gặp một sự cố nào đó thì toàn bộ các ứng
Để phát triển một SSO không thật sự quá khó nhưng nó có vai trò quá quan trọng và ảnh hưởng lớn đến các ứng dụng khác nên nó thường dành cho các nhà cung cấp dịch vụ trực tuyến và các viện, trường đại học lớn trên thế giới
Có nhiều dự án m nguồn mở lớn nhưng em chỉ sơ qua về 2 m nguồn mở tương đối nổi tiếng về SSO trên thế giới đó là CAS (Central Authentication Service) của đại học Yale và OpenSSO của Sun Đây là 2 dự án khá hoàn chỉnh và được ứng dụng nhiều:
- Open Single Sign-On (OpenSSO) hoạt đông dựa trên Token
- Central Authenticate Service (CAS) hoạt đông dựa trên Ticket
OpenSSO Enterprise
OpenSSO là một sản phẩm m nguồn mở của SUN Là một sản phẩm đơn lẻ, kết hợp các tính năng của Sun Java System Access Manager, Sun Java System Fedearation Manager và Sun System SAML v2 Java Plugin
C phiên b n ủ OpenSSO
OpenSSO Express: Được công bố vào 7/2008, cập nhật ba tháng một lần
OpenSSO Enterprise: 9/2008 Sun phát triển bản Enterprise, 11/2008 ra bản OpenSSO Enterprise 8.0, 12- 15 tháng sẽ cho ra một phiên bản mới
C tính năng ủ OpenSSO Enterprise
- Access Control
- Federation Management
- Web Service Sercurity
- Indentity Web Service
C h thứ OpenSSO Enterprise l m việ
- Từ trình duyệt, người dùng kết nối đến ứng dụng web
Trang 35- Policy Agent sẽ kiểm tra token có tồn tại trong URL hay không? Nếu token chưa tồn tại thì Policy Agent sẽ chuyển browser đến OpenSSO Server
- OpenSSO Server xác thực người dùng thông qua login form Người dùng nhập Username / Password để xác thực
- Opensso activate login session (tức là tạo ra session cho người dùng và kích hoạt nó nếu xác thực thành công)
- Ensso gởi token cho browser (browser sẽ lưu token dưới dạng cookie) và Browser sẽ gởi token đến cho Agent
- Policy Agent sẽ lấy thông tin token gởi đến OpenSSO server để kiểm tra
- OpenSSO sẽ gởi thông tin login (username, password) và thông tin authorization (role) đến Agent nếu kiểm tra token hợp lệ
- Policy Agent cho phép truy cập ứng dụng hay không và ghi thông tin session trên URL
Central Authenticate Service (CAS)
Là dự án m nguồn mở được phát triển bởi đại hoc Yale Hỗ trợ nhiều thư viện phía client được viết bởi nhiều ngôn ngữ: PHP, Java, PL/SQL, …
C phiên b n ủ C S
CAS 1.0 được tạo bởi Yale University, khởi đầu từ năm 1999
CAS 2.0 cũng được tạo ra bởi Yale University, giới thiệu thêm tính năng mới
- CAS cung cấp nhiều trình quản lý xác thực (authenticate handler) khác nhau
Trang 36Certificate, để xác thực những thông tin người dùng khác nhau này, CAS sử dụng những trình quản lý xác thực tương ứng
- CAS còn cung cấp tính năng “Remember Me” Developer có thể cấu hình tính năng này trong nhiều file cấu hình khác nhau và khi người dùng chọn
“Remember me” trên khung đăng nhập, thì thông tin đăng nhập sẽ được ghi nhớ với thời gian được cấu hình (mặc định là 3 tháng) và khi người dùng mở trình duyệt thì CAS sẽ chuyển đế service url tương ứng mà không cần hiển thị khung đăng nhập Trong khuân khổ luận văn này em sẽ dùng giải pháp Central Authenticate Service (CAS)
2.2.2 Dịch vụ chứng thực trung tâm - CAS
CAS là gì ?
Central Authenticate Service (dịch vụ chứng thực trung tâm) là một dịch vụ được ủy thác để quản lý việc đăng nhập/đăng xuất của người dùng
Từ nay, sẽ gọi các dịch vụ CAS là Tầng Xác Thực
Hình 8: Người dùng tru p v o UD khi đ hứng thự với C S server
CAS lấy thông tin Single Sign On thông qua cookie Cookie này sẽ bị hủy khi
Trang 37được gọi là TGT Cookie (Ticket Granting Cookie) chứa một id duy nhất và thời gian hết hạn Thời gian hết hạn là 8 giờ
CAS cung cấp nhiều trình quản lý xác thực (authenticate handler) khác nhau CAS xác thực nhiều loại thông tin người dùng như username/password, X509 Certificate, để xác thực những thông tin người dùng khác nhau này, CAS sử dụng những trình quản lý xác thực tương ứng
CAS còn cung cấp tính năng “Remember Me” Developer có thể cấu hình tính năng này trong nhiều file cấu hình khác nhau và khi người dùng chọn “Remember me” trên khung đăng nhập, thì thông tin đăng nhập sẽ được ghi nhớ với thời gian được cấu hình (mặc định là 3 tháng) và khi người dùng mở trình duyệt thì CAS sẽ chuyển để service url tương ứng mà không cần hiển thị khung đăng nhập
Các phiên bản của CAS: CAS 1.0, CAS 2.0, JA-SIG CAS 3.0,
CAS URIs là CAS thực hiện Single Sign On thông qua những URI và sinh ra
những ticket khác nhau CAS sẽ sử dụng những URI sau: URI - Uniform Resource Identifier- tạm dịch là định danh tài nguyên URI dùng để xác định một resource
nào đó trên web :
thực
không sử dụng proxy authentication
XML-fragment và sinh ra proxy-granting ticket khi được yêu cầu
kiểm tra tính hợp của proxy ticket
Trang 38/services/add.html Một tính năng admin Thêm những service đến danh
sách Registered Services
Xóa service bởi tham số “id” được cung cấp
ng 1:Mô t thu tính URI
CAS Tickets
Ticket đơn giản là một chuỗi ký tự ngẫu nhiên và bắt đầu với một tiền tố như (ST-,TGC-,…) và nó là id duy nhất cho một thao tác nào đó Trong quá trình xác thực của CAS, một số ticket được tạo ra với mục đích lưu trữ thông tin và bảo mật Sau đây là khái niệm một số ticket được sử dụng trong CAS
Chứng thực người dùng với CAS server
Người dùng nhập UserId / Password vào khung đăng nhập Các thông tin này được truyền cho CAS server thông qua giao thức HTTPS là một giao thức bảo đảm
dữ liệu được m hóa trước truyền đi
Xác thực thành công, TGC được sinh ra và thêm vào trình duyệt dưới hình thức là cookie.TGC này sẽ được sử dụng để Single Sign On với tất cả các ứng dụng
Truy cập vào ứng dụng
Người dùng truy cập vào ứng dụng khi đ chứng thực với CAS server
Người dùng truy xuất ứng dụng thông qua trình duyệt
Ứng dụng lấy TGC từ trình duyệt và chuyển nó cho CAS server thông qua giao thức HTTPS
Nếu TGC này là hợp lệ, CAS server trả về một Service Ticket cho trình duyệt, trình duyệt truyền ST vừa nhận cho ứng dụng
Trang 39Ứng dụng sử dụng ST nhận được từ trình duyệt và sau đó chuyển nó cho CAS server
CAS server sẽ trả về ID của người dùng cho ứng dụng, mục đích là để thông báo với ứng dụng người dùng này đ được chứng thực bởi CAS server
Ứng dụng đăng nhập cho người dùng và bắt đầu phục vụ người dùng
Người dùng truy cập vào ứng dụng mà chưa chứng thực với CAS server Người dùng truy xuất ứng dụng thông qua trình duyệt Vì chưa nhận được TGC nên ứng dụng sẽ chuyển hướng người dùng cho CAS server
Người dùng cung cấp usename/ Password của mình thông qua khung đăng nhập để CAS xác thực Thông tin được truyền đi thông qua giao thức HTTPS Xác thực thành công, CAS server sẽ trả về cho trình duyệt đồng thời TGC và
ST
Ứng dụng sẽ giữ lại TGC để sử dụng cho các ứng dụng khác (nếu có) và truyền ST cho ứng dụng
Ứng dụng chuyển ST cho CAS server và nhận về ID của người dùng
Ứng dụng đăng nhập cho người dùng và bắt đầu phục vụ người dùng
Trang 40Hình 9: Người dùng tru p v o UD m hư hứng thự với C S server
Những điểm cần lưu ý:
- Username dùng để đăng nhập trên tầng xác thực nếu tồn tại trong CSDL của ứng dụng nào thì ứng dụng đó mới công nhận username đó đ đăng nhập trên trang mình Cho nên các ứng dụng hỗ trợ single sign-on sẽ có cơ chế đề đồng bộ hóa dữ liệu đăng nhập của mình với tầng xác thực Cụ thể là ở các cổng thông tin sẽ có cơ chế kích hoạt CAS để đồng bộ CSDL từ LDAP ngược lại khi bất kì có sự thay đổi
- Cũng có nhược điểm khi một 1 username/password bị mất cắp thì tất các trang thông tin của người dùng cũng bị đánh cắp do đ dùng SSO
- Khi Server của tầng xác thực bị down, thì người dùng sẽ không thể đăng nhập vào bất kỳ ứng dụng nào May thay hầu như tất cả các cổng thông tin đều có có cơ chế
là người dùng với quyền admin có thể đăng nhập vào CSDL
- Có nhiều cách để CAS xác thực người dùng chứ không chỉ có username/password (vd: X509 Certificate, )
Trong khuân khổ luận văn em chỉ dùng CAS username/Password để xác thực