LỜI CẢM ƠN

Lời cảm ơn đầu tiên, chúng em xin kính gửi lòng biết ơn chân thành đến ông bà, cha mẹ đã nuôi dưỡng và dạy bảo để chúng em có ngày hôm nay. Xin cảm ơn quý Thầy, Cô trường Đại học Nông Lâm TP.HCM, đặc biệt là các Thầy, Cô Khoa Công Nghệ Thông Tin đã tận tình truyền đạt những kiến thức và kinh nghiệm cho chúng em trong suốt thời gian học tập tại trường. Cảm ơn thầy, thạc sĩ Lê Phi Hùng đã tận tình hướng dẫn chúng em trong suốt thời gian thực hiện đề tài này. Cảm ơn thầy Nguyễn Đức Công Song cùng hai bạn Thái Tuyền và Trần Bảo Hưng đã giúp đỡ nhóm triển khai thực tế hai hệ thống Liferay và Sakai. Xin cảm ơn các bạn trong lớp DH05DT đã chia sẻ, giúp đỡ và động viên chúng tôi trong suốt thời gian học tập tại trường cũng như trong thời gian thực hiện đề tài. Mặc dù chúng em đã cố gắng hoàn thành đề tài này với tất cả nỗ lực, nhưng vẫn không tránh khỏi những thiếu sót nhất định. Kính mong nhận được sự chỉ bảo của quý Thầy, Cô và sự góp ý chân thành của các bạn. Kính chúc quý thầy cô mạnh khỏe, tiếp tục đạt được nhiều thắng lợi trong giảng dạy, trong nghiên cứu khoa học và trong sự nghiệp trồng người. Xin chân thành cảm ơn ! Sinh viên thực hiện Phạm Thị Ngọc Hơn Bùi Minh Phúc Nguyễn Quốc Tân Phạm Thị Mai Thu

i

DANH SÁCH CHỮ VIẾT TẮT
SSO OpenSSO ESSO CAS JDK J2EE LDAP URI URL LMS Sakai CMS API CSDL Single Sign On Open Single Sign On Enterprise Single Sign On Central Authentication Service Java Development Kit Java 2 Platform, Enterprise Edition Lightweight Directory Access Protocol Uniform Resource Identifier Uniform Resource Locator Learning Mangement System Sakai Course Management System Application Programming Interface Cơ Sở Dữ Liệu

ii

MỤC LỤC
TỔNG QUAN............................................................................................................1 NỘI DUNG BÁO CÁO..............................................................................................2 Chương .1 Tìm hiểu Single Sign On.......................................................................2 .1.1. Single Sign On............................................................................................2 .1.1.1 Khái niệm............................................................................................2 .1.1.2 Lợi ích. ...............................................................................................2 .1.1.3 Các giải pháp Single Sign On..............................................................3 .1.2. Open Single Sign On Enterprise.................................................................3 .1.2.1 Giới thiệu.............................................................................................3 .1.2.2 Triển Khai............................................................................................6 .1.2.3 Tạo user và group trong OpenSSO....................................................13 .1.2.4 Tạo Agent Profile Trong OpenSSO...................................................15 .1.2.5 Cài đặt Policy Agent 3.0....................................................................17 .1.2.6 Bảo vệ ứng dụng Java EE Application với OpenSSO Policy Agents. ......................................................................................................................21 .1.3. Central Authenticate Service (CAS).........................................................22 .1.3.1 Giới thiệu...........................................................................................22 .1.3.2 Triển Khai..........................................................................................33 .1.4. Các giải pháp bảo mật ứng dụng...............................................................46 .1.4.1 Triển Khai...........................................................................................46 Chương .2 Tìm hiểu Sakai LMS...........................................................................50 .2.1. Giới thiệu Sakai project............................................................................50 .2.2. Tính năng..................................................................................................51 .2.3. Bộ công cụ để dạy và học, quản lý điểm số..............................................52 .2.3.1 Syllabus – Đề cương bài giảng..........................................................52 .2.3.2 Gradebook – Sổ điểm........................................................................53 .2.3.3 Assignment – Bài tập.........................................................................58 .2.3.4 Tests and Quizzes – Kiểm tra............................................................63 .2.3.5 Presentation – Trình diễn slide bài giảng...........................................67 iii

........................... Portal là gì?.................74 ..................................68 .......................... Giới thiệu về Liferay.................3 Các role...2.89 ...........4 Demo........2.........................1...................5........ ............72 .............111 ..............116 .6 Cài đặt các trang trong hệ thống..83 ......86 Chương ..........................................................1 Giới thiệu.. hệ thống người dùng xây dựng thêm trong FIT portal............................89 ..........3 Triển khai......6......6.4...........81 ....1 Giới thiệu Sakai CMS...2 Một số khái niệm trong Sakai CMS................74 ..............................................................................2............................3......................................95 ....94 .............................................4...4 Đối tượng người dùng trong hệ thống FIT portal.4....82 ....78 Chương .2..........4.........3....................6...2...............................................1...........................91 ..................................................................5..... Triển khai một ứng dụng viết thêm cho Sakai.............3 Giới thiệu Portal – Liferay....2... Kết quả đạt được....79 .. Hiện thực Sakai Course Management System (Sakai-CMS)...............................................................................................2 Schedule – Lịch công tác......................................116 iv ...71 ..81 .........................................6.68 .......................................................3...............76 .......2...2................2........1...............1 Cài đặt một ứng dụng từ bên ngoài vào Sakai.............2 Hướng dẫn Việt-hóa Liferay........74 ......69 .........2........2 Viết một ứng dụng trong Sakai.......................1...........5 Kết quả đạt được và hướng phát triển..2.......1................................4 Xây dựng FIT Portal dựa trên Liferay Portal..1 Giới thiệu.79 ....4..1....2...5 Quản lí nội dung với CMS....4............................................................................................90 ....................3 Tạo theme mới cho Liferay....3.... Bộ công cụ giao tiếp giữa giảng viên và sinh viên...........................89 ...........................4 Chuyển 1 ứng dụng web thành portlet...5.......................1..............3 Hiện thực Sakai CMS......................................5 Quy trình tạo mẫu tin của hệ thống FIT portal....4....2.............2......5..........3... hệ thống người dùng sẵn có trong Liferay.........4.......2.......3.......................1....3....................................4..........................7 Cách tạo Website đơn vị..............................................2 Các vai trò (role).....114 Chương ....1........5.............................8 Danh mục các website đơn vị..............5..82 ......................2.2.................4.74 ...............1 Announcement – Thông báo...........4..............................2..............71 .1..................

..............................................................................1...2 Sakai...123 v ..................... Hướng phát triển......................5..............................................................................................................................5................................116 .....................1.........5....................................116 ............................ Hiện thực UserDirectoryProvider.............................................................116 PHỤ LỤC..1.........................................3 Single Sign On.......................2..116 ................ Một số so sánh giữa Moodle và Sakai........................1 Liferay......119 B.............................5..........119 A.............

..........................................Khái niệm SSO.......35 Hình 25 .....Cấu hình Liferay ......43 Hình 28 .......................................Tạo Agent Profile.....................................Người dùng truy cập vào ứng dụng mà chưa chứng thực với CAS server29 Hình 20 ....................................................Cấu hình Login Form URI trong OpenSSO.....................2 Hình 2 ..............Customize Configuration ......................................................................13 Hình 12 ..............................................32 Hình 23 .........................................................t).......Triển khai OpenSSO.................................................................................................5 Hình 5 ...............................Cấu trúc thư mục user sau khi cấu hình thành công............................User Data Store Settings..............Customize Configuration .............20 Hình 18 ...4 Hình 4 ..............................................................11 Hình 10 ..........Cơ chế xác thực mà CAS hỗ trợ..............10 Hình 9 .........................CAS – Logout Flow.........................................43 Hình 29 .........43 Hình 27 .......................................................................CAS – Proxy Flow...................Kiến trúc thư mục Agent...........................32 Hình 22 ...Configuration Data Store Settings.................Quản lý user và group trong OpenSSO....................LDAP (t..t)............Liferay .......................................................................19 Hình 17 ........................................................................Mô hình triển khai Sakai .............................................................................................................8 Hình 7 .........14 Hình 13 ..6 Hình 6 ..Sơ đồ hoạt động chi tiết với policy........Cấu hình Liferay .........Thêm user vào group trong OpenSSO..28 Hình 19 ....Sơ đồ hoạt động chung của J2EE Agent..15 Hình 14 ....LDAP (t..............30 Hình 21 .............................15 Hình 15 ........CAS – Login Flow.......................Cấu hình CAS .................12 Hình 11 .......LDAP (t.Chạy domain cần triên khai opensso...Liferay..........17 Hình 16 .....DANH MỤC CÁC HÌNH Hình 1 ......................................................Sơ đồ xác thực của OpenSSO.........................42 Hình 26 ....................................................Cài đặt J22Agent..................9 Hình 8 ............Cấu hình Liferay .............................................t).....LDAP.........................Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS server............................33 Hình 24 ......................................................4 Hình 3 ...............CAS............................................44 vi ..................... ..............Cấu hình Liferay .................Quản lý user trong OpenSSO................. .........Thông tin OpenSSO.......................

..Cấu hình Liferay ................95 Hình 59 .......86 Hình 57 ...Sakai Gradebook ........................................................Sử dụng sổ điểm khi tạo bài kiểm tra...71 Hình 52 ..............................................................98 vii .96 Hình 60 ...........................................65 Hình 48 .............................................Xem danh sách bài tập...............73 Hình 53 ..................................55 Hình 37 .....63 Hình 45 .........Cấu trúc thư mục theme............Quy định hệ số điểm cho bài kiểm tra/bài tập (tt)........................................51 Hình 33...............................................................................Xem danh sách bài tập theo sinh viên............Sakai Gradebook ........Quy trình tạo mẫu tin của hệ thống FIT portal..........Sử dụng sổ điểm khi tạo bài tập.44 Hình 31 .........................Quy định cách đánh giá môn học (tt)..........................Hình 30 .56 Hình 38 ..............................t)................Phản hồi đáp án cho sinh viên.Mô hình miền Sakai CMS...................................................................................................54 Hình 36 ....74 Hình 55 .................................................................................................83 Hình 56 ............................................Các nơi nghiên cứu và sử dụng Sakai.............................................................................Portlet Tìm kiếm nhanh thời khóa biểu..........Quan hệ giữa các công cụ dạy và học......................66 Hình 50 ...............Sakai Test & Quizzes ..............73 Hình 54 .........................................52 Hình 34 – Sổ điểm.....Soạn nội dung câu hỏi...............................................57 Hình 40 .......................................61 Hình 43 – Chấm điểm.............................................63 Hình 46 .......65 Hình 47 .....Sakai Test & Quizzes ......................................Mô hình Simple......................t).................Sakai Presentations....................................53 Hình 35 ................................................Quy định hệ số điểm cho bài kiểm tra/bài tập....Sơ đồ khái quát về hệ thống người dùng của WebSite..........................................Sakai Gradebook .............Quy định hệ số điểm cho bài kiểm tra/bài tập (tt)......................................44 Hình 32 ..........Thêm câu hỏi.................LDAP (t............58 Hình 42 ....................................Xem bài tập dưới góc nhìn của sinh viên.......................62 Hình 44 ............Tạo ngân hàng câu hỏi.....................................................................Mô hình Large Lecture...............................Trang chủ.....Cấu trúc trang...............67 Hình 51 ................66 Hình 49 .LDAP (t......................................................................................................................Cấu hình Liferay ...................................................94 Hình 58 .................Tạo theme mới cho Liferay ................................Quy định cách đánh giá môn học......................58 Hình 41 ........Lấy sự kiện từ trang khác....56 Hình 39 ..

..Trang Mẫu đơn........................................................................Cấu trúc trang của các Website cá nhân của giảng viên......Trang quản lý tài liệu........................................................................103 Hình 67 .........................................Trang Sơ đồ trang.......................122 Hình 87 ....104 Hình 68 ..............................................Các loại câu hỏi............Tạo mới 1 tổ chức...............................Moodle .......................................................113 Hình 82 ................114 Hình 83 .......................................................106 Hình 72 ..Cấu trúc trang cho Sinh viên...........................Trang quản lý hình ảnh...........................................................................................................99 Hình 62 ...........Danh mục Website của Phòng Ban..............................................................112 Hình 80 ....................Cấu trúc trang của trường Đại Học Nông Lâm....................112 Hình 79 .............................................................109 Hình 77 .........................................................................................................Hình 61 ......Trang hiển thị danh sách sinh viên đại học...Trang thời khóa biểu...........108 Hình 75 ...106 Hình 71 ...........115 Hình 84 .....................107 Hình 73 ....................................................115 Hình 85 ......124 viii ............................................Trang Nghiên cứu........................................................100 Hình 64 .........................................................................Hoạt động hàng tuần.............................................121 Hình 86 ..........Trang thêm thời khóa biểu.........Trang Diễn đàn...............................Công cụ cho giảng viên......................Trang Chương trình đào tạo..................................................................................113 Hình 81 ................................................................101 Hình 65 ..........Cách tạo Website đơn vị.........109 Hình 76 ........Cấu trúc trang của Template For Web..............108 Hình 74 ........................................................................105 Hình 70 ...Danh mục Website của khoa......Trang đoàn thể...........................Export một Organizations.......Cây thư mục providers.................................................................................................................110 Hình 78 .......99 Hình 63 ............Danh mục Website của Trung tâm.......104 Hình 69 ........102 Hình 66 ......Trang Sơ đồ tỗ chức khoa Công Nghệ Thông Tin...........................................................................................................Trang tìm nhanh Thời khóa biểu.......................................

Áp dụng trên các ứng dụng đưa vào Liferay. Tìm hiểu. • Thời gian thực hiện: − Ngày được giao đề tài: 10-02-2009 − Ngày hoàn tất đề tài: 25-09-2009 • Nội dung nghiên cứu: − Tìm hiểu portal mã nguồn mở Liferay. sử dụng cơ chế Single Sign On. đánh giá và triển khai hệ thống học trực tuyến Elearning. − Tìm hiểu cơ chế đăng nhập một lần (Single Sign On) với hai sản phẩm là OpenSSO và CAS. − Tìm hiểu hệ thống học trực tuyến (E-learning) Sakai. Hiện thực lại hệ thống CMS và viết tool cho Sakai. • Kết quả chủ yếu đã đạt được: − Nắm vững cơ chế hoạt động của Liferay. − Xây dựng portal cho khoa Công Nghệ Thông Tin – Đại Học Nông Lâm bằng Liferay portal kết hợp với hệ thống học trực tuyến Sakai. − Nắm cơ chế hoạt động của OpenSSO và CAS. ix .Đại Học Nông Lâm TPHCM. − Xây dựng hoàn tất cổng thông tin cho khoa Công Nghệ Thông Tin .TÓM TẮT • Tên đề tài: Tìm hiểu và triển khai hệ thống đăng nhập một lần cho cổng thông tin dịch vụ. dựa trên cổng thông tin Liferay. − Tìm hiểu và sử dụng các chức năng hỗ trợ học và giảng dạy của hệ thống Sakai.

Trước sự phát triển đó. Bên cạnh đó.TỔNG QUAN Đặt vấn đề: Nhu cầu tìm kiếm thông tin từ Internet ngày càng nhiều. 1 . Do vậy nhu cầu đăng nhập một lần cho các dịch vụ này là không thể thiếu. Mục đích: Tìm hiểu công nghệ portal Liferay. Khuynh hướng các dịch vụ cùng nhau chia sẽ dữ liệu người dùng đang là hướng phát triển chung của công nghệ thông tin. nhóm chúng em mong muốn được tìm hiểu và giới thiệu phần nào về những công nghệ trên. Với những gì đã nghiên cứu được. do sức mạnh của Internet được ứng dụng rộng rãi. Nghiên cứu hệ thống học trực tuyến Sakai.HCM. tiến hành xây dựng cổng thông tin cho khoa Công Nghệ Thông Tin – Đại Học Nông Lâm Tp. công tác giáo dục đang dần thoát khỏi sự phụ thuộc về không gian. Cổng thông tin là một trong những nguồn cung cấp thông tin đang được áp dụng rộng rãi trên toàn thế giới. và tích hợp vào cổng thông tin theo cơ chế Single Sign On. Hệ thống học trực tuyến là một bước ngoặc trong việc hỗ trợ dạy và học thông qua mạng Internet. Nghiên cứu kỹ thuật Single Sign On để áp dụng đăng nhập một lần cho các dịch vụ đưa vào cổng thông tin. nhóm chúng em hy vọng sẽ được đóng góp một phần nhỏ vào công tác phát triển khoa.

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. 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.1.2 Lợi ích. Bảo mật tất cả các cấp độ của việc thoát hay truy xuất vào hệ thống.1. hê thống xem điểm. . Trước đây. Hình 1 .1. .1 Tìm hiểu Single Sign On.1 Khái niệm.1.1. 2 . .Khá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. Tiết kiệm thời gian khi tái lập lại mật khẩu cho một người dùng (identity user). Single Sign On. Tránh việc nhớ nhiều thông tin đăng nhập (username & password) khi dùng nhiều dịch vụ. người dùng không cần phải đăng nhập lại. thì khi truy xuất những dịch vụ khác. SSO còn được gọi là ESSO 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).1. … ứng mỗi dịch vụ chúng ta có một tài khoản riêng.NỘI DUNG BÁO CÁO Chương .

2. 12->15 tháng sẽ cho ra một phiên bản mới. Federation Management. o o o o o OpenSSO Express: Được công bố vào 7/2008. Sun Java System Fedearation Manager và Sun System SAML v2 Java Plugin. .1 OpenSSO Enterprise là gì? OpenSSO là một sản phẩm open source của SUN. 2006 – OpenSSO công bố source code.2. o OpenSSO Enterprise: 9/2008 Sun phát triển bản Enterprise. Indentity Web Service.1. Nó là một sản phẩm đơn lẽ. Access Manager. 11/2008 ra bản OpenSSO Enterprise 8. - - . kết hợp các tính năng của Sun Java System.2 Các tính năng của OpenSSO Enterprise.1. Open Single Sign On Enterprise.1.1 đưa ra bản “close source” cuối cùng cho OpenSSO.3 Các giải pháp Single Sign On. 3 . . o 2008 – Sun OpenSSO Enterprise 8. 2005 – OpenSSO project được chú ý đến. Web Service Sercurity.1. Central Authenticate Service (CAS) hoạt đông dựa trên Ticket.1. cập nhật ba tháng một lần. .1.0. Open Single Sign-On (OpenSSO) hoạt đông dựa trên Token.1.2.- Người phát triển ứng dụng không cần phải hiểu và thực hiện nhận dạng bảo mật trong ứng dụng của họ. Các phiên bản của OpenSSO. Access Control.2. .1.0. 2007 – Sun Java System Access Manager 7.1 Giới thiệu. Java Open Single Sign On ( JOSSO).0 bản open source đầu tiên hỗ trợ đầy đủ các chức năng của OpenSSO. Lịch sử phát triển. 2001 – iPlanet Directory Server Access Management Edition 5.

4 Policy Agent.1. policy agent sẽ yêu cầu server tiến hành xác thực và cấp phép. để kiểm tra xem người dùng đã xác thực hay chưa. policy agent chặn request này và kiểm tra.1. Hình 2 .2.1. Hình 3 .2. Khi một người gởi Http request để truy cập tài nguyên được bảo vệ.1. Nếu OpenSSO token được tìm thấy mà không hợp lệ.Sơ đồ xác thực của OpenSSO . 4 .3 OpenSSO Enterprise làm việc như thế nào? Khi truy cập vào những tài nguyên được bảo vệ.Triển khai OpenSSO - Workflow giải thích sự tương tác giữa các thành phần. Khái niệm.. Policy agent là web application hay chương trình với nhiệm vụ ngăn tất cả request đến ứng dụng. request cần được xác thực và phải có đủ quyền truy cập.

OpenSSO Server xác thực người dùng thông qua login form. Policy Agent cho phép truy cập ứng dụng hay không và ghi thông tin session trên URL.Sơ đồ hoạt động chung của J2EE Agent - 1. OpenSSO sẽ gởi thông tin login (username. 7. 4. password) và thông tin authorization (role) đến Agent nếu kiểm tra token hợp lệ. 5 . 3. 2.Hình 4 . 6. 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). Người dùng nhập Username / Password để xác thực. Policy Agent sẽ lấy thông tin token gởi đến OpenSSO server để kiểm tra. 8. 5. Opensso gởi token cho browser (browser sẽ lưu token dưới dạng cookie) và Browser sẽ gởi token đến cho Agent. người dùng kết nối đến ứng dụng web. 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. Từ trình duyệt.

xml của domain1 như sau: o Tìm đến thẻ <jvm-options> 6 file . có thể tạo domain khác). Trên GlassFish v2 Yêu cầu • Đã cài đặt GlassFish và tạo domain để triên khai opensso (trong trường hợp này sử dụng domain mặc định domain1 cho opensso.2.Sơ đồ hoạt động chi tiết với policy .Hình 5 ..2.1 Triển khai OpenSSO trên Server. .1.1.2 Triển Khai.2. • Sau đó thay đổi một vài thuộc tính trong. ./glassfish/domains/domain1/config/domain.

(ví dụ: c:/opensso).com:4848 thay cho http://localhost:4848. cntt.).com:port/name_app.cntt. bây giờ chạy tất cả các ứng dụng trên máy với địa chỉ http://nonglam. o Vào thư mục C:/Windows/System32/Drivers/etc/ và mở file hosts thêm vào tên domain đầy đủ và lưu lại. Triển khai • Chạy domain cần triên khai opensso (đang ví dụ domain1) với lệnh “startdomain domain1”: 7 . • Tạo FQDN (Full Qualified Domain Name) để chuẩn bị cho bước cấu hình : o FQDN = hostname + domain name. o Chú ý: full domain name có ít nhất hai dấu chấm trở lên. Thay đổi giá trị “-client” bởi “-server”  Thay đổi giá trị “-Xmx512m” bởi “-Xmx1024m” o Save và hoàn tất.com Lúc này đã tạo ra một tên domain đầy đủ.com.cntt là không hợp lệ bới vì chưa có hostname). Domain Name = Name + phần mở rộng (ví dụ: cntt. • Download opensso enterprise bản mới nhất và giải nén vào thư mục chỉ định.0.0.org….cntt.cntt.vn. để vào trang chủ của domain1 với địa chỉ: http://nonglam. File opensso.  Ví dụ: 127. Ví dụ (nonglam.war nằm trong thư mục c:/opensso/deployable-war dùng để triển khai. Ví dụ.1 localhost nonglam. cntt.

8 . Trên Tomcat Yêu cầu • Đã cài đặt tomcat • Xác định cổng chạy server. • Sau đó chọn tab “Web application” sau đó chọn deploy bên tay phải và trỏ đến file opensso. Sau đó đến phần cấu hình OpenSSO cho lần chạy đầu tiên..com:4848 và Login vào với tài khoản admin/adminadmin.cntt.Hình 6 . Triển khai • Cách đơn giản: Copy file opensso.cntt.18/webapp./domain1/autodeploy và sau đó chạy lại server.Chạy domain cần triên khai opensso • Vào trang chủ của domain1 http://nonglam.0.war vào thư mục . chạy ứng dụng OpenSSO bằng cách nhấn vào link lunch hay vào trực tiếp địa chỉ: http://nonglam. Chú ý: Có một cách deploy trực tiếp khác rất đơn giản: chỉ cần chep file opensso. Sau đó chạy lại server. • Cách khác: Sử dụng trang chủ của Tomcat để triển khai ứng dụng. bằng cách vào thư mục config.war vào thư mục c:/apache-tomat-6.war trong thư mục c:/opensso/deployable-war/ .com:8080/opensso. • Sau deploy xong.

đặc tả thông tin của OpenSSO Enterprise.com:8080/opensso (có thể sử dụng cổng khác cho opensso). • Xuất hiện màn hình báo thành công và click “Process to login” để bắt đầu đăng nhập vào Opensso với user/password: amadmin/adminadmin. Vì đây là lần chạy đầu tiên nên nó cần cấu hình ban đầu để lưu những thông tin cần thiết. nó sẽ tạo ra các thư mục “opensso”. nhập vào password và confirm password cho Amadmin user. Hình 7 . (VD: password là “adminadmin”).1. Chạy opensso với địa chỉ http://nonglam.Cấu trúc thư mục user sau khi cấu hình thành công Khi gặp sự cố.openssocfg” trong user của Window.cntt.2. 9 . và “. ví dụ “C:\Users\QuocTan”. chỉ cần xóa tất cả các thự mục này và chạy lại ứng dụng opensso để cấu hình lại.. Customize Configuration • Trên trang Default User Password. • Trên trang Server Settings. Default Configuration • User mặc định là: amAdmin • Cần nhập thông tin mặc định như password của user admin. Nhấn Next để tiếp tục.2 Cấu hình mặc định cho OpenSSO (chạy lần đầu tiên). • Chú ý: Sau khi cấu hình mặc định thành công.2.

có một hoặc nhiều OpenSSO thì cho Add to Existing Deployment và nhập vào Server URL của lần cấu hình đầu tiên. Ví dụ: o Cookie Domain: Là tên của DNS domain. nó có thể là một trong những giá trị sau:  localhost  FQDN (Full qualified http://nonglam.Customize Configuration . 10 . es(Spanish). Ngược lại.Hình 8 . cái mà OpenSSO trả về cho Browser khi nó authenticate xong và gán token SSO cho user. • Configuration Data Store Settings: Kiểm tra xem. nếu đây là lần cấu hình đầu tiên thì chọn First Instance.cntt. Một vài giá trị khác như: de(German). ja(Japanese)… o Configuration Directory: Là vị trí thư mục để lưu thông tin cấu hình của OpenSSO Enterprise. Nhấn Next để tiếp tục. fr(french).com:8080 domain name).Thông tin OpenSSO o Server URL: Là host của server (nơi mà triển khai opensso). o Platform Locale: Là ngôn ngữ mặc định cho OpenSSO. Mặc định là en_US (US English).

11 . o OpenSSO User Data Store: Lưu trữ dữ liệu người dùng trong OpenSSO user data store. • User Data Store Settings. o Port: Cổng của Directory Server. o Host name: Là tên host của Directory Server. Chú ý: Lưu trữ thông tin người dùng trong OpenSSO User Data Store được sử dụng đối với lượng người dùng nhỏ.Configuration Data Store Settings • Configuration Store Detail. o Other User Data Store: Lưu trữ dữ liệu người dùng trong một data store như: Sun Java System Directory Server. Microsoft Active Directory hoặc IDM Tivoli Directory Server.  Sun Java System Directory Server: Lưu trữ thông tin cấu hình trên Sun Java System Directory Server. o Root Suffix: Là Directory Server khởi tạo ban đầu. o Configration Data Store:  OpenSSO: Lưu trữ dữ liệu cấu hình của opensso dưới thư mục configuration_directory/opends trên local server.Hình 9 . Mặc định là 50389. o SSL Enable: sử dụng sử dụng giao thức LDAPs để kết nối đến Directory Server.Customize Configuration .

Tham khảo Install Sun Java System Directory Server and Creating Instance for Sun OpenSSO Enterprise User Data. • Generic LDAP: Directory Server khộng co OpenSSO Schema loaded.Multiple OpenSSO Enterprise Instance: nếu cấu hình nhiều OpenSSO để sử dụng cùng một Directory Server như user data store.  Port: Cổng của Directory Server.  User Data Store Type: • LDAP with OpenSSO Schema: Directory Server phải có OpenSSO Schema Loaded.  Passoword: Mật khẩu của admin trong directory server. Mặt định là 389.  Root Suffix: tên đường dẫn của thư mục gốc  Login ID: Là admin của directory server.  SSL Enable: Cho phép SSL security. Hình 10 .  Directory Server Name: Tên của Directory Server. 12 .User Data Store Settings o User Store Detail.

ta phải login vào OpenSSO với quyền Admin.3.Nhấn Next để tiếp tục • Site configuration: Chọn No.2. Hình 11 .1. Chọn Access ControlReal NameSubject (thẻ này sẽ quản lý user và group). Điền đầy đủ thông tin cho user.1. • Chỉ định password cho policy agent. . Chọn OK hoàn tất tạo user (đánh dấu chọn vào active để kích hoạt user). • Xem lại summary detail và nhấn Create configuration.1 Tạo user. chọn New để tạo user mới. Nhấn Next để tiếp tục.3 Tạo user và group trong OpenSSO.2. • Trong thẻ con User. • Quay lại tab user hiển thị tất cả user hiện có. Muốn cấu hình trong OpenSSO. Nhấn Next để tiếp tục.Quản lý user và group trong OpenSSO . Sau đó nhấn vào user vừa tạo để xem chi tiết và những tab con: 13 .

3.Hình 12 . o User: Cho phép thêm user vào group. Nhấn Save để lưu lại thông tin.1. 14 . • Nhấn vào tên group để và trang hiệu chỉnh group.2. • Từ tab Subject. Và điền ID của Group và nhấn OK để hoàn tất. cụ thể là gán role cho group trong file sunxml). o General: Hiển thi thông tin của group (thông tin này sẽ được sử dụng đế cấu hình cho ứng dụng.2 Tạo group. . chọn tab con Group. o Group: Cho phép user chọn group để gia nhập. Chọn user và nhấn Add để thêm user vào group. Sau đó chọn New để tạo group mới.Quản lý user trong OpenSSO o General: Hiển thị thông tin về user và cho phép chỉnh sửa thông tin.

1. để nhận biết Agent. • Thông tin này được opensso quản lý. Hình 14 .2 Tạo Agent Profile.1.1 Giới thiệu Agent Profile. đăng nhập vào opensso admin.4. • Agent Profile lưu những thông tin về Agent.2.2.4 Tạo Agent Profile Trong OpenSSO.Thêm user vào group trong OpenSSO .Hình 13 .4. .2.Tạo Agent Profile 15 .1. . Và chọn tab Access Control  Nhấn RealName  Agent  J2EE New. • Trước hết.

3 Cấu hình Agent Bảo Vệ J2EE Application.txt). o Server URL: Là địa chỉ của OpenSSO đã triển khai. o Configuaration: Chọn Centralized (cho phép bạn chỉnh sửa thông tin agent bằng giao diện). o Password: Mật khẩu của agent (hãy lưu lại mật khẩu thành một file text để chuẩn bi cài đặt Agent.com:8888/agentapp Ứng dụng agentapp là một ứng dụng web. . sẽ triển khai lên domain này sau khi cài đặt agent.Vi dụ: password.4. Ví dụ: Ta sẽ cài đặt Agent trong domain đã tạo ở trên : Tên domain Tên user admin (user) Pass (it nhất 8 ký tự) Cổng admin (addminport) Cổng chạy ứng dụng (instanceport) mydomain Quoctan 12345678 5050 8888 Địa chỉ agent là : http://nonglam. Ví dụ: http://nonglam.1.2. o Vào agent profile và opensso đã tạo để cấu hình agent.com:8080/opensso o Agent URL: Là địa chỉ của Agent dự định sẽ cài đặt sau phần cấu hình này. bạn không thể quản lý agent bằng giao diện trong opensso admin (phải dùng lệnh). bắt buộc phải chạy lại container (web server chứa agent). • Một vài chú ý khi cài đặt.cntt. Nếu chọn Local. o Những thuộc thuộc tính nếu có ghi “Hot-swap:no” thì khi cấu hình xong.Điền đầy đủ thông tin các trường sau: o Name: Tên của agent (nhớ tên này để sau đó cài đặt Agent trên web server chứa các application). 16 . o Nhấn Create để tạo agent. Access ControlReal NameAgent J2EE tab Agent Name.cntt.

• Chọn Global tab và thiết lập những thông tin như sau: o Nhấn General và tìm đến thuộc tính Agent Filter Mode: Xóa hết những giá trị có sẵn.1.5 Cài đặt Policy Agent 3. o Chú ý chọn Save để lưu kết quả.Cấu hình Login Form URI trong OpenSSO . o Đến thuộc tính Agent Debug Level: Đánh dấu chọn vào “message” và chọn Save để lưu. Sau đó thêm “J2EE_POLICY” vào trường “Coressponding Map Value”.com:8888/agentapp 17 .• Đăng nhập vào Opensso với quyền amadmin.xml của ứng dụng với thẻ “Form-Login-Page” ).com:8080/opensso. Tham khảo ở trên. cổng 8080: Cài đặt Policy Aagent tại mydomain và chạy trên cổng 8888: http://nonglam. • Nếu ứng dụng đã tồn tại web-tier security thì thêm phần cấu hình sau: Thêm giá trị vào thuộc tính Login Form URI (giá trị này được cấu hình trong web. Vào Access ControlReal NameAgent J2EE tab Agent Name.cntt.0 • Theo như mô hình. Ví dụ: application server sử dụng là Galssfishv2 Cài đặt Opensso tại domain1 chạy trên http://nonglam.cntt. Opensso được cài đặt ở một server và OpenSSO Policy Agent cài đặt chung server với những ứng dụng mà nó bảo vệ.2. Hình 15 .

Cài đặt • Vào CMD và di chuyển đến thư mục bin của J22Agent.5. (ví dụ: adminadmin) • Nếu chưa có domain. Yêu cầu chuẩn bị • Tải J2EE Agent tương ứng cho Glassfishv2 • Giải nén ra thư mục chỉ định. • Nhớ địa chỉ Server URL của OpenSSO và Agent URL trong Agent Profile.1 Trên GlassFish. Chú ý: Chạy server chứa Opensso (ở đây là domain1) trước khi cài đặt Agent. thì hãy tạo domain để cài đặt Agent len domain này. Ngược lại.txt) và password này phải giống với password đã lưu trong Agen Profile. • Điền đầy đủ thông tin cho các trường như sau: 18 .2.• Chú ý: Agent và Opensso bắt buôc phải khác server (nếu sử dụng Glassfish thì phải khác domain). C:/myagent/j2eeagents/ appserver_v9_agent/bin và gõ lệnh agentadmin –install để bắt đầu. chọn domain để cài đặt agent (ví dụ: myagent) và nhớ đường dẫn đến thư mục config của domain (c:/glassfish/domains/myagent/config) để chuẩn bị cho việc cài đặt. Ví dụ: C:/myagent • Cần tạo file chứa password (ví dụ: c:/myagent/password. .1.

o AgentURL: Địa chỉ của Agent (cụ thể là của ứng dụng agentapp) mà ta dự định triển khai.0 Kiến trúc thư mục Agent. 19 .Hình 16 . Tên này đã được tạo trong phần Agent Profile trong OpenSSO console.2 Sử dụng Policy Agent 3. o Enter agent profile name: Đây là tên agent profile. o OpenSSO server URL: Địa chỉ của Opensso đã triển khai.5.Cài đặt J22Agent o Application server config directory path: Đường dẫn đến thư mục config của Domain mà bạn đã chọn để cài đặt agent. .1. • Sau đó chọn [1] (mặc định) để tiếp tục phần cài đặt và hoàn tất. o Enter the path to password file: Đường dẫn đến file chứa password (trong phần yêu cầu đã tạo).2.

uninstall o Xem danh sách agent: agentadmin –listAgents o Xem thông tin Agent: agentadmin 20 . o Agentxxx (trong trường hợp này là Agent001): Nó sẽ được tạo ra khi cài đặt agent thành công. o Sampleapp: Chứa source code và file triển khai của agentsample.war.Hình 17 . nếu cài tiếp thì sẽ tự động tăng lên Agent002. Sử dụng • Sau đây là một số lệnh thường sử dụng trong Agent. Để sử dụng lệnh của Agent phải chuyển đến thư mục bin của Agent. đây là agent đã được cài đặt chứa thông cấu hình agent. Cụ thể là agentadmin. Đây là ví dụ mẫu để làm quen với agent.Kiến trúc thư mục Agent • Một số thông tin về các thư mục trong Agent.bat .install o Xóa Agent: agentadmin . o Bin: Chứa tập tin thực thi . o Cài đặt Agent: agentadmin . nó sẽ được triển khai lên web server (nơi mà agent được cài đặt) sau khi cài đặt Agent.bat o Etc: Chứa file triển khai agentapp.ear...

• Một số cấu hình khác nhau như về phân quyền hay kết nối CSDL người dùng.1.2 Yêu Cầu.xml phải khai báo phương thức xác thực là FORM. đã khai báo trong file web.xml. o Ứng dụng không có chế độ mật.6. và để Agent hiểu thì bắt buộc trong file web. vì thế việc cấu hình làm sao để Agent hiểu ứng dụng đã tồn tại chính sách bảo mật theo chuẩn J2EE.sun.xml của ứng dụng.xml phải khai báo Agent Filter của J2EE Agent trong web.1 Giới thiệu.2. thì lúc này việc cấu hình chính sách bảo mật cho ứng dụng sẽ làm toàn bộ trên Agent.identity. • Khi triển khai ứng dụng.xml.2. • Một ứng dụng khi triển khai thường có hai trường hợp xảy ra: o Ứng dụng đã tồn tại các cấu hình về security. Vì mỗi web container sẽ có yêu cầu cấu hình khác nhau cho mỗi ứng dụng về bảo mật. • Môt ứng dụng theo chuẩn J2EE muốn agent bảo vệ thì trong file web.6.agents. 21 . .1. Chép và dán đoạn khai báo sau vào web.1.6 Bảo vệ ứng dụng Java EE Application với OpenSSO Policy Agents..AmAgentFilter </filter-class> </filter> <filter-mapping> <filter-name>Agent</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping> • Nếu Web app đã cấu hình chính sách bảo mật trong file web.2.xml của ứng dụng <filter> <filter-name>Agent</filter-name> <filter-class> com.filter. . trước hết phải xem xét là triển khai trên web container nào.

mã nguồn mở được phát triển bởi đại hoc Yale. Central Authenticate Service (CAS). Hỗ trợ nhiều thư viện phía client được viết bởi nhiều ngôn ngữ: PHP.jsp</form-login-page> <form-error-page>/login/LoginError..3. còn đượ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.3. CAS xác thực nhiều loại thông tin người dùng như username/password. Cookie này sẽ bị hủy khi user đăng xuất khỏi CAS hoặc đóng trình duyệt. Cookie được sinh ra bởi CAS.jsp</form-error-page> </form-login-config> </login-config> • Chú ý : cấu hình Agent Mode Filter là J2EE_POLICY để Agent hiểu được Java EE Application.1. .. khởi đầu từ năm 1999.0 22 - - . Thời gian hết hạn là 8 giờ. … CAS lấy thông tin Single Sign On thông qua cookie.1.1. .<login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/login/Login.2 Các phiên bản của CAS.3. 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.3. • CAS 1.để xác thực những thông tin người dùng khác nhau này. dễ sử dụng. Là một Web Single Sign On. CAS còn cung cấp tính năng “Remember Me”.1.0 Được tạo bởi Yale University.1. • CAS 2. CAS cung cấp nhiều trình quản lý xác thực (authenticate handler) khác nhau. PL/SQL. 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. CAS sử dụng những trình quản lý xác thực tương ứng.1 CAS là gì? Là một giải pháp Single Sign On.1. Java. . .1 Giới thiệu. X509 Certificate. .

mềm dẻo hơn. 100% tương thích với CAS 2. Sau đây là một số mã lỗi được trả về response nếu /serviceValidate thất bại. Tham số “url” có thể được chỉ định đến /logout và nếu được chỉ định. 23 . • JA-SIG CAS 3. response chứa một mã lỗi với thông điệp thất bại tương ứng. Khi thành công. o INVALID_REQUEST: Không tìm thấy tham số cần tìm trong request. CAS sẽ sử dụng những URI sau: /logout o Hủy Single Sign On session và ticket granting cookie o Hiển thị một trang trạng thái để báo với user đã đăng xuất. Mục đích là làm cho CAS tương thích cao hơn.3.1. /validate o Kiểm tra tính hợp lệ của service.- Cũng được tạo ra bởi Yale University. “url” sẽ được hiển thị trong trang logout cùng với thông báo đăng xuất. service ticket được sinh ra từ thông tin xác thực lấy từ request. o Những tham số sau có thể chỉ định đến /validate URI  Service (bắt buộc)  Ticket (bắt buộc) – service ticket được sinh ra bởi /login  Renew (không bắt buộc) – nếu tham số này được thiết lập.3 CAS URIs.1. Khi thất bại. response chứa username và proxy-granting ticket.0 - Trở thành JA-SIG project vào 2004. Giới thiệu thêm tính năng mới là Proxy Authentication.  Ptgurl – url của proxy callback /serviceValidate sẽ trả về một xml-formatted response.0 . CAS thực hiện Single Sign On thông qua những URI và sinh ra những ticket khác nhau. CAS làm service ticket có hiệu lực.

/samlValidate o SAML (Secuirty Assertion Markup Language) framework. BAD_PGT có nghĩa là pgt không hợp lệ. Khi thành công. response sẽ chứa đựng proxy ticket. respone chứa PGT và danh sách các proxy cá mà việc xác thực được thực thi. Thất bại. lấy PTG thông qua /proxyValidate hoặc /serviceValidate o Những tham số sau được yêu cầu cho /proxy URI  Pgt – proxy granting ticket  TargetService – service identifier của back-end service. /proxyValidate làm việc giống như /serviceValidate. response chứa đựng mã lỗi với thông điệp tương ứng. Những tham số và mã lỗi giống tương tự. Service identifier phải khớp với service identifier được chỉ định đến /proxyValidate nhờ vào sự hợp lệ của proxy ticket. Thành công. o INVALID_SERVICE: Ticket được cung cấp không hợp lệ nhưng service được chỉ định không khớp với service mà liên kết với ticket. o /proxy sẽ trả về xml-formatted service response. và ngược lại /proxy o Cung cấp proxy ticket đến những service. Nếu nó 24 - . Các mã lỗi sẽ được trả về trong /proxy: INVALID_REQUEST. BAD_PGT. Những proxy được viếng thăm gần nhất sẽ nằm trên đỉnh.o INVALID_TICKET: Ticket được cung cấp không hợp lệ hoặc ticket không đến từ login và “renew” được thiết lập trên validation. INTERNAL_ERROR. ngoại trừ nó làm cho proxy ticket có hiệu lực. URI /login /logout /validate Mô tả Hiển thị khung đăng nhập yêu cầu người dùng xác thực Hủy Single Sign On session và ticket granting cookie Kiểm tra tính hợp lệ của Service Ticket. o INTERNAL_ERROR: Lỗi cục bộ xuất hiện trong khi kiểm tra tinh hợp lệ của ticket.

user của CAS không thể Single Sign On TGT sẽ được thêm vào HTTP Cookie (cở sở để Single Sign On) và nó sẽ được kiểm tra khi truy cập ứng dụng. Là một chuỗi ký tự chứa dữ liệu bảo mật ngẫu nhiên và bắt đầu bằng “TGT”.html /services/manage. Chỉnh sửa những service đã đăng ký Quản lý những service đã đăng ký như: thêm. chứa id duy nhất và thời gian hết hạn. Khi 25 .3.html /services/logout. Ticket-Granting Ticket (TGT).không sử dụng proxy authentication /serviceValidate Kiểm tra tính hợp lệ của Service Ticket và trả vể một XML-fragment và sinh ra proxy-granting ticket khi được yêu cầu Thực thi giống như /serviceValidate và ngoài ra còn kiểm tra tính hợp của proxy ticket Cung cấp Proxy Ticket đến service /proxyValidate /proxy /samlValidate /services/add.4 CAS Tickets. Ví dụ: TGT sẽ được lưu xuống browser là TGC (Ticket Granting Cookie) là một HTTP Cookie của CAS. Thêm những service đến danh sách Registered Services. 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-.1. TGT được tạo ra CAS Server xác thực thành công.TGC-.html /services/edit. một số ticket được tạo ra với mục đích lưu trữ thông tin và bảo mật. Đăng xuất từ trang admin service Xóa service bởi tham số “id” được cung cấp .html Một tính năng admin.1. Không có TGT. Trong quá trình xác thực của CAS. sửa. Sau đây là khái niệm một số ticket được sử dụng trong CAS.html /services /deleteRegisteredService. Cookie này duy trì trạng thái đăng nhập cho client. xóa.…) và nó là id duy nhất cho một thao tác nào đó.

Service Ticket (ST). CAS Proxy là một service muốn truy xuất những service khác thay mặt cho một user riêng biệt.com Mỗi Service chỉ có một service ticket duy nhất và được sử dụng một lần duy nhất. Nếu một service mong muốn proxy xác thực client đến một back-end service. Giá trị của TGC bắt đầu bằng “TGC-“. - Proxy-Granting Ticket (PGT). Proxy ticket chỉ hợp lệ cho service identifier được chỉ định đến /proxy url khi chúng được sinh ra.service. một service có thể yêu cầu một proxy ticket. ST là một chuỗi ký tự.0. cookie này sẽ được kiểm tra đế tự động đăng nhập cho user. Ví dụ: ticket=ST-1856339-aA5Yuvrxzpv8Tau1cYQ7 Proxy Ticket (PT).client chuyển đến các ứng dụng khác. Proxy Ticket là một chuỗi ký tự ngẫu nhiên mà một service sử dụng như thông tin đăng nhập để truy cập vào một back-end service thay mặt cho client. Proxy ticket bắt đầu bằng “PT”. được sử dụng bởi client như là thông tin xác thực để truy cập đến dịch vụ. Proxy Ticket (PT) được sinh ra từ CAS nhờ vào một service thể hiện của một Proxy Granting Ticket hợp lệ và một service identifier (giá trị của tham số “url” của /proxy url) cho back-end service đến cái nó kết nối. Ví dụ: https://server/CAS/login?service=http%3A%2F%2Fwww. cách chúng ta xác thực service được yêu cầu để gởi PGT. nó yêu cầu một proxy-granting ticket. Trên một ticket hợp lệ. PGTIOU đến 26 . Proxy-Granting Ticket IOU. TGC sẽ bị hủy khi đóng trình duyệt hay client chọn logout từ ứng dụng. Trong CAS 2. Service ticket phải bắt đầu với ký tự “ST-“. PGT được lấy từ CAS nhờ vào sự hợp lệ của service ticket hoặc proxy ticket. Service Ticket sẽ được tạo ra khi CAS Url có chứa tham số service và thông tin xác thực được truyền đến và xác thực thành công.

o Ứ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. được sinh ra bởi /login. Proxy callback url phải chạy thông qua kênh bảo mật. . 27 . CAS server trả về một Service Ticket cho trình duyệt. Login Ticket. Là một chuỗi ký tự. phải là duy nhất và bắt đầu với “LT-”. 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. 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.1. Xác thực thành công. o Ứng dụng sử dụng ST nhận được từ trình duyệt và sau đó chuyển nó cho CAS server. trả về trong ticket hợp lệ. o Ứng dụng đăng nhập cho người dùng và bắt đầu phục vụ người dùng. Login ticket được sinh ra bởi /login. 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 nhập UserId / Password vào khung đăng nhập. o Nếu TGC này là hợp lệ. service sẽ rút TGTIOU và sử dụng nó để tìm TGT từ bộ nhớ.1. TGC được sinh ra và thêm vào trình duyệt dưới hình thức là cookie. phản hồi TGTIOU.proxy callback url được chỉ định như một request parameter. Từ response này.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.3. là một thông tin đăng nhập và được đưa đến /login. Chứng thực người dùng với CAS server. o CAS server sẽ trả về ID của người dùng cho ứng dụng. Sau đó. trình duyệt truyền ST vừa nhận cho ứng dụng.5 Nguyên tắc hoạt động của CAS. Mục đích là ngăn cản sử phản hồi lại thông tin xác thực. o Người dùng truy xuất ứng dụng thông qua trình duyệt. Chúng ta xác minh certificate của nó.

o Xác thực thành công. Vì chưa nhận được TGC nên ứng dụng sẽ chuyển hướng người dùng cho CAS server. o Người dùng truy xuất ứng dụng thông qua trình duyệt. o Ứng dụng đăng nhập cho người dùng và bắt đầu phục vụ người dùng. o Ứng dụng chuyển ST cho CAS server và nhận về ID của người 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 cập vào ứng dụng mà chưa chứng thực với CAS server.Hình 18 . Thông tin được truyền đi thông qua giao thức HTTPS. 28 . o Người dùng cung cấp UserId / Password của mình thông qua khung đăng nhập để CAS xác thực. o Ứ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. CAS server sẽ trả về cho trình duyệt đồng thời TGC và ST.

3.Hình 19 .1.Người dùng truy cập vào ứng dụng mà chưa chứng thực với CAS server .6 CAS Architecture. 29 .1. Login Flow.

CAS sẽ kiểm tra Ticket granting cookie (TGC) đã tồn tại chưa. Nếu TGC đã tồn tại.Hình 20 . URI chủ yếu là /login. thì nó sẽ kiểm tra thời gian hết hạn của cookie và nếu còn thời hạn thì Service Ticket (ST) sẽ được sinh ra.CAS – Login Flow - Người dùng có thể truy xuất thông qua nhiều URI khác nhau. Nếu TGC không tồn tại hay đã hết hạn thì CAS sẽ buộc người dùng nhập thông tin đăng nhập vào khung đăng nhập. Khi người dùng nhập địa chỉ http://server/CAS/login từ trình duyệt. 30 .

jsp Proxy Flow 31 . CAS kiểm tra có hay không service parameter thông qua /login URL. CAS sẽ lấy danh sách AuthenticationHanders từ deployerConfigContext.xml và kiểm tra xem nó hỗ trợ AuthenticationHander nào. Nếu người dùng hợp lệ thì một Ticketgranting Ticket (TGT) sẽ được sinh ra và thêm vào cookie. Nếu người dùng xác thực không hợp lệ sẽ được chuyển đến khung đăng nhập để đăng nhập lại. Nó sẽ đưa thông tin đăng nhập cho AuthenticationHander mà nó hỗ trợ và kiểm tra thông tin đăng nhập của người dùng.jsp - - CAS gọi Service Identifier với ticket là tham số. CAS tạo ra một Service Ticket (ST) và thêm Service Ticket này đến Ticket Registry. giá trị là service ticket (st).com/auth. Các client có trách nhiệm gọi /serviceValidate URI của CAS để kiểm tra service và service ticket. Ví dụ: https://server/CAS/login?service=http://www.jsp Ticket param name: ticket Service Ticket value: ST-1856339-aA5Yuvrxzpv8Tau1cYQ7 Proxy param name: pgtUrl Proxy-granting Url value: https://server/test.findtechies.com/auth.servertechies.- Người dùng nhập thông tin đăng nhập và chọn Submit. /serviceValidate sẽ được gọi bởi filter của client Service param name: service Service Identifier value: https://www.

Nếu parameter “url” có giá trị. Ít tài liệu tham khảo.CAS – Logout Flow Khi người dùng muốn đăng xuất khỏi một service. 32 . một thông báo đăng xuất thành công sẽ được hiển thị với một liên kết đến giá trị url.CAS – Proxy Flow Logout Flow Hình 22 . Không Single Sign-Off. người dùng phải gọi logout URI. Hạn chế CAS chỉ giải quyết authenticate. CAS sẽ hủy Ticket-Granting Cookie và kiểm tra /logout URI có chứa parameter url hay không.Hình 21 . ngược lại thì chỉ có thông báo đăng xuất thành công. không authorization.

1.CAS . CAS sử dụng giao thức SSL cho nên cần phải cấu hình Tomcat để hỗ trợ SSL. Hình 23 . Triển khai CAS trên Tomcat Server. cấu hình ứng dụng để giao tiếp với CAS Server.Liferay .. Sử dụng keytool để self-sign một certificate. Phần này hướng dẫn về việc triển khai CAS cho các ứng dụng: Cấu hình CAS trên Server Container.2 Triển Khai.2.3.3.Mô hình triển khai Sakai . Chạy cmd với quyền Administrator và chuyển đến thư mục bin của JDK_Home 33 .1.1 Cấu hình Tomcat Server để chay CAS.

O=Pacific Disaster Center. Cấu hình tomcat server.0>cd bin C:\Program Files\Java\jdk1.cntt. OU=Information Systems. ST=HI. L=Kihei. keystore pass. C=US Serial number: 462030d8 Valid from: Fri Apr 13 15:39:36 HST 2007 until: Thu Jul 12 15:39:36 HST 2007 Certificate fingerprints: MD5: CC:3B:FB:FB:AE:12:AD:FB:3E:D 5:98:CB:2E:3B:0A:AD SHA1: A1:16:80:68:39:C7:58:EA:2F:48:59:AA:1D:73:5F:56:78:CE:A4:CE Chú ý: khi keystore được tạo.6.0\bin>keytool -export -alias tomcat -keypass changeit -file server Enter keystore password: changeit Certificate stored in file <server> //self-sign C:\Program Files\Java\jdk1.6.//tao keystore C:\Program Files\Java\jdk1.. Thêm vào những parameter cho keystore file. ST=HI.\jre\lib\security\cacerts Enter keystore password: changeit Owner: CN=localhost. Bỏ comment element “connector” cho cổng 8843 (SSL). O=Pacific Disaster Center. O=Pacific Disaster Center. 34 .0\bin>keytool -genkey -alias tomcat -keypass changeit -keyalg RSA Enter keystore password: changeit What is your first and last name? Chỗ này phải điền full [Unknown]: nonglam.0\bin>keytool -import -file server -keypass changeit -keystore .6. mặt đinh sẽ được lưu trong C:/Document and Setting/User/. L=Kihei.xml.xml trong thư mục config của Tomcat. L=Kihei. C=US Issuer: CN=localhost.6. trustore file và SSLEnable = true.Keystore. Mở file server. OU=Information Systems. C=US correct? [no]: yes //xuất ra file certificate C:\Program Files\Java\jdk1.com What is the name of your organizational unit? [Unknown]: Information Systems What is the name of your organization? [Unknown]: Pacific Disaster Center What is the name of your City or Locality? [Unknown]: Kihei What is the name of your State or Province? [Unknown]: HI What is the two-letter country code for this unit? [Unknown]: US Is CN=localhost. OU=Information Systems. ST=HI.

2. Cấu hình CAS Server xác thực thông qua LDAP. Sau khi tải CASServer về. tiếp theo cấu hình cách xác thực cho CAS.2 CAS Authenticate.3.1 Connector on port 8443 --> <Connector port="8443" maxHttpHeaderSize="8192" SSLEnabled=”true” maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:/Documents and Settings/[user]/.2.keystore" keystorePass="changeit" truststoreFile="C:/Program Files/Java/jdk1.5. tôi chọn hai cơ chế xác thực cho CAS: LDAP và JDBC.Define a SSL HTTP/1.<!-.509 Certificates Active Directory Generic Legacy Trusted Trong phần này.0_11/jre/lib/security/cacerts" /> .Cơ chế xác thực mà CAS hỗ trợ - LDAP JDBC RAIDUS Trusted X.3. 35 . Sau khi triển khai CAS server.1. Hình 24 . bung ra một thự mục CAS-server-3.

xml trong thự mục CAS_home/CAS-serverwebapp/src/main/webapp/WEB-INF và sửa lại nội dung như sau: o Trong thẻ <beans>…</beans> thay AuthenticatedLDAPContextSource bằng nội dung như sau: <bean id="contextSource" class="org. 36 .groupId}</groupId> <artifactId>cas-server-support-ldap</artifactId> <version>${project.ldap.support.adaptors.cas.jasig.cas. o Build lại CAS-server với lệnh: mvn package install (đã cài đặt maven).springframework.ldap.- Mở pom.support.jasig.xml trong %CAS_HOME%/CAS-server-webapp.o=nonglam. sau: <dependency> <groupId>${project.dc=com" /> <property name="contextSource" ref="contextSource" /> </bean> </list </property> - Build và Deploy.version}</version> </dependency> thêm phần - Mở deployerConfigContext. <property name="authenticationHandlers" > <list> <bean class="org.handler.LdapContextSource"> <property name="pooled" value="true"/> <property name="urls"> <list><value>ldap://nonglam.HttpBasedServiceCredentials AuthenticationHandler"> <property name="httpClient" ref="httpClient" /> </bean> <bean class="org.BindLdapAuthenticationHandler" > <property name="filter" value="uid=%u" /> <property name="searchBase" value="ou=cntt.com:5389</value></list> </property> <property name="userDn" value="cn=Directory Manager"/> <property name="password" value="123456"/> </bean> thế o Thiết lập AuthenticationHander: Thêm nội dung sau vào bên trong thẻ <bean id=authenticationManager”>…</bean>.cntt.authentication.core.

groupId}</groupId> <artifactId>cas-server-support-jdbc</artifactId> <version>${project. Chạy tomcat server và chạy https://nonglam.jasig.xml.QueryDatabaseAuthenticationHandler"> <property name="dataSource" ref="dataSource" /> <property name="sql" value="select [password] from [user] where lower(username) = lower(?)" /> </bean> </list> </property> - Đinh nghĩa datasoure để kết nối CSDL: 37 . Trong deployerConfigContext.com:8443/CAS/login Cấu hình CAS Server xác thực thông qua JDBC. Mở pom.jdbc.SearchModeSearchDatabaseAuthenticationHandler"> <property name=" tableUsers"><value>name of tables</value></property> <property name="fieldUser"> <value>name of field username</value></property> <property name="fieldPassword"><value>name of field password</value></property> <property name="dataSource" ref="dataSource"/> </bean> <!--Query with login information --> <bean class="org.jdbc.version}</version> </dependency> - Chép jdbc driver vào .war trong thư mục %CAS_HOME %/CAS-server-webppp/target vào thư mục webapp của tomcat.cntt.jasig.cas.cas.xml trong %CAS_HOME%/CAS-server-webapp.adaptors.o Sau build thành công chép CAS. thêm phần sau: <dependency> <groupId>${project. thêm nội dung sau bên trong thẻ <property name="authenticationHandlers"> <property name="authenticationHandlers"> <list> <bean class="org.adaptors../WEB-INF/lib của CAS application.

3 Triển khai ứng dụng với CAS./WEB-INF/lib) của ứng dụng.commons.0.xml phải thêm filter của CAS Client: 38 .mysql. Tải CAS client (CASclient-2.apache. Sử dụng một giải pháp bảo mật ứng dụng có hỗ trợ cơ chế xác thực CAS.jar): http://www.BasicDataSource"> <property name="driverClassName"> <value>com. giao tiếp được với CAS Server thì ứng dụng phải có thư viện CAS Client để giao tiếp với CAS Server.2. Để ứng dụng.ibiblio.3..1. trong web.4.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/mydb</value> </property> <property name="username"><value>root</value></property> <property name="password"><value>password for root</value></property> </bean> - Buid CAS với lệnh : ‘mvn package install’ . có thể chọn một trong các giải pháp sau: o Security Filter o Acegi Security o Spring Security Cài đặt CAS Client cho ứng dụng. Chú ý: Đối với tomcat6 phải chép commons-logging-1.1./CAS-Home/module của CAS Server) Để CAS hiểu được ứng dụng.jdbc.1.Data source definition --> <bean id="dataSource" class="org.jar vào thư mục lib của tomcat (lấy từ .<!-.org/maven/CAS/jars Chép tệp tin jar này vào thư mục lib (.dbcp. Thực hiện theo từng bước sau: Cài đặt CAS client cho ứng dụng..

jar.cntt. Khung đăng nhập của ứng dụng sẽ không sử dụng và thay vào đó là khung đăng nhập của CAS.client.com:8443/cas/login</param-value> </init-param> <init-param> <param-name>edu.cntt.<filter> <filter-name>CAS Filter</filter-name> <filter-class>edu.tp.1.cntt.client.tp.its.CASFilter</filter-class> <init-param> <param-name>edu. common-collection.jar.its.filter.tp.its.jar đến .yale. Để Security Filter hiểu được CAS thì chúng ta chỉnh sửa lại soruce code.its.cas. Cài đăt Secruity Filter cho ứng dụng. Chép các tệp tin jar trong lib của security filter: securityfilter. Chỉnh sửa web.com (Full Domain) phải điền giống như là certificate đã tạo khi cấu hình trong tomcat server. common-logging. Bởi vì.yale..client.validateUrl</param-name> <param-value>https:// nonglam.com:8080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Filter</filter-name> <url-pattern>/* </url-pattern> </filter-mapping> - Chú ý: Server name: nonglam.yale.tp.filter.loginUrl</param-name> <param-value>https://nonglam.filter. CASclient2.com:8443/cas/serviceValidate</param-value> </init-param> <init-param> <param-name>edu.jar.jar./WEB-INF/lib của ứng dụng. common-codec.cntt.client.xml như sau: - - 39 .cas.cas.filter.2. Mặc định Security Filter chỉ hỗ trợ hai cơ chế xác thực cở bản là: FORM và BASIC. common-beanutils.serverName</param-name> <param-value> nonglam.yale.cas.jar.

SecurityFilter</filter-class> <init-param> <description> Configuration file location </description> <param-name>config</param-name> <param-value>/WEB-INF/securityfilter-config.securityfilter. không cần single <description>Validate config file if set to true</description> on sign <param-name>validate</param-name> <param-value>false</param-value> </init-param> <init-param> <description> As an example a login form can define "logMeIn" as it action in place of the standard "j_security_check" which is a specia flag user by app servers for container managed security.<filter> <filter-name>Security Filter</filter-name> <filter-class>org.xml để thiết lập chính sách bảo mật 40 .xml</param-value> </init-param> Value = “true” khi ứng dụng <init-param> chạy độc lập. </description> <param-name>formPattern</param-name> <param-value>/logMeIn</param-value> </init-param> </filter> - Tạo ra file securityfilter-config.filter.

Khi cấu hình Liferay sử dụng CAS với mục đích là Single Sign On với những ứng dụng khác. Thông thường.mysql.<securityfilter-config> <security-constraint> <web-resource-collection> Phân quyền cho tài <web-resource-name>Admin Pages</web-resource-name> nguyên: chỉ định role cụ <url-pattern>/admin/*</url-pattern> thể cho các tài nguyên </web-resource-collection> cần bảo vệ <auth-constraint> <role-name>admin</role-name> </auth-constraint> </security-constraint> Thay thế FORM medthod của ứng dụng bằng CAS method. Liferay và CAS.xml.jdbc. ta phải cấu hình Liferay cho CAS và LDAP. Và loại bỏ các login page của <login-config> ứng dụng <auth-method>CAS</auth-method> <form-login-config> <form-default-page>/commons/default. khi triển khai.catalina.2.Driver"/> <realm-param name="debug" value="0"/> <realm-param name="connectionURL" value="jdbc:mysql://localhost/objtest"/> <realm-param name="connectionName" value="root"/> Chỉnh định <realm-param name="connectionPassword" value="123456"/> đến csdl <realm-param name="userTable" value="user"/> người dùng của ứng <realm-param name="userNameCol" value="username"/> dụng (trước <realm-param name="userCredCol" value="password"/> đây thay vì <realm-param name="userRoleTable" value="user"/> cấu hình <realm-param name="roleNameCol" value="groupName"/> ngay trong <!--realm-param name="digest" value="MD5"/--> web server) </realm> - Cấu hình CASclient cho ứng dụng.securityfilter. Chú ý CAS-filter phải đặt vị trí đầu web. để lưu trữ thông tin người dùng thì LDAP là lựa chọn tốt nhất. 41 .CatalinaRealmAdapter" /> <realm className="org. Trước hết.start with a Catalina realm adapter to wrap the Catalina realm defined below --> <realm className="org.JDBCRealm"> <realm-param name="driverName" value="com. Vì thế.1. Chỉ cần import nó vào keystore cacerts của jre Liferay.4 Cấu hình Liferay sử dụng CAS và LDAP.apache. Filter server.jsp</form-default-page> </form-login-config> </login-config> <!-.realm.catalina.realm.crt đã tồn tại khi cài đặt CAS server. . tạo và import certificate vào jre của Liferay.3.

Vào controlpanel  setting  authentication.\liferay-portal\tomcat-6. O=Pacific Disaster Center.0\bin>keytool -export -alias tomcat -keypass changeit -file server. C=US Serial number: 462030d8 Valid from: Fri Apr 13 15:39:36 HST 2007 until: Thu Jul 12 15:39:36 HST 2007 Certificate fingerprints: MD5: CC:3B:FB:FB:AE:12:AD:FB:3E:D 5:98:CB:2E:3B:0A:AD SHA1: A1:16:80:68:39:C7:58:EA:2F:48:59:AA:1D:73:5F:56:78:CE:A4:CE Đăng nhập vào Liferay với quyền admin. OU=Information Systems. Khi đăng xuất thì CAS hủy ticket granting và sau đó sẽ chuyển về trang guest của Liferay. chọn tag CAS và điền thông tin về CAS Server.cntt.com:18080/web/guest.//xuất ra file certificate (nếu chưa có) C:\Program Files\Java\jdk1. ST=HI.6.Cấu hình CAS . L=Kihei. O=Pacific Disaster Center. Dữ liệu sẽ import vào Liferay từ LDAP. ST=HI.Liferay Chú ý: Logout URL: https://nonglam. Liferay và LDAP.crt Enter keystore password: changeit Certificate stored in file <server> //self-sign C:\Program Files\Java\jdk1.cntt.0\bin>keytool -import -file server. C=US Issuer: CN=localhost. Hình 25 . Chọn thẻ LDAP và cấu hình các mục sau: Authentication: 42 .crt -keypass changeit -keystore .0.6..com:8443/CAS/logout? url=http://nonglam.18\jre\win\lib\security\cacerts (path của cacerts của liferay) Enter keystore password: changeit Owner: CN=localhost. L=Kihei. OU=Information Systems.

Cấu hình Liferay .Cấu hình Liferay . thông tin này map các giá trị tương ứng trong LDAP với các trường trong Liferay. Hình 27 .t) - Users: Hình 28 .LDAP (t.Cấu hình Liferay . 43 .LDAP (t.LDAP - Connection: Điền đầy đủ thông tin về LDAP Sever.t) - User mapping: Điền đầy đủ thông tin các thuộc tính tên trong LDAP.Hình 26 .

Cấu hình Liferay . Hình 31 .LDAP (t.Hình 29 .LDAP (t.t) 44 .t) - Import/Export: Kích hoạt chức năng Import để dữ liệu trong LDAP được import vào Liferay và chọn khoảng thời gian để cập nhật (Import Interval). Hình 30 .t) - Groups: Map group trong LDAP.Cấu hình Liferay .LDAP (t. tương ứng với trong Liferay.Cấu hình Liferay .

Sửa $SAKAI_SRC/login/login-tool/tool/pom.com:28080</param-value> Server name và port của </init-param> ứng dụng.2.client.serverName</param-name> <param-value>nonglam.its.its. Cấu hình web. Thêm vào CASclient (Khi build maven sẽ tải CASclient về).cntt.xml (cho sakai 2.tp.tp.tp.client.5 Cấu hình Sakai sử dụng CAS.cntt.tp.xml của login-tool.filter.cntt.yale.cas.validateUrl</param-name> <param-value>https://nonglam.cas. thêm vào filter có nội dung như sau: <filter> <filter-name>sakai.1.wrapRequest</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>sakai.5)..its.client.filter.xml của login-tool.yale.cas</filter-name> <url-pattern>/container</url-pattern> </filter-mapping> - Thêm filter-mapping cho sakai request <filter-mapping> <filter-name>sakai.com:8443/cas/login</param-value> </init-param> <init-param> <param-name>edu.cas. <init-param> <param-name>edu.its.request</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping> Cấu hình pom.com:8443/serviceValidate</param-value> </init-param> <init-param> <param-name>edu.3. 45 .yale.filter.cas.CASFilter</filter-class> <init-param> <param-name>edu.filter.filter. Mở $SAKAI_SRC/login/login-tool/tool/src/webapp/WEB-INF/web.yale.cas</filter-name> <filter-class>edu.loginUrl</param-name> <param-value>https://nonglam.client.its.yale.tp.client.cas.xml.

login = false # Let the container handle logins . Chúng ta cần login/logout thông qua CAS.<dependency> <groupId>cas</groupId> <artifactId>casclient</artifactId> <version>2.4. .4.1.1.your requirements will be different for this. Build lại login project: Chuyển đến login-project và chạy lệnh: “mvn package install” Khởi động lại server và chạy sakai home page: http://host:port/portal Nhấn login. File application-context-security có nội dung sau: 46 . thì phải bỏ đi username/password ở phía trên của sakai login và cho phép container quản lý đăng nhập thông qua CAS # Remove the username/password boxes at the top by setting this to false top.1.1</version> </dependency> Chỉnh sửa file sakai.ie to use single sign-on.1Triển Khai. . loggedOutUrl=https://localhost:8443/cas/logout?url=http://localhost:8080/ Rebuild login project và kiểm tra. hệ thống sẽ redirect đến trang đăng nhập của CAS.properties. Các giải pháp bảo mật ứng dụng. # The URL below allows us to logout via CAS and then be redirected back to our Sakai server. Ứng dụng và JDBC.login = true # Force logouts via CAS also . container.

acegisecurity. CAS và JDBC. Thêm filter chain vào web.jdbc.mysql.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/test</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123456</value> </property> </bean> Ứng dụng.providers.jdbc.dao.providers.xml.ProviderManager"> <property name="providers"> <list> <ref bean="daoAuthenticationProvider" /> </list> </property> </bean> <bean id="daoAuthenticationProvider" class="org.acegisecurity.DriverManagerDataSource" > <property name="driverClassName"> <value>com. 47 .<bean id="authenticationManager" class="org.DaoAuthenticationProvider"> <property name="userDetailsService"> <ref bean="userDetailsService" /> </property> <property name="userInfoObjectTypes"> <list> <value>Teacher</value> <value>Admin</value> <value>Student</value> </list> </property> </bean> <bean id="userDetailsService" class="AuthenticationJdbcDaoImpl"> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="dataSource" class="org.datasource.springframework.

springframework. <listener> <listenerclass>org.xml.xml </param-value> </context-param> - Thêm context listener vào web.xml có nội dung sau: 48 .acegisecurity.ContextLoaderListener</listenerclass> </listener> - Thêm applicationContext-acegi-security.util.<filter> <filter-name>Acegi Filter Chain Proxy</filter-name> <filter-class>org. <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext-jdbc.FilterChainProxy</param-value> </init-param> </filter> <filter-mapping> <filter-name>Acegi Filter Chain Proxy</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> - Thêm file cấu hình application-context-security trong web.FilterToBeanProxy</filter-class> <init-param> <param-name>targetClass</param-name> <param-value>org.xml /WEB-INF/applicationContext-acegi-security.acegisecurity.context.web.xml.util.

<bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager"> <property name="providers"> <list> <ref bean="daoAuthenticationProvider" /> </list> </property> </bean> <bean id="daoAuthenticationProvider" class="org.acegisecurity.providers.dao.DaoAuthenticationProvider"> <property name="userDetailsService"> <ref bean="userDetailsService" /> </property> <property name="userInfoObjectTypes"> <list> <value>Teacher</value> <value>Admin</value> <value>Student</value> </list> </property> </bean> <bean id="userDetailsService" class="AuthenticationJdbcDaoImpl"> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/test</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123456</value> </property> </bean>

-

Thêm những thư viện sau vào ../lib của ứng dụng.
           acegi-security-0.8.2.jar acegi-security-CAS-0.8.2.jar CAS.jar commons-codec-1.3.jar commons-collections-3.1.jar commons-logging.jar ehcache-1.1.jar log4j-1.2.9.jar mysql-connector-java-3.0.16-ga-bin.jar oro-2.0.8.jar spring-1.2.1.jar

49

Chương .2

Tìm hiểu Sakai LMS.

.2.1. Giới thiệu Sakai project.
Sakai (http://sakaiproject.org/) là một cộng đồng các viện nghiên cứu, các tổ chức thương mại và các cá nhân hợp tác với nhau để phát triển một Môi trường Cộng tác và Học tập chung (Collaboration and Learning Environment - CLE). Sakai ban đầu được phát triển dựa trên các công cụ được xây dựng bởi 5 trường đại học Indiana University, Massachusetts Institute of Technology, Stanford University, University of Michigan, Polytechnic University of Valencia. Sau phiên bản đầu tiên, họ mời thêm các học viện khác với tư cách là những người cộng tác (Sakai Partners Program). Hiện tại việc phát triển Sakai được thực hiện dưới sự cộng tác của nhiều học viện, trường đại học, các tổ chức thương mại, những cá nhân tình nguyện và tổ chức Sakai. Tổ chức Sakai (Sakai Foundation). Là một thành viên được hơn 100 tổ chức, học viện, tài trợ kinh phí khiêm tốn cho những hoạt động phi lợi nhuận bao gồm việc quản lý các tài nguyên trí tuệ của Sakai, bảo trì hệ thống Sakai, phát hành Sakai và là người phát ngôn của Sakai. Cộng đồng Sakai (Sakai Community). Là sự đóng góp của nhiều tổ chức và cá nhân trên thế giới. Cộng đồng Sakai chịu trách nhiệm về mọi khía cạnh của Sakai CLE. Họ tin rằng việc phát triển mô hình dựa vào cộng động sẽ tạo ra sản phẩm tốt nhất. Các học viện dù lớn hay nhỏ đều có thể hợp tác với các đối tác thương mại của Sakai, những người cung cấp host và các dịch vụ phát triển, hỗ trợ để ứng dụng Sakai vào học viện của mình.
50

Sakai CLE là một phần mềm giáo dục miễn phí, mã nguồn mở được phân phối theo Giấy phép Giáo dục Cộng đồng (Educational Community License - một kiểu của giấy phép mã nguồn mở). Sakai CLE được dùng để dạy học, để nghiên cứu và để cộng tác nhiều người với nhau. Hệ thống này là một dạng của Hệ quản trị đào tạo (Learning Management System - LMS). Vào tháng 7 năm 2007, Sakai là sản phẩm được hơn 150 viện nghiên cứu tham gia phát triển và được thí điểm ở hơn 100 nơi khác. Hiện nay, Sakai được áp dụng cho hơn 160 học viện, trường đại học, cao đẳng… trên toàn thế giới.

Hình 32 - Các nơi nghiên cứu và sử dụng Sakai

.2.2. Tính năng.
Sakai bao gồm nhiều tính năng chung của các Hệ quản trị đào tạo, bao gồm đưa lên các tài liệu hướng dẫn, sách giáo trình, mục thảo luận, trao đổi trực tuyến, bài tập lớn, và các bài kiểm tra online. Thêm vào đó, Sakai còn cung cấp một bộ công cụ làm việc nhóm dùng cho nghiên cứu và các dự án nhóm. Để hỗ trợ các tính năng này, Sakai đã thêm vào khả năng thay đổi thiết lập của tất cả mọi công cụ dựa trên vai trò, thay đổi quyền hệ thống tùy theo người dùng. Nó cũng tích hợp một wiki, mailing list và lưu trữ, bộ đọc RSS.
51

2. thi đã được gửi Bài kiểm tra.Quan hệ giữa các công cụ dạy và học .3.2. Email Notification: Thông báo mail về đề cương môn học. . Chọn Syllabus > Create/Edit > Add. Only for Site: Chỉ cho phép thành viên khóa học được xem đề cương. Title: Đặt tên cho đề cương môn học.1 Syllabus – Đề cương bài giảng. quản lý điểm số.3.1. thi Bài kiểm tra. Content: Nơi soạn thảo nội dung của đề cương.3. Add Attachments: Đính kèm tệp tin cho đề cương.1 Tạo đề cương. Bài tập đã được nộp Sổ điểm Bài tập Bài tập đã được gửi Bài kiểm tra.. 52 . thi đã được nộp Sổ điểm Hình 33.2. Public View: Bất kỳ ai cũng có thể xem được đề cương. Bộ công cụ để dạy và học.

2 Lấy từ đề cương có sẵn trên web.1.3. lưu trữ và thông báo điểm cho sinh viên. Có thể chuyển điểm vào từ các công cụ khác như Test and Quizzes.2 Gradebook – Sổ điểm.2.2. nhập mới. Tự động tính toán điểm của khóa học. . Có thể cho xem. Xuất/Nhập điểm và xếp loại ra dạng . chỉnh sửa và công bố đến sinh viên điểm và các lời phê. 53 . Chọn Syllabus > Create/Edit > Redirect > Nhập vào đường dẫn đến trang web. .3. Assignment. Save Draft: Lưu đề cương thành bản nháp để chỉnh sửa sau. Course Grades: Xem điểm khóa học của tất cả các sinh viên. Giúp giảng viên tính điểm.Post: Đưa đề cương lên. Gradebook Setup: Một số thiết lập cho sổ điểm. Preview: Xem lại đề cương.csv. Hình 34 – Sổ điểm All Grades: Xem tất cả các điểm của tất cả của sinh viên.

• Included in Course Grade: Mục sổ điểm này có được tính vào trong điểm chung của khóa học hay không.Quy định cách đánh giá môn học 54 . • ClassAvg: Điểm trung bình của lớp (trung bình tất cả các sinh viên). . • Due Date: Ngày hết hạn của sổ điểm. • Edit: Chỉnh sửa.3.1 Quy định cách đánh giá môn học. • Released to Students: đã cho sinh viên xem sổ điểm này chưa. Add Gradebook Item: Thêm một mục sổ điểm. • Title: Tiêu đề của sổ điểm. Gradebook Items Summary.Sakai Gradebook . Hình 35 .Course Grade Options: Tùy chọn điểm cho khóa học (quy định cách đánh giá khóa học theo điểm chữ (A-F) hoặc đánh giá theo đậu/rớt).2. Import gradebook item from spreadsheet.2. Import Grades: Nhập điểm số từ tệp tin Bảng tính và một số tùy chọn khác. Giảng viên có thể quy định cách đánh giá cuối môn học với kết quả Đậu/Rớt hoặc điểm bằng chữ A-F.

Quy định cách đánh giá môn học (tt) Display course grade to students now: Chọn nếu muốn hiển thị kết quả điểm môn học đến thời điểm hiện tại cho sinh viên. Hình 36 .2.Sakai Gradebook . Grade Type: • Letter Grades (with +/-): Đánh giá kết quả cuối cùng của môn học theo điểm chữ từ A-F • Pass/Not Pass: Đánh giá kết quả cuối cùng của môn học là đậu hay rớt. bài thi cuối kỳ chiếm 40% tổng điểm. Ví dụ: Bài thi giữa kìa chiếm 40% tổng điểm. các bài tập chiếm 20% tổng điểm (lưu ý tổng các tỷ lệ phải đủ 100%).2 Quy định hệ số điểm cho bài kiểm tra/bài tập.Chọn công cụ Grade Book > Change course grade options. Rồi điền bên dưới (hoặc để mặc định) tỷ lệ % điểm sinh viên phải đạt được để tương ứng vớt kết quả đánh giá. 55 . Giáo viên quy định bài kiểm tra/bài tập theo các nhóm rồi quy định hệ số điểm tương ứng cho mục đó.3. .2.

Quy định hệ số điểm cho bài kiểm tra/bài tập (tt) Sau khi lưu các thay đổi.Hình 37 . Đối với các Mục sổ điểm (Gradebook Item) đã tạo trước đó (nếu có) mà chưa phân loại (Unassigned) thì chọn Edit để phân loại. 56 .Quy định hệ số điểm cho bài kiểm tra/bài tập Chọn công cụ Gradebook > Gradebook Setup. Chọn Save Changes để lưu các thay đổi. trở lại Gradebook Items. Hình 38 . Categories & Weighting: Phân loại cho bài kiểm tra/bài tập và gán cho hệ số điểm.Sakai Gradebook . Sau đó điền các phân loại và tỷ lệ điểm tương ứng.

Kiểm tra (Test and Quizzes). Chọn Gradebook > Add Gradebook Item.3 Cách tạo sổ điểm. Due Date: Ngày hết hạn của sổ điểm. Title: Tiêu đề sổ điểm.Quy định hệ số điểm cho bài kiểm tra/bài tập (tt) .4 Sử dụng sổ điểm.2. Gradebook Item Point Value (điểm thực của sinh viên trong mục sổ điểm được tính dựa trên tỉ lệ điểm bài tập/ Gradebook Item Point Value). nếu bài tập A sinh viên được 10 điểm thì điểm thực tính theo mục sổ điểm B là 10/20.Hình 39 .2.2. Release this item to Students: Cho phép sinh viên thấy sổ điểm này. .2. Ví dụ: Bài tập A sử dụng mục sổ điểm B này (với Gradebook Item Point Value = 20).3. 57 . Include this item in course grade calculations: Tính vào điểm khóa học. Ghi chú: Một mục trong sổ điểm (Gradebook) có thể được tạo bằng công cụ Gradebook hoặc cũng có thể được tạo từ các công cụ khác như Bài tập (Assginment).3.

Hình 40 . Giúp giảng viên tạo. chọn Associate with existing Gradebook entry để sử dụng một mục trong sổ điểm đã có sẵn hoặc chọn Add Assginment to Gradebook để tạo mới một mục sổ điểm cho bài tập này.3. điểm số. chọn Grades sent to Gradebook. nơi mà người dùng có tư cách giảng viên.Sử dụng sổ điểm khi tạo bài tập Trong phần tạo bài kiểm tra (Test and Quizzes).3.Sử dụng sổ điểm khi tạo bài kiểm tra . Chọn trang học thích hợp. phần Grading.3. cho lời phê các bài tập đó. đánh giá (điểm chữ. đậu/rớt). Vào mục Settings (cài đặt một số thông tin cho bài kiểm tra). 58 .2. Chọn Assigment > Add. Hỗ trợ nhiều cách tính điểm.1 Tạo bài tập. mục Grading.Trong phần tạo bài tập. . để bắt đầu tạo một bài tập.3 Assignment – Bài tập. gửi bài tập cho sinh viên và chấm điểm trực tuyến. Hình 41 . phần trăm.2.

Title: Tên bài tập. Accept until: Hạn nộp cuối. enter maximum possible: Phải quy định điểm tối đa cho bài tập. Grade Scale: Cách tính điểm. Sinh viên không thể thấy và làm bài nếu chưa đến ngày này. 59 . • Ungrade: Không chấm điểm (chỉ dùng làm bài tập mang tính rèn luyện). Assginment Instruction: Phần hướng dẫn làm bài của giáo viên. sau ngày này sinh viên không thể làm hay nộp bài cho giáo viên. • For points. • Pass/Fail: Đánh giá đậu/rớt. Due Date: Hạn nộp bài. • Checkmark: Đánh giá chấp nhận/không chấp nhận. Open Date: Ngày bài tập được gửi đến sinh viên. • Non-electronic: Không nộp qua site khóa học (có thể là nộp trực tiếp với giáo viên). • Points: Điểm số (0-10). Add an announcement about the open date to Announcements: Thông báo ngày giao bài tập xuống sinh viên vào bảng thông báo. Student Submission: Chọn hình thức để sinh viên nộp bài • Inline and Attachments: Nộp dạng chữ và tệp tin đính kèm. • Attachments only: Chỉ dùng tệp tin đính kèm. • Letter Grade: Điểm chữ (A-F). • Inline only: Chỉ nộp dạng chữ.

nhấn Remove để xóa.Add honor pledge: Thêm cam kết danh dự (cam kết sinh viên không nhận sự giúp đỡ của người khác lúc làm bài tập này). Add Attachment (hay Add/Remove Attachment): Thêm hoặc bớt tệp tin đính kèm cho bài tập. or a URL: Lấy liên kết của tệp tin từ trang web khác. Submission Notification Email Options: Tùy chọn thông báo mail đến giáo viên khi có sinh viên nộp bài. Preview: Xem lại bài tập vừa tạo. • Do not add assignment to Gradebook: Không đưa điểm bài tập vào sổ điểm. 60 . Select a resource: Chọn tệp tin từ resource của khóa học (Chọn Attach a copy của tệp tin muốn tải lên từ resource). người dùng sẽ thấy Add/Remove Attachment để thêm hoặc bỏ tệp tin đính kèm. • Khi bài tập đã có tệp tin đính kèm. • Associate with existing Gradebook entry: Đưa điểm bài tậo vào sổ điểm và dùng chung cột điểm với một bài tập đã có trong sổ điểm (dùng khi giáo viên muốn cho sinh viên gở điểm xấu của bài tập trước). người dùng sẽ thấy Add Attachment để thêm tệp tin đính kèm. Nếu đã đính kèm. • Add Assignment to Gradebook: Đưa điểm bài tập vào sổ điểm. người dùng sẽ thấy Items to attach. Grading: Ghi nhận điểm của bài tập vào sổ điểm. • Khi bài tập chưa có tệp tin đính kèm. Post: Hoàn thành việc tạo bài tập. Upload local file: Chọn tệp tin trên máy tính.

. • Due: Bài tập đến hạn nộp. Due: Ngày giờ bài tập đến hạn nộp. • Open: Bài tập này đã được giao xuống cho sinh viên.2.Xem danh sách bài tập Assigment title: Tên bài tập. Cancel: Hủy bỏ.3.Assigment List: Xem các bài tập đã tạo. Status: Trạng thái của một bài tập. View . • Draft: Bài tập đang được chỉnh sửa. không tạo bài tập.2 Xem – Chỉnh sửa – Chấm điểm bài tập. • Close: Bài tập đã hết hạn nộp.3. Hình 42 . chưa giao xuống sinh viên.Save Draft: Lưu bài tập dạng nháp để chỉnh sửa sau. • Not Open: Bài tập này chưa đến ngày giao xuống cho sinh viên . Open: Ngày giờ bài tập sẽ được giao xuống cho sinh viên. In / New: Tổng số các bài nộp của sinh viên (In) và số bài nộp giáo viên chưa chấm điểm (New). 61 .

Xem lại nội dung bài tập: Nhấn vào tên bài tập (ví dụ: Bài tập 1) để xem với tư cách giáo viên hoặc tư cách sinh viên (student view). màn hình hiển thị tương tự bên dưới. 62 . Chỉnh sửa bài tập: Nhấn Edit để chỉnh sửa toàn bộ thông tin và nội dung bài tập. nhấn vào tên sinh viên để chấm điểm bài làm cho sinh viên. Tùy theo những chỉnh sửa của giáo viên mà các bài sinh viên đã nộp sẽ bị ảnh hưởng (thường là mất bài).Scale: Loại điểm của một bài tập. Hình 43 – Chấm điểm View . giáo viên sẽ nhận được cảnh báo nhắc nhở trước khi chỉnh sửa. Chấm điểm: Nhấn Grade.Assigment List by Student: Chỉ xem danh sách sinh viên và trạng thái các bài tập giáo viên đã giao xuống cho sinh viên. Tạo bản sao của bài tập: Nhấn Duplicate để tạo ra một bài tập hoàn toàn giống bài tập hiện tại. Với những bài tập hết hạn nộp hay đã có sinh viên nộp bài.

Hình 44 . . độ khó bài tập. Điểm được tự động chấm.3 Xem bài tập dưới góc nhìn của sinh viên.2. 63 .3.4 Tests and Quizzes – Kiểm tra.2. …).3. Giúp giảng viên tạo bài kiểm tra hoặc các bảng thăm dò ý kiến.Xem bài tập dưới góc nhìn của sinh viên Submit as Student: Thử làm bài như sinh viên(để ước lượng thời gian làm bài.Xem danh sách bài tập theo sinh viên . Hình 45 .3.

Creator: Người tạo ngân hàng câu hỏi (tên người đã đăng nhập và tạo ra ngân hàng câu hỏi này. Pool Name: Tên ngân hàng câu hỏi. . • True False: Chọn lựa đúng hoặc sai.2.1 Tạo ngân hàng câu hỏi. • Fill in the Blank: Điền vào chỗ trống. 64 . • Short Answer/Essay: Bài tiểu luận ngắn. • Matching: Câu hỏi dạng nối hai cột để có kết quả đúng.4. • Servey: Thăm dò ý kiến với các mức ý kiến đã quy định sẵn cho một câu hỏi thăm dò.3. Description: Mô tả ngắn về ngân hàng câu hỏi. Chọn Tests & Quizzes > Question Pools > Add New Pools. • File Upload: Câu trả lời là tệp tin đính kèm. không thay đổi được). • Copy from Question Pool: Chọn các câu hỏi có sẵn từ ngân hàng câu hỏi. Keywords: Từ khóa cho ngân hàng câu hỏi để hỗ trợ tìm kiếm nhanh ngân hàng câu hỏi này. • Numeric Response: Câu trả lời dạng số. Department/Group: Tên Phòng Ban/Nhóm chủ ngân hàng câu hỏi. • Audio Recording: Trả lời bằng cách ghi âm trực tiếp. Objectives: Mô tả ngắn mục đích ngân của ngân hàng câu hỏi.Có thể có nhiều loại câu hỏi trong bài kiểm tra (bảng thăm dò ý kiến): • Multiple Choice: Chọn một hoặc nhiều câu trả lời cho một câu hỏi.

Sakai Test & Quizzes . . có ngân hàng các câu hỏi một lựa chọn. ngân hàng câu hỏi nhiều lựa chọn. Hình 47 .Tạo ngân hàng câu hỏi Chọn Add bên dưới Ngân hàng câu hỏi muốn tạo ngân hàng con.Sakai Test & Quizzes . ngân hàng câu hỏi đúng sai… Hình 46 . Ví dụ.3.2 Thêm câu hỏi vào Ngân hàng câu hỏi.4. trong ngân hàng câu hỏi môn A.Công cụ cũng hỗ trợ phân cấp nhiều nhiều ngân hàng câu hỏi con. Nhấn vào tên của Ngân hàng câu hỏi. Chọn Add tương ứng với Questions để thêm câu hỏi.Thêm câu hỏi Các bước khi tạo bất kỳ loại câu hỏi nào: 65 . rồi tạo bình thường.2. Các ngân hàng con sẽ được hiển thị bên dưới.

3 Tạo bài kiểm tra. • Soạn nội dung câu hỏi. 66 .Hình 48 .4.Phản hồi đáp án cho sinh viên . • Soạn các phản hồi (feedback) cho câu hỏi. • Đặt câu hỏi vào phần (part) trong bài kiểm tra (thi).3. Title: Tên bài kiểm tra (thi). Chọn Test & Quizes > Assessment > Add Assessment. đưa câu hỏi vào ngân hàng câu hỏi. Hình 49 .Soạn nội dung câu hỏi • Answer Point Value: Điểm cho câu hỏi (trừ loại survey).2.

Việc này giúp cho giảng viên có thể trình chiếu cho người xem. giáo viên tiến hành tạo các câu hỏi cho bài kiểm tra (xem phần tạo câu hỏi và ngân hàng câu hỏi).1 Tạo một bài giảng. Khi giảng viên di chuyển các slide bài giảng trong lúc giảng dạy.3.2. cách này một lúc tạo được nhiều câu hỏi.Sakai Presentations 67 . màn hình của sinh viên cũng sẽ thay đổi. Quick Create: Tạo nhanh các câu hỏi bẳng dạng text (theo định dạng đã được sakai quy định). Hình 50 . Create: Bài kiểm được tạo.5.2.5 Presentation – Trình diễn slide bài giảng. Tạo các thư mục con bên trong thư mục Presentation > Tải hình ảnh các slide vào các thư mục này. tạo một thư mục tên Presentations. để theo dõi bài giảng của giáo viên.Chọn Create (hoặc Quick Create) để tạo bài kiểm tra. Vào công cụ Resource. . . Các thư mục này sẽ hiển thị trong Presentation và cho phép trình chiếu như trình chiếu slide. Giúp giảng viên tạo các slide bài giảng dưới dạng hình.3.

.2.4. Bộ công cụ giao tiếp giữa giảng viên và sinh viên. .2.4.1 Announcement – Thông báo.
Giúp giảng viên thông báo các tin tức về khóa học cho sinh viên. Thông báo có thể được giảng viên tạo trực tiếp hoặc thông qua một công cụ khác (như Assignement – tạo thông báo khi bài tập được giảng viên đưa ra).

.2.4.1.1 Cách tạo thông báo.
Chọn Announcement > Add. Announcement title: Tiêu đề của thông báo. Body: Nội dung thông báo. Access: Quản lý việc xem thông báo. Only members of this site can see this announcement: Chỉ cho phép các thành viên của khóa học xem thông báo này. This announcement is publicly viewable: Mọi người đều có thể xem. Availability: • Show: Luôn luôn hiển thị thông báo này. • Hide: Luôn luôn ẩn thông báo này. Specify Dates: Chỉ định khoảng thời gian thông báo được hiển thị. Beginning: Ngày bắt đầu của thông báo. Ending: Ngày kết thúc thông báo. Add Attachments: Đính kèm tệp tin cho thông báo. Email Notification: Thông báo mail. • All participants: Thông báo đến tất cả các thành viên của khóa học.
68

• Only participants who opted in: Chỉ thông báo đến các thành viên chỉ định. • No Notification: Không thông báo mail. Add Announcement: Tiến hành thêm thông báo. Preview: Xem lại thông báo.

.2.4.1.2 Xem – Chỉnh sửa thông báo.
View: Các thông báo trong bảng thông báo. • All: Xem tất cả các thông báo. • Public: Chỉ xem các thông báo chung. • By group: Xem thông báo của các nhóm. Nhấn vào tiêu đề thông báo để xem chi tiết thông báo. Nhấn vào Edit để chỉnh sửa thông báo. Để xóa thông báo, chọn ô Remove, nhấn Update bên dưới.

.2.4.1.3 Kết hợp thông báo của trang học khác.
Chọn Announcement > Merge. Chọn các trang web muốn lấy thông báo > Save. Các sự kiện này sẽ được thêm vào bảng thông báo của khóa học hiện tại. Ghi chú: Những thông báo lấy từ site khác sẽ không được chỉnh sửa hay xóa.

.2.4.2 Schedule – Lịch công tác.
Giúp giảng viên ghi chú các sự kiện đặc biệt trong khóa học. Giảng viên có thể tạo sự kiện trực tiếp hoặc thông qua một công cụ khác (như Assignement – tạo sự kiện cho báo cho sinh viên biết ngày hết hạn làm bài tập).

69

.2.4.2.1 Tạo một sự kiện trong lịch công tác.
Chọn Schedule > Add. Title: Tên sự kiện. Date: Ngày sự kiện diễn ra. Start Time: Thời điểm bắt đầu sự kiện. Duration: Khoảng thời gian sự kiện diễn ra. End Time: Thời điểm kết thúc sự kiện. Message: Nội dung của sự kiện. Display to site: Hiển thị trên bảng lịch biểu của khóa học (mặc định được chọn). Frequency: Chọn số lần lặp lại cho sự kiện. • Once: Chỉ xuất hiện1 lần, không lặp lại. • Daily: Hằng ngày. • Weekly: Hằng tuần. • Monthly: Hằng tháng. • Yearly: Hằng năm. Event Type: Chọn loại sự kiện.

70

2. Ban đầu.2. và việc quản lý của nó liên quan đến các khóa học. . .Small Group: Nhóm Event Location: Mô tả nơi sự kiện diễn ra. Computer Session: Học vi tính Deadline: Hạn cuối nộp bài Exam: Kiểm tra Multidisciplinary Conference: Hội nghị Quiz: Thi Web Assignment: Bài tập trên web .2.1 Giới thiệu Sakai CMS. Save Event: Lưu lại sự kiện vào lịch công tác. Hình 51 . giảng viên. sinh viên. các nhóm phát triển Sakai hình như ra mối quan hệ quá đơn giản giữa việc quản lý học của các học viện với việc hiện thực chúng lên website. việc đăng ký học. nên Sakai phiên 71 . Add Attachments: Thêm file đính kèm cần thiết cho sự kiện.5. Hiện thực Sakai Course Management System (Sakai-CMS).4. Sakai là một hệ thống quản lý học trực tuyến.Academic Calendar: Lịch học Activity: Hoạt động Cancellation: Hủy hẹn Class section – Discussion: Thảo luận Class section – Lab: Thực hành Class section – Lecture: Thuyết trình Class section .Lấy sự kiện từ trang khác Chọn Schedule > Merge > chọn trang web muốn lấy sự kiện > Save.2.2 Lấy sự kiện từ trang khác.5.

AcademicSession: Thường để biểu diễn khái niệm 1 học kỳ.bản đầu không cho phép người dùng can thiệp vào việc quản lý học được Sakai định nghĩa sẵn.4 một hệ thống quản lý học phức tạp và linh động hơn. Một nhóm có thể có các nhóm nhỏ hơn.2 Một số khái niệm trong Sakai CMS. một chương trình học. nên vào khoảng năm 2005-2007. không phục thuộc vào học kỳ. Khi đó các học viện. nhận thấy được sự phức tạp và khác biệt rõ rệt giữa việc định nghĩa cũng như hiện thực quản lý học của các học viện.2. Nhưng không phải tất cả CourseOffering nào cũng dựa trên một AcademicSession. định nghĩa. trường học hoặc có thể sử dụng lại Sakai CMS được hiện thực sẵn để áp dụng vào việc quản lý học của mình. thường được mở dựa trên một học kỳ nào đó (AcademicSession). Nhưng tổng quát là để thể hiện một khoảng thời gian mà các khóa học được mở. 72 . Một CourseSet có thể chứa các CourseSet con khác. hoặc tự hiện thực lại interface của Sakai CMS cho phù hợp với mô hình quản lý của mình. Membership: Mô tả vai trò của một người trong một khóa học. CanonicalCourse: Để mô tả tổng quát một môn học. một nhóm các trường đại học đã hợp tác nghiên cứu. Nhưng về sau. EnrollmentSet: Mô tả một bảng đăng ký học cùa học viên vào một khóa học Section: Mô tả một nhóm học viên nhỏ trong một khóa học. vì có thể có những khóa học dài hạn. Một học viên có thể thuộc nhiều nhóm này trong một khóa học. hiện thực và đưa vào Sakai 2. CourseOffering: Là một hiện thực của thể của một CanonicalCourse. Enrollment: Mô tả việc đăng ký. ghi danh của người học vào một khóa học nào đó.5. . CourseSet: Là tập hợp các CanonicalCourses và CourseOfferings của một ngành. một khoa .

Hình 52 .Mô hình miền Sakai CMS Trong thực tế có hai mô hình quản lý khóa học phổ biến Mô hình đơn giản (Simple): Một khóa học có một trang web. Hình 53 . sinh viên đăng ký vào một khóa học (CourseOffering).Mô hình Simple Mô hình phức tạp hơn (Large Lecture): Một khóa học có một trang web. 73 . không có nhóm (Section). trong đó có nhiều nhóm nhỏ ứng với khóa học đó.

Do không có mô hình thực của trường Đại học Nông Lâm. Triển khai một ứng dụng viết thêm cho Sakai. dựa trên mô hình CSDL của Sakai. .2.2. nên nhóm hiện thực lại Sakai CMS dựa trên mô hình Simple: 1 khóa học có 1 site và không có nhóm nhỏ. và thay đổi một vài chi tiết cho đơn giản.6.3 Hiện thực Sakai CMS.1 Cài đặt một ứng dụng từ bên ngoài vào Sakai. Trước khi thêm các tool từ bên ngoài. CourseManagementAdministration: Đây là interface không bắt buộc hiện thực. .1 Lưu ý. API Course Management Service của Sakai cung cấp hai interface: CourseManagementService là interface chỉ cho phép các component khác đọc thông tin quản lý học.2.5. chúng ta phải triển khai thành công SakaiLMS từ source gốc của Sakai.4 Demo. 74 .Mô hình Large Lecture . Nếu hiện thực thì nó làm nhiệm vụ cập nhật dữ liệu quản lý học.2. . Với CSDL giả lập. .5. phù hợp.Hình 54 .1.2.6.6.

1. Do đó trước tiên ta download source code của ứng dụng bằng các chương trình SVN client. và người dùng không thể nhìn thấy..0.x. • Các ứng dụng cho Sakai 1. nếu không có các yêu cầu đặt biệt thì cách cài đặt chung như sau: Do các ứng dụng viết cho Sakai thường là open source và được chia sẽ trên SVN server.2. Thường thì các ứng dụng được viết thêm đều có hướng dẫn cài đặt cụ thể.6. Ứng dụng cũng có thể chỉ ở phần model để hỗ trợ thêm cho Sakai. Thường thì link dạng */trunk là nơi lưu trữ phiên bản mới nhất.0</modelVersion> <parent> <artifactId>base</artifactId> <groupId>org.org/POM/4.0.x được build bằng Maven 2 o Kiễm tra tệp tin POM của ứng dụng./pom. được build bằng Maven 1 • Các ứng dụng cho Sakai 2.apache. ứng dụng này sau khi triển khai thành công thì có thể tìm thấy trong SiteTool > Edit Tools của các course site hay project site của Sakai.sakaiproject</groupId> <version>M2</version> <relativePath>. thì bạn nên vào đường link */branches Chú ý một số khác biệt giữa các phiên bản. Chú ý phiên bản của ứng dụng cho phù hợp với Sakai đang sử dụng. để tìm kiếm các phiên bản cũ.2 Triển khai. Ví dụ: <?xml version="1.0"?> <project xmlns="http://maven.0"> <modelVersion>4.xml</relativePath> </parent> 75 . .Ứng dụng nói đến ở đây có thể một ứng dụng web có giao diện cho người sử dụng.

5.5. thì dùng cho Sakai phiên bản 2. chọn New Remote Site trỏ đến đường dẫn http://source. 2.0-SNAPSHOT. • Implementation: Full CRUD App.1 Cài đặt plugin Sakai App Builder cho Eclipse.org/appbuilder/update/ rồi cài đặt. Ví dụ: C:\Documents and Settings\Administrator\. Nếu <version> là 2. chúng ta nên kết nối internet để Maven có thể tải các thư viện mà ứng dụng yêu cầu (nếu có).6. dễ phát triển và tương đối ổn định. .M2\repository. 2. Sau khi triển khai thành công thì ứng dụng của chúng ta đã có thể sử dụng. mở cửa sổ console cmd.x.x.2. • Vào phần cài đặt plugin của Eclipse.. . trỏ đến thư mục source của ứng dụng chạy dòng lệnh.6. • Cấu hinh Build Path cho project.x thì có thể dùng cho Sakai phiên bản 2.6. Lưu ý: đối với một số ứng dụng có yêu cầu đặc biệt thì chúng ta nên đọc tệp tin hướng dẫn đi kèm source code để biết cách triển khai. tên M2_REPO trỏ đến thư mục . • Option: Testing và Entity Broker có thể bỏ qua • Nhấn Finish.0-SNAPSHOT. thì đòi hỏi bạn phải build gói sakaiwicket trước… Các triển khai của các gói cũng tương tự nhau.2.2 Tạo một webapp project với Sakai App Buider.4.x. 2. • Chọn File > New > Project > SakaiProject > Sakai App Project > Next • Project Type: JSF (đây là framework thường dùng trong Sakai.x … Sau khi tải source code về. mvn clean install sakai:deploy Trong lúc triển khai.7. Ví dụ: Để triển khai ứng dụng sakai-scorm. 2.6.).sakaiproject.7.… Nếu <version> là M2.M2 (đã tạo khi triển khai Sakai).2.2. 2.2 Viết một ứng dụng trong Sakai. .6.4.x. 76 .2. Cài đặt plugin Sakai App Builder. tạo một Classpath Variables.

src – bao gồm src java cho tất cả các lớp triển khai của api. css – các file css. images – hình ảnh cần cho project. test . impl – nơi triển khai project.(có thể có) bao gồn các dữ liệu test có thể chia sẽ được với nhau. templates – các mẫu html của RSF. src – thư mục java src. o o o o o o o o o 77 . app-name – các file JSF. tools – chứa các file xml của Sakai tool. src – bao gồm các interface. Cấu trúc một project trong Sakai được tạo từ plugin. tool . Các dịch vụ liên quan kết nối: public-api > logic-api.. model và các file hbm. webapp.. dao-api. Cấu trúc các file: o o o o o o o o app-name. java – bất kỳ mã code nào được dùng cho tool này. pack – các thành phần của project mà Sakai hỗ trợ sẵn (có thể chỉ là các tệp tin cấu hình spring).project cho tool (giao diện người dùng). test – bao gồm tất cả các đơn vị và dữ liệu tích hợp cho test. • • • • Cấu trúc của project: tool > logic-api > logic-impl > dao-api > dao-impl. etc. Mô hình kết nối: model > logic-api. api – tất cả lớp interface. model và các file hibernate hbm.Tốt hơn nên đọc file readme trong thư mục gốc của project trước khi sử dụng project.

trỏ đến thư mục ứng dụng. v.. cách triển khai tương tự như cách triển khai một tool bên ngoài Sakai đã nói ở trên.o WEB-INF – các tệp tin cấu hình cho project (web. applicationContext.3 Triển khai.xml. Sau khi phát triển tool.v.6. Mở màn hình console cmd.xml.. chạy lệnh: mvn clean install sakai:deploy 78 . .2.

ứng dụng theo yêu cầu sử dụng. − Tích hợp nhiều loại thông tin (Content aggregation): Cho phép xây dựng nội dung thông tin từ nhiều nguồn khác nhau cho nhiều đối tượng sử dụng. tích hợp. hoặc một ứng dụng chạy trên nền Web. . 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. Tính năng cơ bản Các loại cổng thông tin đều có chung một số tính năng cơ bản. Mỗi cá nhân có thể tự chỉnh sửa cách thể hiện thông tin. tính bảo mật cao và đăng nhập một . − Khả năng cá nhân hoá (Customization hay Personalization): 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. nhiều ứng dụng và từ nhiều người ta dùng loại cổng thông tin này. − Cổng gáo dịch điện tử (Marketplace portals): Là nơi lien kết giữa người bán và người mua. − Cổng thông tin doanh nghiệp (Enterprise portal hay Corporate 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. 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.1. cổng thông tin loại này cung cấp các ứng dụng chuyên biệt khác nhau. ChemWeb. Phân loại portal.3. ứng dụng quản trị nội dung website. 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 công cộng (Public portals): Khi muốn ghép nối các thông tin lại với nhau từ nhiều nguồn.3 Giới thiệu Portal – Liferay. Ví dụ Yahoo. Sự ra đời của portal nhằm giải quyết các nhược điểm mà các website thông thường mắc phải như khó bảo trì. Portal là gì? Portal là cổng thông tin điện tử.v… đặc biệt là khả năng tùy biến khá cao. Sự khác 79 . Ví dụ: eBay. cá nhân hóa.Chương . v. mờ rộng. − Cổng thông tin ứng dụng chuyên biệt (Specialized portals): Ví dụ như SAP portal. Khác với các website thông thường portal là nơi tích hợp hầu hết các thông tin và dịch vụ cần thiết cho người dùng.

xuyên suốt trong quá trình xuất bản thông tin. Nếu hệ thống không thỏa mãn tính năng Hỗ trợ nhiều môi trường hiển thị thông tin (Multidevice support) nhưng lại thỏa mãn tất cả các tính năng còn lại thì hệ thống đó vẫn được xem là giải pháp. khả năng thay đổi cách hiển thị của portal hoặc của từng porlet. Nếu hệ thống chỉ thỏa mãn tối đa năm tính năng đã nêu trên thì đó chỉ là một ứng dụng web hoặc phần mền quản trị nội dung chứ không phải giải pháp portal. Xuất bản thông tin( Content syndication): Thu thập thông tin từ nhiều nguồn khác nhau. Hỗ trợ nhiều môi trường hiển thị thông tin (Multidevice support): Portal phải có khả năng vận hành đa nền đa phương tiện. Người sử dụng có thể tự đăng ký thành viên tại một cổng thông tin công cộng hoặc được người quản trị tạo tài khoản và gán quyền sử dụng thích hợp. đị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. Portal sẽ lấy thông tin về người sử dụng từ các thư mục như LDAP (Lightweight Directory Access Protocol). các kênh tương tác với người sử dụng cuối. So sánh Portal và Web truyền thống. 80 . Có khả năng xuất bản thông tin với các định dạng đã được quy chuẩn. các tiêu chuẩn dựa trên XML cũng phải được áp dụng để quản trị và hiển thị nội dung một cách thống nhất. Cho phép thiết lập các giao diện người dùng với các chi tiết đồ hoạ. Ngoài ra. • Người dùng có thể truy cập thông tin từ nhiều thiết bị khác nhau. DNS (Domain Name System) hoặc AD (Active Directory). Ví dụ: Giao diện portal có một số chức năng không cần thiết với người dùng thì họ có thể bỏ đi. Quản trị người dùng (Portal user management): Cung cấp các khả năng quản trị người dùng cuối tùy vào đối tượng sử dụng của portal. người quản trị phải định nghĩa được các thành phần thông tin. Những ưu điểm nổi bật của Portal so với WebSite truyền thống là: • Khả năng cá nhân hóa cao. Để truy xuất vào portal người dùng có thể sử dụng nhiều loại thiết bị như và nhiều trình duyệt khác nhau Khả năng đăng nhập một lần: Đây là một tính năng rất quan trọng.− − − − − biệt giữa các nội dung thông tin sẽ được xác định qua các ngữ cảnh hoạt động của người dùng (user-specific context). • Người phát triển có thể dựa trên các chuẩn có sẵn để tích hợp công cụ mới. cung cấp cho người dùng thông qua các phương pháp hoặc giao thức (protocol) một cách thích hợp. • Khả năng đăng nhập một lần với tất cả các tài nguyên liên kết với portal. Quản trị portal (Portal administration): Xác định cách thức hiển thị thông tin cho người dùng cuối.

OpenSearch. WebDAV. JSF-314 (JSF 2. Ruby. Java J2EE/JEE. Môi trường mở với hỗ trợ của web service gồm có: JSON. Solaris. JGroups. giải trí. doanh nghiệp. Firebird. Hypersonic.. SAP. SUSE.v… Đến thời điểm tháng 06/2009 thì phiên bản mới nhất của Liferay là 5. Liferay được phát triển bằng ngôn ngữ lập trình Java trên nền tản J2EE và Web 2. JSR-127.3. Lucene. Hessian.thanhhoa. iCalendar & Microformat.gov. Liferay Portal đưa ra các chức năng vô cùng hữu ích với trên 60 ứng dụng theo chuẩn JSR-168. MuleSource ESB. ICEfaces. Các công nghệ được sử dụng trong Liferay bao gồm: Apache ServiceMix.v. PostgresSQL. công cụ cá nhân.3. Hiện nay. Ubuntu. Derby.3. IBM DB2. Tapestry. Cho phép hoạt động trên các hệ điều hành như Windows. các tổ chức. bộ ngành. v. Mac OS X. REST. Ví dụ Ủy ban nhân dân huyện Thanh Hóa (http://www. quản lý dữ liệu.0). Struts & Tiles.1 Giới thiệu. Unix: AIX. Giới thiệu về Liferay. Spring & AOP.0).0. Danh mục ứng dụng bao gồm: Quản trị. việc xây dựng các cổng điện tử trên nền tản portal khá đa dạng ở Việt Nam. MySQL.v.2.. Oracle. công cụ mua sắm. JDataBase. HP-UX. WSRP. jBPM. công cụ người phát triển. Ehcache.2. RHES. jQuery JavaScript Framework. Hibernate. cộng đồng. . Velocity.. 81 .v. Burlap. Các tiêu chuẩn của Liferay hiện nay có: AJAX. Liferay phù hợp để xây dựng và triển khai Cổng điện tử cho các đơn vị tỉnh thành. JSR-168.. • Liferay Portal Standard Edition: Là phiên bản miễn phí với các tính năng mới nhất và hỗ trợ thông qua các hoạt động cộng đồng. Interbase. PHP. Sybase. SQL Server.vn). JSR-170. • Liferay Portal Enterprise Edition: Là phiên bản thương mại được hỗ trợ nhiều tính năng.2. Liferay tương thích với 12 hệ quản trị cơ sở dữ liệu: Apache.v. JSR-286 (Portlet 2. Liferay hỗ trợ cho 22 ngôn ngữ với những bản dịch mặc định. Linux: CentOS. cộng tác. RMI.. Seam.

Khi sử dụng các package tiện ích này ta có thể dễ dàng phát triển portal hay portlet. portal_impl − Chọn portal_impl rồi nhấn vào build-lang.css sao cho phù hợp với nhu cầu sử dụng.2. Nhưng các portlet không còn tuân theo chuần JSR-168.3. Ngoài ra Liferay còn hỗ trợ các JSP tag lib và nhiều class tiện ích khác trong những package khác nhau. chọn file build. Mỗi cá nhân trong cộng đồng được cung cấp các trang cá nhân.3 Tạo theme mới cho Liferay.properties.1 Thêm tệp tin và thư mục Theme được thêm vào Liferay bằng cách chép một cấu trúc thư mục tuân theo quy định. Hệ thống quản lí quyền sử dụng các ứng dụng trong Liferay chặt chẽ. Lúc này ta ở cửa sổ Ant sẽ có 2 thư mục như sau: Portal.3. Sử dụng một trong những hiệu ứng giao diện có sẵn để thay đổi bề ngoài của cổng thông tin mà không phải thông qua bất kỳ thao tác chỉnh sửa mã nguồn phức tạp nào. được chia làm nhiều cấp độ quản lí. Cách dễ dàng nhất để tạo theme là lấy một theme làm mẫu sau đó sửa đổi các tệp tin . . v. Nếu thành công sẽ nhận được thông báo như sau: BUILD SUCCESSFUL thì việc việt hóa Liferay đã thành công. Bước 3 : Deploy.v… vào Liferay.chọn Add Buildfiles.0.Theme có thể thêm vào Liferay bằng hai cách. Trong quá trình sử dụng ta cũng có thể định nghĩa ra hệ thống người dùng cho hệ thống của mình. Từ phiên bản 5.Liferay Portal là cổng thông tin cho phép người sử dụng kéo thả các ứng dụng để sắp xếp phù hợp với sở thích của người sử dụng. . Bước 1: Tìm tệp tin Language_vi. Liferay cho phép tạo và tích hợp giao diện vào hệ thống. − Sau đó nhấn vào deploy.2. Tất cả các trang của Liferay Portal đều được thực hiện theo chuẩn CSS để đơn giản hóa việc phát triển giao diện.2 Hướng dẫn Việt-hóa Liferay. .properties. JSF.native trong portal-impl/src/content/ Bước 2: Chuyển đổi những từ sang tiếng Việt cho phù hợp.3. Liferay cũng cho phép thể thêm các ứng dụng web viết bằng Struct.Một theme thường có cấu trúc thư mục sao đây: 82 . . Liferay đã bắt đầu hổ trợ chuẩn JSR-286. Nhận được thông báo như sau: BUILD SUCCESSFUL. Language_vi. − Dùng công cụ Ant .3.2.xml của Liferay source. Người sử dụng có thể thiết kế trang riêng của theo sở thích.

.4. popup. ta dùng lệnh JAR cho toàn thư mục.2. Nhưng nếu bạn có một ứng dụng web đã phát triển trước đó. Templates: Chứa những template về cái nhìn tổng quan của porlet.3.3.3.3. Ta có thể đóng gói một theme hay một tập các themes vào trong một tệp tin WAR.Tạo theme mới cho Liferay .apache.4. Đề tạo thành một tệp tin WAR.1 Đặt vấn đề.html của Apache.2. Images: Chứa các image của theme.Hình 55 .2.4 Chuyển 1 ứng dụng web thành portlet. có hỗ trợ một số bridge chuyển thành các portlet: • JSF portlet 83 . Ví dụ: Chạy lệnh sau trong cửa sổ cmd: C:\CreateTheme\greentheme> jar cvf greentheme. có nhiệm vụ định kiểu hiển thị cho các thành phần của hệ thống FIT portal. Việc phát triển một portlet từ đầu đến cuối theo chuẩn JSR-168 để tích hợp vào portal không phải là một vấn đề phức tạp. được dùng hoặc tham chiếu bởi những template.* .2 Đóng gói theme thành file war.3.xml trong thư mục này có tác dụng đăng kí theme cho Liferay.2 Các portals bridges.Cấu trúc thư mục theme Css: Chứa những tệp tin css. Javascript: Chứa tệp tin js với nhiệm vụ giúp load các porlet lên portal. WEB-INF: Tệp tin Liferay-look-and-feel. . . Tập hợp các tệp tin được đóng gói tuân theo quy luật như cách tạo theme đã trình bày ở trên.org/bridges/download. Tệp tin này có thể được deploy để cài đặt trong Liferay. Trên trang web http://portals.2. nay muốn tích hợp vào portal thì như thế nào? Khi đó bạn cần nghĩ đến portals bridges.war *.

Tiếp theo tạo file portlet.• • • Struts portlet PHP portlet Perl portlet .apache.xml trong thư mục WEB-INF của project. Tải về tại http://portals. chọn các tệp tin: • portals-bridges-frameworks • portals-bridges-jsf • portals-bridges-common Chép vào thư mục WEB-INF/lib của JSF project. trong thư mục jars (tùy phiên bản có thể là thư mục khác).4.3 Thư viện.3.2.html Giải nén. 84 .org/bridges/download.

0" encoding="UTF-8"?> <portlet-app xmlns="http://java.sun.com/dtd/liferay-portlet-app_4_4_0.w3.xml <?xml version="1.jsp</value> </init-param> Đặt ViewPage.xsd" xmlns:xsi="http://www.com/xml/ns/portlet/portlet-app_1_0. jsp..0"?> <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 4. và display của nó <description>Student Management JSF application</description> <portlet-name>jsfStudentManagement</portlet-name> <display-name>JSF Student Management</display-name> <!-.com/xml/ns/portlet/portlet-app_1_0. .6 File liferay-portlet.5 Pages. chỉ để lại những nội dung trong body.apache.xml <?xml version="1. <portlet-mode>VIEW</portlet-mode> <portlet-mode>EDIT</portlet-mode> Value là trang *.4.3.xsd http://java..jsf.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.0"> <portlet> Đặt tên cho portlet.2.3. HelpPage cho các mode <supports> <mime-type>text/html</mime-type> tương ứng.4. <portlet-info> <title>Student Management</title> <short-title>Student Management</short-title> </portlet-info> </portlet> </portlet-app> .2.sun. </supports> theo mode tương ứng.dtd"> <liferay-portlet-app> <portlet> <portlet-name>portlet_name</portlet-name> </portlet> </liferay-portlet-app> 85 .do <portlet-mode>HELP</portlet-mode> … bắt đầu của ứng dụng.com/xml/ns/portlet/portlet-app_1_0.4.portals.4 portlet.4. Bỏ hết các thẻ của html như <html>. <body>.FacesPortlet</portlet-class> Phải đặt đúng như vậy <init-param> <description>Portlet init view page</description> <name>ViewPage</name> <value>/index. EditPage. <head>.xsd" version="1.. *.You must use this Portlet implementation class --> <portlet-class>org.0//EN" "http://www.sun.2.liferay.3.bridges.

3. Contelligent.3. Daisy.3.0//EN" "http://www. .2. Năm 2002. Đây là phần mềm để tổ chức và tạo ra môi trường thuận lợi nhằm mục đích xây dựng hệ thống tài liệu và các loại nội dụng khác một cách thống nhất. Ngoài ra ứng dụng này có có các chức năng thêm.5Quản lí nội dung với CMS.0.liferay.4..Portlet Tìm kiếm nhanh thời khóa biểu .2. Nhưng bên cạnh đó cũng có một số những công ty.8 Application bằng JSF đã được chuyển đổi  Tìm kiếm nhanh thời khóa biểu: o Mục đích: Nhằm giúp sinh viên tìm nhanh ra thời khóa biểu của một lớp học nào đó. Eplica.com/dtd/liferaydisplay_4_0_0. CMS Master.3. Số lượng các công ty ở Việt Nam xây dựng và sử dụng các hệ thống CMS khá giới hạn.4. Hình 56 . Tùy thuộc vào từng đối tượng người dùng mà các thao tác trên ứng dụng có được thực hiện hay không.1 Tổng quan về CMS. Phần lớn các công ty phát triển các hệ thống CMS đều với mục đích kinh doanh.0"?> <!DOCTYPE display PUBLIC "-//Liferay//DTD Display 4.7 File liferay-display. Content Management System là cụm từ được viết đầy đủ của CMS được gọi là hệ quản trị nội dung hay hệ thống quản trị nội dung. Cofax. … 86 . xóa.dtd"> <display> <category name="category_name"> <portlet id="portlet_name" /> </category> </display> . Các công nghệ sử dụng cho hệ thống CMS rất đa dạng: • Java: CMS Genie. tổ chức và cá nhân cung cấp các giải pháp CMS dưới dạng mã nguồn mở hay miễn phí.2.2.xml <?xml version="1. công ty Microsoft mới bắt đầu tham gia lĩnh vực này.5. sửa.

… • C++: Lighthouse. − Các ứng dụng khác có thể sử dụng CMS như một công cụ hỗ trợ cho việc cung cấp và cập nhập thông tin.3 CMS trong Liferay. EasyConsole CMS… • ASP. − CMS còn giúp chấm dứt tình trạng thông tin thiếu cập nhập trên các Website. − CMS giúp người sử dụng dễ dàng tạo ra nội dung các trang web.NET CMS. Liferay Portal cung cấp hai chức năng chính trong CMS: Quản lý nội dung và xuất bản các nội dung đó. Rainbow… • Python: Easy Publisher… .• Java Script: CMS Master. 87 .net.3. − Cho phép thay đổi cách thức hiển thị của các trang web trong Website. Composite CMS.2. … • C#: ContentXXL . Manila… • ASP: Acuity CMS. Complete Site Manager.ASP.2 Lợi ích từ việc sử dụng CMS.5. công sức và chi phí cho việc cập nhập thông tin. Dozing Dogs ASP.NET CMS.ASP. … • VB. AGPCMS.NET: ContentXXL .ASP. − Cung cấp cơ chế tìm kiếm thông tin. Open CMS… • PHP: Acuity CMS. Back-End CMS. Complete Site Manager.3.NET CMS.NET: AxCMS. contentXXL . − Cho phép dùng các template nhằm hỗ trợ tạo ra nội dung một cách đồng nhất.2. Quản lý dữ liệu: Việc quản lý dữ liệu được cung cấp qua các portlet Document Library. − Cá nhân hóa thông tin người dùng. .NET CMS. − Cập nhập thông tin nhanh chóng.5. Baseline CMS… • Cold Fusion: AssetNow. − Phân quyền sử dụng tương ứng với mỗi đối tượng sử dụng. Còn Image Gallery dùng để quản lý các tập tin. Image Gallery. Nhờ đó ta có thể giảm được thời gian. Document Library để quản lý tất cả hình ảnh trong hệ thống.

Nội dung trong porlet Assert Pulisher được hiển thị một cách linh động và tự động cập nhập nếu được thiết lập. 88 .Xuất bản nội dung: Web Content Display là porlet cho phép người dùng tạo. Hỗ trợ 22 ngôn ngữ và cho phép định nghĩa thêm các ngôn ngữ khác. Tìm kiếm nội dung trong hệ thống nhanh chóng qua porlet Web Content Search. cho phép nội dung được tạo được phép tìm kiếm với porlet Web Content Search hay không. Ngoài ra Liferay CMS còn có các chức năng sau: Upload được nhiều định dạng tệp tin vào hệ thống. Việc hiệu chỉnh style của các porlet kể trên hết sức dễ dàng qua công cụ Look and Feel tương ứng với từng porlet hay từng loại porlet. nhóm nội dung vào các Tags hay Category để để dàng cho việc xuất bản với porlet Assert Publisher. SiteMap là porlet có khả nay hiển thị liên kết linh động hơn nhiều so với Navigation. Trong porlet này ta có thể tạo ra các mẫu template có sẵn để định dạng cho nội dung cần hiển thị. chỉnh sửa và xuất bản các nội dung cần hiển thị. Porlet Assert Publisher là công cụ cho phép ta hiển thị đồng loạt các nội dung trong porlet Web Content Display theo Tags. Với porlet Navigation ta sẽ nhận được cây thư mục liên kết đến các trang của portal trong cùng một Community hay Organigation.

hệ thống người dùng sẵn có trong Liferay Người dùng không đăng ký được gọi là khách (Guest). − Power User: Có trang web trong hệ thống dành cho cá nhân người dùng dạng này.2 Các vai trò (role). có trang web riêng và tài nguyên riêng. không có role.4.1 Giới thiệu. − Community: tập hợp các người dùng. − Owner: Người người dùng đã đăng ký và là người tạo ra một tài nguyên nào đó (trang web. Người dùng trong tổ chức này có vai trò sau: o Organization Owner: Người tạo ra tổ chức. − Organization: Nhóm các người dùng. các nhóm người dùng. Hệ thống này có thể dễ dàng mở rộng thành hệ thống của trường Đại học Nông Lâm. không có tài nguyên riêng. o Organization Member: Thành viên trong tổ chức. Người dùng trong cộng đồng này có các vai trò sau: o Community Owner: Người tạo ra cộng đồng.4. các tổ chức. Các người dùng trong nhóm có vai trò như nhau. FIT Portal được xây dựng trên cơ sở về cấu trúc và nội dung của khoa Công Nghệ Thông Tin trường Đại học Nông Lâm. Người dùng đã đăng ký có một trong các role cơ bản sau: − User: Người dùng đăng ký tài khoản trong Liferay. bao gồm trang công cộng và trang riêng (public pages và private pages).1. . tài nguyên riêng. Xây dựng FIT Portal dựa trên Liferay Portal.1. o Organization Administrator: Người quản trị tổ chức. − Administrator: Quản trị hệ thống. các nhóm người dùng có chung đặc điểm nào đó.Chương . Ngoài ra người dùng có thể tham gia vào một hay nhiều nhóm người dùng sau: − User group: Nhóm các người dùng có chung đặc điểm nào đó. 89 . file…). có trang web riêng. có trang web riêng.4 .

. CMSContributor không được sửa đổi. trả lời trong Diễn đàn. − Student: Dành cho đối tượng người dùng là sinh viên. trả lời trong Diễn đàn. − CMSAdmin: Là người được phép viết bài. mặc định người dùng đăng ký vào hệ thống đều thuộc cộng đồng khách (Community Guest) và đương nhiên có thể truy cập vào các tài nguyên của khách.o Community Administrator: Người quản trị cộng đồng.4. mẫu tin để đăng trên hệ thống FIT portal. hiệu chỉnh những bài viết chưa được duyệt và duyệt chúng.1.3. Sau khi mẫu tin được duyệt.1. mẫu tin để đăng trên hệ thống FIT portal. Đồng thời đối tượng này còn được phép tạo thông báo cho tất cả các người dùng thuộc role là Student và Intructor. − CMSContributor: Là người chỉ được phép viết bài. 90 . o Có trang web trong hệ thống dành cho Instructor. Bên cạnh đó người dùng thuộc role này còn được quyền kiểm soát tất cả các hoạt động của diễn đàn.Sau khi bài viết của đối tượng này được duyệt thì họ vẫn có quyền sửa đổi nội dung. − Instructor: Dành cho đối tượng người dùng là giảng viên. o Được phép gửi luồng mới trên các chuyên mục. hiệu chỉnh những bài viết chưa được duyệt nhưng không được quyền approve bài viết đó.4. xóa tất cả các bài viết. mẫu tin trong hệ thống. − Trong Liferay.3 Các role. o Community Member: Thành viên trong cộng đồng. Việc quyết định sử dụng khái niệm nào để quản lý một hệ thống phụ thuộc vào sự phân tích của người phát triển.1 Role. không được quyền duyệt bài viết đó. − Hai khái niệm Organization và Community gần giống như nhau. mẫu để đăng trên hệ thống FIT portal. Đồng thời đối tượng này còn được phép tạo thông báo cho tất cả các người dùng thuộc role là Student và Intructor. Người này chỉ được quyền sửa bài của họ trước khi CMSAdmin duyệt bài viết đó. hệ thống người dùng xây dựng thêm trong FIT portal. . − CMSEditor: Là người được phép viết bài. o Được phép gửi luồng mới trên các chuyên mục.

tổ chức. năm tin tức mới nhất và các liên kết khác. tổ chức. • Admin. Người dùng khách chỉ được phép truy cập nhóm trang sau: • Trang chủ: Chứa hình ảnh liên kết. Giảng viên trong nhóm này được phép gửi luồng mới trong các chuyên mục. • Đào tạo: Thông tin về chương trình đào tạo. Hệ thống có năm loại người dùng chính: • Người dùng khách.1. chỉ có quyền truy xuất các tài nguyên công cộng của người dùng đã đăng ký.4.. thông báo dành cho tất cả mọi người. điểm thi. WebSite liên kết của Giảng viên. . tên sinh viên. Người dùng khách: Là những người dùng truy xuất portal mà không đăng ký. trả lời trong Diễn đàn. đoàn 91 . • Sinh viên. Student_Group: Để nhóm các sinh viên. Sinh viên trong nhóm này được phép gửi luồng mới trong các chuyên mục. • Giới thiệu: Giới thiệu về khoa Công nghệ thông tin trường Đại học Nông Lâm với các nội dung như giới thiệu chung.1. Instructor_Group: để nhóm các giảng viên. • Sinh Viên: Người dùng khách có thể xem danh sách sinh viên của tất cả các lớp thuộc khoa. lịch thi.4 Đối tượng người dùng trong hệ thống FIT portal. của cộng đồng. • CMSAdmin.2 User group. công đoàn.4. Danh sách của sinh viên sẽ hiển thị mã số sinh viên.Người dùng khách có role là Guest. đào tạo. chuyên ngành đào tạo và hệ đào tạo của khoa Công nghệ thông tin trường Đại học Nông Lâm. Và các thông tin sau thời khóa biểu. trả lời trong Diễn đàn và có trang web riêng.3. • Giảng viên.

sách. • Diễn đàn: Người dùng khách chỉ có thể xem được nội dung thảo luận của diễn đàn. Sinh viên thuộc User Group: Student_Group. • Ngoài ra sinh viên còn phép gửi luồng mới trong các chuyên mục. không thể thực hiện bất kì thao tác nào. Giảng viên có role: User. các bài báo khoa học.thanh niên Việt Nam.Đối với phần “Thông báo” thuộc Trang chủ sinh viên sẽ nhận được những thông báo dành riêng cho sinh viên. Người khách dùng không được tải bất kì nội dung nào từ hệ thống. cấp bộ. Power User. trả lời trong Diễn đàn của Khoa công nghệ thông tin. slice bài giảng. CMSEditor. • Sơ đồ trang: Sơ đồ cấu trúc toàn bộ hệ thống FIT Portal. mẫu đơn (không được tải mẫu đơn). đề tài tốt nghiệp của sinh viên thuộc khoa. Giảng viên thuộc User Group: Instructor_Group. Instructor. giảng viên của khoa Công nghệ thông tin. xem thông tin về việc làm. • Sinh viên được phép truy cập vào tất cả các trang mà người dùng khách có thể truy cập được. Ngoài ra còn có thư viện khoa với giáo trình. cấp Nhà nước. Giảng viên: Là cán bộ. Sinh viên: Là sinh viên của khoa Công nghệ thông tin. và sử dụng chức năng tìm nhanh thời khóa biểu. Student. • Nghiên cứu: Người khách dùng sẽ biết được thông tin về việc nghiên cứu của khoa: Đề tài cấp trường. Giảng viên thuộc Community: Guest. 92 . Sinh viên có role: User. sách điện từ thuộc khoa. • Một số sinh viên sẽ được cấp quyền viết bài để đăng trên hệ thống FIT portal nhưng bài viết đó không thể hiển thị ngay trên hệ thống mà cần sự duyệt qua của các đối tượng có role là CMSEditor và CMSAdmin. Sinh viên thuộc Community: Guest. CMSContributor.

• CMSAdmin chỉ được phép thêm. Giảng viên có thể sử dụng trang web này để viết blog. nhưng không có quyền làm cho nó hiển thị trên hệ thống và cần có sự duyệt qua của CMSAdmin. tổ chức. Có tất cả các quyền mà sinh viên được cấp như gửi luồng mới trong các chuyên mục. xóa nội dung của các trang: Trang chủ. CMSAdmin thuộc Community: Guest. CMSAdmin có role: User. chỉnh sửa. • Tạo thông báo cho các đối tượng người dùng là Sinh Viên và Giảng Viên • CMSAdmin còn được quyền quản lý diễn đàn. Đồng thời giảng viên còn được tạo và sửa thông báo cho các đối tượng người dùng là Sinh viên. hợp tác. Admin: Quản trị hệ thống Web Site của khoa Công nghệ thông tin. • Giảng viên được phép truy cập vào tất cả những khu vực mà sinh viên được phép. Giảng viên • Tất cả giảng viên đều được quyền viết bài để đăng trên hệ thống FIT portal. đồng thời chỉnh sửa những bài viết chưa được approve. quản lý lịch làm việc… Giảng viên được quyền thiết kế những trang này bằng những công cụ được phép. thư viện tài liệu của hệ thống. thời khóa biểu. Đây là đối tượng có quyền cao nhất trong hệ thống. đoàn thể. mẫu đơn. nghiên cứu. Và quản lý thư viện ảnh. Admin có role: User. thư viện khoa. thông báo. Administrator. đăng các thông báo.Ngoài ra CMSAdmin còn được quyền approve các bài viết chưa được approve nhằm giúp chúng hiển thị trên hệ thống FIT portal. trả lời trong Diễn đàn của Khoa công nghệ thông tin. Power User. có thể thực hiện tất cả các chức năng. CMSAdmin: Người phụ trách cập nhật thông tin cho trang web dành cho khách.• Mỗi giảng viên sẽ có trang riêng cho mình. CMAdmin. • Đối với phần “Thông báo” của Trang chủ giảng viên sẽ nhận được những thông báo dành riêng cho giảng viên. giới thiệu. Admin thuộc Community: Guest. sinh viên. tất cả 93 .

Sơ đồ khái quát về hệ thống người dùng của WebSite . Quy tắc hoạt động: Một số sinh viên sẽ được cấp quyền CMSContributor thì được tạo tin tức cho hệ thống FIT portal. Hình 57 . Chức năng chủ yếu của Admin trong hệ thống này là quản lý người dùng. sửa chữa tất cả các mẫu tin và duyệt mẫu tin. Và cũng chính CMSAdmin sẽ hủy bỏ quyền sửa chữa bài viết của sinh viên đó sau khi bài viết đó được duyệt. CMSAdmin chỉ định quyền chỉnh sửa bài viết đó cho các đối tượng có role là CMSEditor. Ghi chú: Sau khi sinh viên có role là CMSContributor tạo một bài viết bất kì.Tất cả các CMSAdmin đều được quyền tạo mẫu tin. Tất cả các tin tức được duyệt đều được hiển thị trên hệ thống FIT portal.5 Quy trình tạo mẫu tin của hệ thống FIT portal.các hành động thuộc Web Site. Tất cả các giáo viên đều được quyền tạo mẫu tin và sửa chữa mẫu tin của họ. cấp phát quyền truy cập (cấp phát role). sinh viên chỉ được quyền sửa mẫu tin của họ trước khi mẫu tin được duyệt. đồng thời họ còn sửa được tất cả các mẫu tin do đối tượng sinh viên tạo ra .1. Hệ thống tin tức nội dung hiển thị tin tức trên các trang web thuộc hệ thống FIT portal được mô tả theo một quy trình như hình sau: 94 .4.

4.Hình 58 .Quy trình tạo mẫu tin của hệ thống FIT portal . Cấu trúc trang được tổ chức trong hệ thống FIT Portal: 95 .1.6 Cài đặt các trang trong hệ thống.

Thời khóa biểu. Hợp tác.Hình 59 . 96 . Còn với nhóm trang Sinh viên thì bao gồm các trang Mẫu đơn. Diễn đàn. Đào tạo. Với nhóm trang Giới thiệu thì bao gồm các trang Giới thiệu chung. Nhóm trang Đào tạo bao gồm trang Chương trình đào tạo. Việc làm và ba nhóm trang là Danh sách sinh viên. Sơ đồ trang. Nghiên cứu. Quản lý dữ liệu. Tổ chức. Đoàn thể. Chuyên ngành đào tạo. Giới thiệu.Cấu trúc trang Các trang trong hệ thống sẽ được nhóm lại với nhau theo chủ đề trong đó có các trang chính sau: Trang chủ. Hệ đào tạo. và link liên kết đến WebSite Học trực tuyến.

1. giới thiệu về cơ hội việc làm và du học của sinh viên thuộc khoa và liên kết đến WebSite của tất cả các giảng viên thuộc khoa Công nghệ thông tin.4. hình ảnh để liên kết. 97 . 11. 16) để hiển thị các banner. 5. và hiển thị tin tức về công nghệ thông tin. 10): để điều hướng trang. 3. − Năm porlet SiteMap (Số 2.6. 14. 9.. − Một porlet Asset Publisher (Số 17): Hiển thị năm tin tức mới nhất của hệ thống FIT Portal. 7.1 Trang chủ: Với mục đích hiển thị liên kết đến các trang thuộc Website. 12. 6. 13. Tùy thuộc vào đối tượng người dùng mà các thông báo sẽ khác nhau. Các porlet được sử dụng: − Mười porlet WebContent Display (Số 1. 4. Là menu để liên kết đến các trang thuộc khoa Công nghệ thông tin − Một porlet Announcement (Số 15): Có chức năng thông báo cho tất cả các đối tượng người dùng truy cập vào hệ thống. 8.

98 . 4) để hiển thị các banner và nội dung trang Tổ chức. Trang này bao gồm: − Ba porlet WebContent Display (Số 1. Tổ chức và Hợp tác. Ba trang này bao gồm các porlet giống nhau.Hình 60 . Nhóm trang Giới Thiệu bao gồm ba trang là Giới thiệu chung.2 Giới thiệu. Do đó ta lấy trang Tổ chức để phân tích cấu trúc trang của chúng.1. Là menu để liên kết đến các trang còn lại của nhóm trang Giới thiệu.Trang chủ . 3.6. − Một porlet SiteMap (Số 2): Để điều hướng trang.4.

Thời khóa biểu và hai trang là Mẫu Đon và Việc làm. 3.Trang Chương trình đào tạo .1.Trang Sơ đồ tỗ chức khoa Công Nghệ Thông Tin Nhóm trang Đào tạo bao gồm 3 trang là Chương trình đào tạo.Hình 61 . Ba trang này bao gồm các porlet giống nhau. Là menu để liên kết đến các trang còn lại của nhóm trang Đào tạo. Do đó ta lấy trang Chương trình đào tạo để phân tích cấu trúc trang của chúng. Hình 62 . Trang này bao gồm: − Ba porlet WebContent Display (Số 1. 99 .4. Đoàn thể. Sinh viên bao gồm ba nhóm trang: Danh sách sinh viên. 4) để hiển thị các banner và nội dung trang Chương trình đào tạo. Chuyên ngành đào tạo và Hệ đào tạo.3 Sinh viên.6. − Một porlet SiteMap (Số 2): Để điều hướng trang.

8. Chọn trang danh sách sinh viên đại học để phân tích.Cấu trúc trang cho Sinh viên Danh sách sinh viên Các đối tượng sử dụng sẽ xem được danh sách sinh viên thuộc khoa công nghệ thông tin. sinh viên cao đẳng. 9. 100 . Khi người dùng truy cập vào nhóm trang Sinh viên thì mặt định trang chính là danh sách sinh viên đại học. − Một porlet Asset Publisher (Số 12): Để hiển thị danh sách sinh viên. ta có các porlet sau. − Sáu porlet WebContent Display (Số 1. 3.Hình 63 . trung cấp và tại chức.10): Để liên kết đến các trang thuộc nhóm trang Sinh Viên. − Năm porlet SiteMap (Số 2. 5. 6. 4. 7. Danh sách sinh viên sẽ được liệt kê theo thứ tự: Sinh viên đại học. 11) để hiển thị các banner.

5. 7. 9. 11) để hiển thị các banner một porlet.Chúng có cấu trúc giống như nhau. Bao gốm: − Sáu porlet WebContent Display (Số 1. Đoàn thể. − Một porlet Asset Publisher (Số 12): Để hiển thị danh sách thông tin về hoạt động của công đoàn. 10): Để liên kết đến các trang thuộc nhóm trang Sinh Viên.Trang hiển thị danh sách sinh viên đại học Các trang hiển thị danh sách sinh viên cao đẳng.Hình 64 . 8. Do đó ta chỉ cần phân tích trang Công Đoàn. tại chức có cấu trúc tổ chức porlet trong như trang hiển thi danh sách sinh viên đại học. Đoàn thanh niên. trung cấp. Hội học sinh. Trong nhóm trang này còn có Ba trang con là: Công đoàn. Công tác đoàn thể của khoa sẽ được thông báo ở đây. 6. − Năm porlet SiteMap (Số 2. 101 . 3. 4.

tại chức.Trang đoàn thể Thời khóa biểu. 6. 9.10): Để liên kết đến các trang thuộc nhóm trang Sinh Viên.Hình 65 . − Một porlet Asset Publisher (Số 12): Để hiển thị thời quá biểu. 4. 3. Gốm có: − Sáu porlet WebContent Display (Số 1. 8. 7. 5. Thời khóa biểu của tất cả các lớp học thuộc khoa Công nghệ thông tin trường Đại học Nông Lâm bao gồm các hệ : đĐại học. 102 . đại học. 11) để hiển thị các banner − Năm porlet SiteMap (Số 2. cao đẳng.

Các porlet được sử dụng trong trang đó là: − Sáu porlet WebContent Display ( Số 1. − Một porlet Quich Schedule (Số 12): Để hiển thị chức năng tìm kiếm nhanh thời khóa biểu với tên lớp. 9. 6. Riêng trang Tìm nhanh thời khóa biểu thì có sự thay đổi chút ít trong loại porlet sử dụng. 8. 7. Điểm thi với trang Thời khóa biểu là hoàn toàn giống nhau. − Lịch thi: Chứa lịch thi của các lớp thuộc khoa Công nghệ thông tin. giúp cac đối tượng người dùng nhanh chóng tìm được thời quá biểu theo từng lớp. 3. − Tìm nhanh thời khóa biểu: Chứa thời khóa biểu của các lớp thuộc khoa công nghệ thông tin. lịch thi. 10): Để liên kết đến các trang thuộc nhóm trang Sinh Viên. Cấu trúc tổ chức của hai trang Lịch thi. − Năm porlet SiteMap (Số 2. 4. − Điểm thi: Chứa điểm thi của các lớp thuộc khoa công nghệ thông tin. 103 . 11) để hiển thị các banner. điểm thi. 5.Hình 66 .Trang thời khóa biểu Ở trang thời khóa biểu có các liên kết là: Tìm nhành thời khóa biểu.

Trang Nghiên cứu Lấy trang đề tài cấp trường. slice bài giàng. cấp Nhà Nước.Trang tìm nhanh Thời khóa biểu Nghiên cứu. các bài báo khoa học. Tất cả các trang thuộc trang này đều tạo nên từ các porlet: WebContent Display. cấp Bộ. đề tài tốt nghiệp của sinh viên và thư viên khoa. − Một porlet SiteMap (Số 2): Để liên kết đến các trang thuộc nhóm Nghiên cứu. Mục đích của nhóm trang nghiên cứu là khi truy cập vào trang này người dùng khách sẽ truy cập được các thông tin sau: Các đề tài cấp trường. sách điện tử. sách. 3) để hiển thị các banner.Hình 67 . Trong thư viện khoa bao gồm các thông tin sau: giáo trình. Hình 68 . cấp Nhà Nước đề phân tích các porlet của trang: − Hai porlet WebContent Display (Số 1. 104 . cấp Bộ. SiteMap và Asset Publisher.

Mẫu đơn. 10): Để liên kết đến các trang thuộc nhóm trang Sinh Viên. 7.4. 3. Hình 69 .1. 11.− Một porlet Asset Publisher (Số 12): Để hiển thị các đề tài cấp trường. 8. cấp Bộ. Dùng hai loại porlet: − Mười hai porlet WebContent Display (Số 1. − Năm porlet SiteMap (Số 2. Trang này có chức năng giúp các đối tượng người dùng biết được sơ đồ các trang thuộc hệ thông FIT portal. 6.6. 5.Có hai porlet được sử dụng : − Một porlet WebContent Display (Số 1) để hiển thị các banner.Trang Mẫu đơn .4 Sơ đồ trang. cấp Nhà Nước. Mẫu đơn là trang chứa những mẫu đơn thông dụng. 4. 9. − Một porlet SiteMap(Số 2): Hiển thị các liên kết chính của hệ thống FIT portal 105 . 12) để hiển thị các banner và các mẫu đơn thông dụng.

và thêm dữ liệu về thời khóa biểu nhằm phục việc tìm kiếm thời khóa biểu của các đối tượng người dùng. trang này có bốn loại porlet sau: − Hai porlet WebContent Display ( Số 1.6. Trang này có hai porlet là Web Content Display (Số 1) và Message Board (Số 2): Hình 71 .Trang Diễn đàn .5 Diễn đàn.4.6 Quản lý dữ liệu. 3) để hiển thị các banner.6. Trước tiên ta phân tích trang Thêm thời khóa biểu.Trang Sơ đồ trang . 106 . Đây là nhóm trang chỉ có CMSAdmin và Admin thấy được và thao tác được. Nhóm này nhằm giúp hai đối tượng này quản lý được thư viện tài liệu và hình ảnh của hệ thống.4.1.Hình 70 .1.

Trang thêm thời khóa biểu Còn ở trang quản lý thư viện tài liệu cũng có bốn loại porlet là: − Hai porlet WebContent Display ( Số 1. xóa. 107 . sửa thời khóa biểu. − Một porlet Quick Schedule Admin: Để thêm. − Một porlet SiteMap (Số 2): Để hiển thị các liên kết của nhóm trang Quản lý dữ liệu. − Một porlet SiteMap (Số 2): Để hiển thị các liên kết của nhóm trang Quản lý dữ liệu. − Một porlet Thư viện tài liệu. Và ở trang quản lý thư việc ảnh có bốn porlet là: − Hai porlet WebContent Display ( Số 1.− Một porlet SiteMap (Số 2): Để hiển thị các liên kết của nhóm trang Quản lý dữ liệu. 3) để hiển thị các banner. Hình 72 . − Một porlet Thư viện ảnh. 3) để hiển thị các banner.

Trang quản lý hình ảnh .7 Trang riêng của giảng viên. Tất cả các giảng viên đều có trang web cá nhân riêng.4. Sau đó các giảng viên có thể tùy biến theo sở thích.Hình 73 .6.1.Trang quản lý tài liệu Hình 74 . Cấu trúc trang của giảng viên sẽ như sau: 108 . Ban đầu tất cả các website cá nhân của giảng viên đều theo một template sẵn.

Khi đó thành viên của website chỉ có thể hoạt động trong tổ chức của nó.Tạo role với loại là tổ chức. Ví dụ ta tạo 1 role tên là Student Organizations với loại là tổ chức.Cấu trúc trang của các Website cá nhân của giảng viên Giảng viên được quyền thêm mới các porlet có trong hệ thông nhưng với mức độ hạn chế.Công cụ cho giảng viên Hệ thống website của khoa công Nghệ thông tin dễ dàng mở rộng thành hệ thống WebSite của trường Đại học Nông Lâm Hệ thống phân quyền sẽ được thiết lập theo tổ chức.Hình 75 . Những porlet giảng viên được quyền sử dụng: Hình 76 . Hệ thống có hai tổ chức 109 .

Bản tin nội bô.(Organizations) là A và B. mặc định người dùng đăng ký vào hệ thống đều thuộc cộng đồng khách (Community Guest) và đương nhiên có thể truy cập vào các tài nguyên của khách.Sơ đồ tổ chức : Hình 77 . Ban giám hiệu. thì lúc này một người nào đó là thành viên mang role Student Organizations và là thành viên của tổ chức A.Cấu trúc trang của trường Đại Học Nông Lâm  Hệ thống Website trường Đại học Nông Lâm bao gồm: -Hiển thị những thông tin mới nhất về trường: Giới thiệu. Hệ thống website của trường được xây dựng dựa trên cấu trúc của trang web trường đại học Nông Lâm hiện nay. -Danh mục các WebSite đơn vị liên kết bao gốm: • WebSite các khoa (18) • WebSite các trung tâm (9) 110 . địa chỉ liên lac. Do đó ta chọn Community Guest làm website của trường đại học Nông Lâm. Trong Liferay. còn bên tổ chức B nó sẽ bị hạn chế.Đồng thời người dùng khách cũng được quyền truy xuất vào hệ thống nếu được phép. Thì nó chỉ có thể có tham gia những hoạt động thuộc tổ chức A. Thông báo – Tin Tức và Danh mục các WebSite đơn vị liên kết. Sơ đồ trường.

− Admin: Người có quyền cao nhất trong hệ thông. Tạo mới một tổ chức(Organizations ) đặt tên là Template For Web. trung tâm tin học. − CMS Manager: Mỗi WebSite đơn vi đều có một CMS Manager. − Intructor: Đây là những người sẽ có thể tạo WebSite riêng cho họ. các trung tâm. − Student: Đây là những người có thể tham gia diễn đàn: Thêm luồng mới.4. Để nhanh chóng tạo ra các website đơn vị cho các khoa-bộ môn.  Cấu trúc người dùng hệ thống. (Mỗi giảng viên của trường đều có thể tạo một WebSite cá nhân) -Mỗi website đơn vị đều có người cập nhập thông tin. các phòng ban và WebSite cá nhân .1. quản lý người dùng.7 Cách tạo Website đơn vị. phòng ban là một tổ chức (Organizations). .7. 111 . Người này có nhiệm vụ cập nhập tin tức. quản lý diễn đàn cho chính nó. Có thể thực hiện mọi thao tác mà hệ thống cung cấp.• WebSite các phòng ban(16) • WebSite cá nhân. trung tâm tin học.4. trả lời mà họ làm thành viên. Mỗi Website đơn vị của khoa-bộ môn.1. Ngoài ra họ còn có thể tham gia diễn đàn mà họ là thành viên.1 Bước 1. Nhiệm vụ chính: Cấp phát WebSite cho các khoa. quản lý diễn đàn cho WebSite đơn vị đó. phòng ban ta làm như sau: .

Cấu trúc trang của Template For Web 112 .Cách tạo Website đơn vị Chọn Action  Quản lý các trang  View Pages. Cấu trúc TemplateForWeb: Hình 79 .Hình 78 .

chon các tùy chon đó nếu thấy cần .Đây là cấu trúc trang cơ bản cho WebSite của khoa. Rồi nhấn Xuất. Ở phần quản lý trang của TemplateForWeb ta chọn Tag Import/Export.bộ môn. Ta sẽ nhận được file có đuôi mở rộng là *. Rồi chọn Xuất .Export một Organizations Tạo mới một organizations đặt tên khoa Thủy sản. Chọn “Nhập”. Chọn tag Import/Export. cấu trúc trang của Khoa Thủy Sản sẽ giống hoàn toàn như cấu trúc 113 . Hình 81 . Sau hoàn thành xong thao tác.lar Hình 80 .Tạo mới 1 tổ chức Sau đó ta chọn Action  Quản lý các trang. Ở đây ta sẽ thấy một số tùy cho khi Xuất. Rồi sau đó chỉ đến file nhận được khi ta export Template For Web.

của Template For Web. Tương tự như vậy ta sẽ làm cho tất cả các khoa-bộ môn, phòng ban và trung tâm. Kết quả tất cả các website đơn vị như khoa-bộ môn, phòng bàn và trung tâm đều có mẫu template giống nhau. Sau đó Admin, hoặc CMS Manager của website đơn vị đó có thể hiểu chỉnh lại giao diện, nội dung cho phù hợp với từng đối tượng người dùng.

.4.1.8 Danh mục các website đơn vị.
Sau đây là hình ảnh liên kết các website đơn vị của các khoa-bộ môn, phòng ban và trung tâm:

Hình 82 - Danh mục Website của khoa

114

Hình 83 - Danh mục Website của Phòng Ban

Hình 84 - Danh mục Website của Trung tâm

115

Chương .5
.5.1.1 Liferay

Kết quả đạt được và hướng phát triển

.5.1. Kết quả đạt được
• Xây dựng cổng thông tin cho khoa CNTT – Đại học Nông Lâm TPHCM dựa trên cổng thông tin Liferay. • Việt hóa Liferay. • Tao theme mới cho Liferay dựa trên theme có sẵn. • Tích hợp một số ứng dụng viết trên JSF framework vào Liferay dưới dạng portlet.

.5.1.2 Sakai
• Áp dụng Sakai thử nghiệm cho việc dạy và học trực tuyến một số môn học. • Việt hóa Sakai. • Viết công cụ mới cho Sakai (AddSite tool). • Hiện thực Hệ thống quản lý học của Sakai. • Hiện thực UserDirectoryProvider để cho phép Sakai có thể đọc dữ liệu người dùng từ CSDL bên ngoài.

.5.1.3 Single Sign On
• Nghiên cứu và triển khai thành công hai kỹ thuật Single Sign On là OpenSSO và CAS. • Single Sign On thành công cho Liferay, Sakai và 1 số ứng dụng web java khác dựa trên CAS. • Xây dựng thành công framework để áp dụng CAS cho các ứng dụng web.

.5.2. Hướng phát triển
• Phát triển cổng thông tin cho trường Đại học Nông Lâm dựa trên cổng thông tin Liferay. • Phát triển một số portlet riêng cho khoa/trường trong cổng thông tin. • Áp dụng Sakai thực tế cho khoa CNTT.
116

• Đồng bộ dữ liệu người dùng của trường với các hệ thống Liferay.• Phát triển và viết mới một số công cụ cho Sakai phù hợp vớ việc dạy và học ở trường Đại học Nông Lâm. CAS. • Xác thực OpenSSO với các CSDL người dùng tồn tại sẵn. Sakai. 117 .

html Download: http://static.org/CAS Download: http://www.com/CAS/overview.jasig.html Security Filter Home page: http://securityfilter.0 Document: http://docs.sourceforge.yale.nabble.net/public/use/index.com/CAS-Users-f15449.TÀI LIỆU THAM KHẢO CAS Developer’s Discussion List: http://tp.org/wiki/display/CASC/Yale+CAS+client+distribution Acegi sites Home page: http://www.sun.org/downloads.net/ Download : https://opensso.net/projects/securityfilter/files/ 118 Home page: https://opensso.sun.html CAS Overview: http://www.org/spring-security/site/downloads.dev.org/CAS/download Forum: http://www.dev.html OPENSSO Khác Yale CAS client: http://www.com/display/OpenSSO/getstarted .java.springsource.sun.org/spring-security/site/index.jusfortechies.acegisecurity.com/app/docs/coll/1767.org/source/ Homepage: http://www.java.html Forum: https://opensso.1 Policy Agent 3.html Spring Security Home page: http://static.ja-sig.org/ Download: http://www.java.ja-sig.its.jasig.acegisecurity.dev.net/servlets/ForumMessageList?forumID=1554 OpenSSO Document: http://docs.com/app/docs/doc/820-4803/ OpenSSO getting started: http://wikis.net/ Download: http://sourceforge.springsource.edu/mailman/listinfo/CAS-dev Source code: http://developer.

Doanh nghiệp. • • • • • • • • Cao đằng. Một tổ chức có quyền truy cập hoàn toàn mã nguồn và có thể thay đổi nếu cần thiết. 119 .org/2. Các bệnh viện.0 PHỤ LỤC A. Moodle là giải pháp đào tạo trên mạng.opends. được phân phối miễn phí dưới bản quyền mã nguồn mở.OpenDS Home page: http://www. Đại học. Moodle được sáng lập năm 1999 bởi Martin Dougiamas. Các đại lý tuyển dụng. Các đại lý của chính phủ.org/ User document: https://docs. Hiện tại có 46601 trang web sử dụng Moodle trên 209 quốc gia.org/sites/ ). (Tham khảo http://moodle. Các thư viện.Một số so sánh giữa Moodle và Sakai. Moodle là một giải pháp học tập lý tưởng trên mạng cho: • Các trường phổ thông (K-12).opends. Các tổ chức kinh doanh.

bài thi. Sakai phải sử dụng dịch vụ bên ngoài hoặc người phát triển phải phát triển thêm công cụ hỗ trợ gắn vào hệ thống. Moodle Hệ thống hỗ trợ sẵn việc thêm danh sách người dùng từ tệp tin dưới định dạng csv. Cả hai đểu hỗ trợ người dùng tạo một trang web để dạy và học trực tuyến. Quản lí khóa học. Tạo khóa học. LDAP. thì các nguồn đó phải có cấu trúc theo một quy tắc nào đó. Moodle Khi tạo khóa học. bài giảng. Sakai 120 . trong đó có một số công cụ cơ bản như: sổ điểm. để tương tác với các nguồn bên ngoài. diễn đàn. Đăng ký sử dụng hệ thống: Cả hai đều cho phép người dùng tự đăng ký. hệ thống còn có thể lấy thông tin đăng ký từ nhiều nguồn bên ngoài như: External Database. Sakai Để thêm hàng loạt người dùng vào hệ thống.So sánh một số tính năng cơ bản hỗ trợ việc dạy và học trực tuyến. Tuy nhiên. báo cáo tình hình học tập. Quản lý người dùng. File. ngoài việc cho phép sinh viên tự đăng ký vào khóa học trực tuyến. bài tập.

Các công cụ để dạy và học.Để lấy thông tin đăng ký môn học có sẵn bên ngoài Sakai. bài kiểm tra … trong khoảng thời gian tương ứng. thông báo các sự kiện diễn tra phục vụ cho môn học trong khoảng thời gian tương ứng. bài tập. người phát triển phải hiện thực lại hệ thống quản lý khóa học trong Sakai sao cho phù hợp với ngưồn dữ liệu bên ngoài. diễn đàn. 121 . Moodle Giảng viên giới thiệu đề cương môn học trong phần mô tả khóa học (khi tạo khóa học) kết hợp với việc giới thiệu tài liệu môn học. kết hợp với công cụ Schedule để giới thiệu tài liệu môn học. kiểm tra. Hình 85 . lịch học.Hoạt động hàng tuần Sakai Giảng viên sử dụng công cụ Syllabus để giới thiệu nội dung của môn học. bài tập. Đề cương môn học (Syllabus). Cả hai đều hỗ trợ các công cụ cơ bản: Sổ điểm.

trắc nghiệm. Moodle Hình 86 . 122 . điền vào chỗ trống. z= x2 + y2 cho kết quả Các chuẩn bài giảng.Các loại câu hỏi Đặc biệt Moodle có hỗ trợ Giảng viên có thể tạo công thức toán học dễ dàng do tích hợp bộ soạn thảo công thức toán học LaTeX. Cả hai đều hỗ trợ hai loại bài giảng trực tuyến phổ biến là SCORM và IMS. Ví dụ: $$z = \sqrt{x^2 + y^2}$$ cho kết quả $$\sum_{k=1}^n k$$ Sakai Giảng viên có thể tạo các câu hỏi với loại đúng/sai. bảng thăm dò ý kiến. Moodle Hỗ trợ thêm chuẩn AICC.Tạo bài kiểm tra.Moodle . … tương tự Moodle nhưng không hỗ trợ việc tạo công thức toán học như Moodle.

tệp tin…. Kerberos.9 hiện nay chỉ hỗ trợ SCORM 1.Hiện thực UserDirectoryProvider. nên chúng ta sẽ xây dựng một Provider để hỗ trợ việc này. Tuy nhiên. (Theo http://docs. 123 . external database. Mục đích Sakai mặc định lưu trữ thông tin người dùng trong CSDL của chính nó (Internal Database). B. nhưng không trình diễn được SCORM 2004.Phiên bản Moodle 1.4 trở lên hỗ trợ module SCORM player trình diễn được SCORM 2004. hầu hết các công cụ hỗ trợ tạo gói SCORM (như Reload Editor. eXe…) đều có thể chuyển đổi SCORM 1. tạo thêm một source package external-db và package vn/edu/hcmuaf/sakai/user.moodle. nhưng không trình diễn được SCORM 1. Sakai cũng cho phép lưu trữ người dùng ở bên ngoài từ nhiều nguồn như LDAP.org/en/SCORM cập nhật ngày 10/06/2009) Sakai Phiên bản Sakai 2. Nhưng do nhu cầu truy xuất người dùng có sẵn từ CSDL bên ngoài.2 sang SCORM 2004.2. Phiên bản Sakai 2. Và Sakai đã hiện thực sẵn hỗ trợ việc xác thực thông qua giao thức Kerberos. Trong project providers cùa Sakai.1 hỗ trợ module SCORM player trình diễn được SCORM 1.2. phiên bản SCORM 2004 chưa được hỗ trợ.2. Tuy nhiên. Thực hiện Tạo thư mục và các file cấu hình cần thiết. LDAP ( với 2 LDAP server là OpenLDAP và JLDAP).

xml với nội dung 124 .Cây thư mục providers Eclipse sẽ phát sinh thư mục external-db. Tạo pom.Hình 87 .

0"> <modelVersion>4.0.sakaiproject</groupId> <artifactId>sakai-util-api</artifactId> <version>${sakai.version}</version> </dependency> <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-authz-api</artifactId> <version>${sakai.4</version> </dependency> <dependency> <groupId>org.sakaiproject</groupId> <artifactId>sakai-entity-api</artifactId> <version>${sakai.sakaiproject</groupId> <version>M2</version> <relativePath>.target/> </properties> <dependencies> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.0</modelVersion> <parent> <artifactId>providers-base</artifactId> <groupId>org.<?xml version="1.version}</version> </dependency> <dependency> <groupId>org.0“ ?> 125 .version}</version> </dependency> <dependency> <groupId>org.hcmuaf.sakaiproject</groupId> <artifactId>sakai-user-api</artifactId> <version>${sakai.version}</version> </dependency> <dependency> <groupId>org.edu.0.sakaiproject</groupId> <artifactId>sakai-util</artifactId> <version>${sakai. thêm module external-db <?xml version= “ 1.0.0"?> <project xmlns="http://maven.apache.xml</relativePath> </parent> <name>nlu-external-provider</name> <groupId>org./pom.org/POM/4.xml của project providers..sakaiproject</groupId> <artifactId>nlu-external-provider</artifactId> <organization> <name>Nong Lam University</name> <url>http://www.version}</version> </dependency> </dependencies> <build> <resources/> </build> </project> Trong pom.vn</url> </organization> <inceptionYear>2009</inceptionYear> <packaging>jar</packaging> <properties> <deploy.

apache. String password) { //phương thức này giúp chúng ta định nghĩa nguyên tắc xác thực dựa vào mã người dùng eid và password. Eid và password sẽ được truyền vào từ form login của Sakai.org/POM/4.<project xmlns="http://maven. gồm bốn phương thức: public boolean authenticateUser(String eid. UserEdit edit.sakaiproject</groupId> <version>M2</version> <relativePath>.xml</relativePath> </parent> <name>Sakai Providers Project</name> <groupId>org.0.0"> <modelVersion>4. tồn tại người dùng có email đó và thông tin bổ sung sẽ được gán vào tham số edit. 126 .0. nếu người dùng có trong CSDL và thông tin bổ sung về người dùng (ngoài eid và password) sẽ được gán lại và tham số edit. user nào không tồn tại sẽ bị bỏ khỏi users } Deploy.sakaiproject</groupId> <artifactId>providers-base</artifactId> <packaging>pom</packaging> <modules> <module>allhands</module> <module>cm/cm-authz-provider</module> <module>cm/cm-cm-provider</module> <module>component</module> <module>federating</module> <module>imsent</module> <module>jLDAP</module> <module>kerberos</module> <module>openLDAP</module> <module>sample</module> <module>external-db</module> </modules> </project> Hiện thực interface UserDirectoryProvider. } public boolean authenticateWithProviderFirst(String eid) { // TODO Auto-generated method stub return false..0</modelVersion> <parent> <artifactId>base</artifactId> <groupId>org. return false. String email) { //phương thức này trả về false nếu không người dùng nào có email đã cho //trả về true. } public void getUsers(Collection users) { // phương thức này sẽ kiểm tra xem user trong danh sách users có tồn tại không. Tạo lớp ExternalUserDirectoryProvider hiện thực UserDirectoryProvider./pom. } public boolean findUserByEmail(UserEdit edit. } public boolean getUser(UserEdit edit) { //phương thức này trả về false nếu người dùng không hợp lệ //trả về true.

rồi đăng nhập thử với người dùng lưu ở CSDL bên ngoài.SampleUserDirectoryProvider" init-method="init" destroy-method="destroy" singleton="true"> <property name="courseStudents"><value>500</value></property> </bean> Thành <bean id="org. Chạy server Tomcat.Chạy cmd.user.sakaiproject.user. Ở thư mục TOMCAT_HOME\components\sakai-provider-pack\WEB-INF Xóa components-demo.provider.hcmuaf.user.api. 127 .ExternalUserDirectoryProvider" init-method="init" destroy-method="destroy" singleton="true"> </bean> Khởi động Tomcat.UserDirectoryProvider" class="vn.user.edu.sakaiproject. dẫn đến thư mục của project providers.api. chạy lệnh mvn clean install sakai:deploy Cấu hình trong tomcat.sakaiproject.xml Bỏ comment và chỉnh sửa: <bean id="org.sakai.UserDirectoryProvider" class="org.xml Sửa trong components.