Vì vậy việc triển khai một giải pháp portal chokhoa Công nghệ thông tin và trường Đại học Nông Lâm, cùng với cơ chế đăng nhập một lần dé có thé tích hợp các dich vụ khác vào hệ thống là
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRUONG ĐẠI HỌC NONG LAM TP HCM
KHOA CÔNG NGHỆ THÔNG TIN
TÌM HIẾU VÀ TRIEN KHAI HỆ THONG SSO CHO CÔNG THÔNG TIN DỊCH VỤ - TÌM HIẾU HE THONG E-LEARNING
Ngành Niên khoáLớp
GVHD Sinh viên thực hiện
05130030 05130072 05130148 05130095
: Công nghệ thông tin : 2005 - 2009
: DHOSDTH: Thầy Lê Phi Hùng
Phạm Thị Ngọc Hơn Bùi Minh Phúc
Nguyễn Quốc TânPhạm Thị Mai Thu
TP.HO CHÍ MINH, tháng 9 năm 2009
Trang 2LOI CAM ON
Lời cảm on đầu tiên, chúng em xin kính gửi lòng biết on chân thành đến ông
bà, cha mẹ đã nuôi đưỡng và dạy bảo đề chúng em có ngày hôm nay
Xin cảm ơn quý Thay, Cô trường Dai 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 thay, thạc sĩ Lê Phi Hùng đã tận tình hướng dẫn chúng em trongsuố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 DHOSDT đã chia sẻ, giúp đỡ và động viênchú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
dé tài
Mặc dù chúng em đã có gắng hoàn thành đề tài này với tat cả nỗ lực, nhưngvẫ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ý Thay, 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ânPhạm Thị Mai Thu
Trang 3Open 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
Co Sở Dữ Liệu
Trang 4MỤC LỤC
NET HE shsbinnionkittrieiiiphtiitffbIEgiàGn80030100E00/003010/618009i1690/-RIHNISI91.HEMSHu/SĐNEHI0119010" 1TONG QUAN Qoceccsssessessssssessssssessessscssessussssssesssessessnsssessnsssessessuessessessscsssssessesseseseeseesees 7)(9)890)1€8: (000 cm 3Chương 1 Tìm hiểu Single Sign On -2-22©22+2E+2E£2EE+EE2E+zEEerEezrrerxee 31.1 Tổng quan về Single Sign On 22 57c 22 2cCCxerkrrerkerrerred 3Jaded Giñối tHIẾU sa kini gnynga 0 th 18g11 143 kg41630555B1483840343435V5LA3E386E5L4818/006315580810051988/538 31.1.2 Một số khái niệm -2+¿ 22++t2EExvtttEEktrrtrtrirrrtrirrrrrirrrrie 31Í ¿5 LOCH ccscnsssssunnenemmeenaaumaneencne nectar nee enema me 4 INE SN 40001000052 4 1/15 Các ð1ãi PHấP SIHD0 lẽ SIEH ( TlusassaasnnanaiiitiitgidtitidhiBE05355044GI8 NHAN “GỐH1853803880085 5 1.2 Open Single Sign On Enterprise eeeeseeceeeeeeseeeeseeseeeeeseeeeeeeeenes 5 L201 G01 CHIÊU:sxssspsnnneniiieteseiig11652191385115595950105EG003381895555433543358101585000481915E80 5 1.2.2 Các tính năng của OpenSSO Enterprise -5-cscscseeseesee 61.2.3 OpenSSO Enterprise làm việc như thé nào? ¿- ¿z2 61.2.4 Policy Agents sa sgk gen s2 0068u0nGE238gy885SN CV V4HiittrldtgdguiinaitdtaviissgicpsHEttixipsp4däinikiseia i 1.3 Central Authenticate Service (CAS) ccccccccccscccsscessecesscesseesseeeseeesaee 9 006.10 na ốc 9 1.32 Các phiến ban Cua CAS nan snongioistiBRGEGIRGHIEEESEEMEHBRISRIQERUASIESUHEESOIRSE 10 13.3 (CAS URIS zscsxcsssssngsezsreslszztnbigagilgpsdiidsoditSsióoy‹8M00588eb2tbiugrrlustagin0dđriilEiGs2.ngsâe 10 1.34 CAS Tit ssesssssasenveesevensunansanseavensessesnenmansansonemnmensesonnencunarnnecsceecens 121.3.5 Nguyên tắc hoạt động của CAS eceeccecseescessesssessesssessessesssessessneesesssenees 141,316 CAS (ATGHIIGGTHTE ncn casecmensem ncaa 161.4 Tich hop Liferay, Sakai, Ung dụng , CAS woe ecccccecsseesseeeteeeseeeeseeees 191.4.1 Cai đặt CAS S€TV€T - G00 Q01 2201000122231 111190 111g ng cư 201.42 Co rủ chế sắn thựơ ethan, CHẾ caedaaeseseeisisgE6ikSeso006806364838061606/602.008007 221.4.3 Triển khai Liferay với CAS cceccecsccccscsscssessessessessessessessessessessessessesseeees 241.4.4 Câu hình Sakai sử dụng CAS 2-2 ©s+EEeEEEEEEEEEEEEEEerkrrkerkerree 28
Trang 5Chương 2 Tìm hiểu Sakai LMS -2-©22©5++2E++EE++Ex++rxeerxesrrvee 332.ls - THỚI thiệt Sakal PIO) CCl sarcasnssa ccm mine men aaa 33
QQ, — TH ND ÌfỮynyoysbygttottsdoeofolfilUAABSiOESlhlufpBlSbidifogilaltlbgtkiaiauasdltnaedie 342.3 - Bộ công cụ dé day va hoc, quan ly điểm 86 ceeceeeccecsessecseceseseeseseeseeneeee 352.3.1 Syllabus — Dé cương bai giang .ceceeccesesseessesseessessessessesseessessesseesees 35
52321 Ehndbrtik:—› Bộ EG saccnuccansaccanasscsceareraaanannsnanenscncrmanneannsmainetnanssasn 362.3.5 ASSIPNMENt— Bal Tap sss scccomaweusmracsvaraneerersdvaenvarnears veneveadeesieeeunntianes 412.3.4 Tests and Quizzes — Kiém tra v cccceccsccsssssssesessesseessssessesseeseeseeseeaseneeavens 46
2.3.5 Presentation — Trình diễn slide bài gidng c.ccccsceccescssessestssesseeeeeees 502.4 Bộ công cu giao tiếp giữa giảng viên và sinh viên - 512.4.1 Announcement — Thông báo - c5 2c 2322332 E+25EEEEeseerrssrrske 51 DAD Schedule — LiCl CONG TAG, ssaccccssannscwanessamnantasnsactstn wonassunnscnwatauneannmamacis 52 2.5 Hiện thực Sakai Course Management System (Sakai-CM®S) 54 29:1 GIỚI thiệu Sakai GMS sccsssesecesseunvevenencenesessenconmrneacacenaveanseuaves 542.5.2 Mot số khái niệm trong Sakai CMS -c+ccccsssereereseres 542.5.3 Hiện thực Sakai CMS .- LG 1 122101201112 v1 g1 ng 1n rườy 56 Chuong 3 Giới thiệu Portal — Liferay oo eee ecceseeeeeeeeeeeeeeeeeeneeeeeneeeees 57 Bele — POTDI la BÌ2sesessnsnsdminidothhnddiiliiEAS61393860503393600083883ES095EĐTISMSE2SESSEBSXSE 57 3.2 Lot ich của Portal sccssessssesovsonesssonsnncssssvsnnsacenennscsssooeanscsasenensee 583.3 Giới thiệu về Lifkray -©-++22++22+22EEEEEEE2EEE2EE22E.ezx.errree 63
8 Dil (GLOW THỊ LE Ds cà sszguägt snst89628.08/8ngiinsdfgsbsifmeEtäifdbgi9 Peiteash 3øBsi23šegggEkiigsamuBsisgsrznEuil 63
3.3.2 Hướng dan Việt-hóa LIferay - ¿5 2252221222 3221231212122221 2x ce 64
3.3.3 Iao'theme:mới:chữ Litter ay ssa sssscsc6s26006 12665546031588685146504ã-880843ag034 16 2g433340 643.3.4 Chuyên I ứng dụng web thành portlet - - 2 s2 s£x+£+z£xzzxezxd 653.3.5 Quản lí nội dung với CÍMS 55 52222 + E+2EEsEEssEsererrrrrrrersee 68 Chương4 Xây dựng FIT Portal dựa trên Liferay Portal 70 4:1;] GIỚI PHIẾU: pnersssieavsstieogttoAOERGR-GLGSOIR4GSSGSSGAGSESDISSRESRĐSAIRĐT3EERLIRRRi4BiAi0i3808 704.1.2 Các vai trò (role), hệ thống người dùng sẵn có trong Liferay 704.1.3 Các role, hệ thống người dùng xây dựng thêm trong FIT portal 714.1.4 Đối tượng người dùng trong hệ thống FIT portal : - 71
Trang 64.1.5 Quy trình tao mẫu tin của hệ thong FIT portal -:- 744.1.6 Cài đặt các trang trong hệ thống . -2- 2 52+2z+£x+zzzz£xczxezrxee 754.1.57 Gach tao Website Gon VÌ cu ntesasstaanldsnnt0ivfciiiilloiOIPdSs6lslai tgsnuilitlsisettii 90 4.1.8 Danh Mile các WebsHe COD Visa nsaseisinoiaSiisE 1033 900305981836 60sasErrsssrarssl 93Chương 5 Kết quả đạt được và hướng phát triỂn - s2 se: 955.1 Ket quả dat ue c.ccccceccccccccsssessessessessessessessessessessessessessessessessessesseeseeses 95Sel oll Litera eco wenrmenmmancentonnnimennernseretenerntnenvenremirtameulvdnaiue mem, 95 DiL.2 Sala ssscsssessarmenenamenrasnsnsassnsmess annmnnenanmensasoenenmamnamrecnnns 95 5.1.3 Single Sign 9 955.2 _ Hướng phat trin ©++c+2EESEE2E12211211221211 21121 xe 95
HH TU cecoennaeinisareseasninsinsddinkingiondaostdiBiEganoditindianilpigharBgbbukii2abiuiihftEorionooroslersdieclsolikltsroi 1
A Một số so sánh giữa Moodle va Sakai .c.ccecceccsscssseseeseessessesesesessesesesseeees 1
B Hiện thực UserDirectoryProvider .ccccccecccscceesecesseeseceeseceseeeeeeceseeeseeeeeeenes 5
C Gardat UñE dune Đến HĐOÀÌ: sseesrnnatieoetirdrdiodtritiotHiEtOETRGAStUDPngVEBtiBoipstislsge 10
D Triển khai ứng dụng viết thêm cho Sakai 2-22 2 s22 +22 11
E Triển khai OpenSSO trên Tomcat Server .c.ccccccsscessesssessessesssesseeseessessessees 13
Trang 7tk 15 iiệuta liết:HỒI -eeeeervordietrtrirddgferdetdgioc9Erggigg0f 1.12 g-kgHgtagcgrmrrereru 26
Hình 16 Cấu hình người dùng - 2-22 +£2E++EE£EE22EE£EE2212211211221 21121121 xe 26Hinh 17 Mapping ngu0i oi: 00777 27Hình 18 Cấu hình nhóm người dùng - 2-2 + +EE+EE£EE£EE£EEeEEEEEerErrkerkerkerxee 27Hình 19 Cấu hình nhập/xuất người dùng - 2-2 + E£EE+£E£EE£EEtEEerEerkerxerxee 28Hình 20 - Cac nơi nghiên cứu và sử dung SakaI - 5 S5 se ++xsessersseesee 34 Hình 21- Quan hệ giữa các công cụ dạy và hỌcC + + s + ++s+svssereeersee 35Hình 22 — Số điểm - 222: 222 222211 22 E1 re 36Hình 23 - Sakai Gradebook - Quy định cách đánh giá môn học - 37 Hình 24 - Sakai Gradebook - Quy định cách đánh giá môn học (ft) - 38Hình 25 - Sakai Gradebook - Quy định hệ số điểm cho bài kiểm tra/bài tập 39
Hình 26 - Quy định hệ số điểm cho bài kiểm tra/bài tập (tt) - 2-5552 39Hình 27 - Quy định hệ số điểm cho bài kiểm tra/bài tập (f†) -:- 40Hình 28 - Sử dụng số điểm khi tạo bài tap - 2 +2S+2E+£EeEEeEEerkerkerkerxee 41
Hình 29 - Sử dụng số điểm khi tạo bài kiỂm tra - ¿+ t+E2xvEE2EEESEEsEzkrrsrrez 4IHình 30 - Xem danh sách bài tập - - -¿- + 2222 *32**+2E32E2EEEEerEsrrrerrrrrrrrrree 44Elfsh5T = mi NHGosaeenagiitodisuoicgiodtluotdnfox8gi030i82i02800381603:3038066.03gNgùgBnggisaapai 45Hình 32 - Xem danh sách bài tập theo sinh Vien 5 5555 £++£++£+veseeseeke 46 Hình 33 - Xem bài tập dưới góc nhìn của sinh viên - s5 5+5 s++s++sx+sssss2 46 Hình 34 - Sakai Test & Quizzes - Tạo ngân hang câu hỏi + ++5s<+<+2 48 Hình 35 - Sakai Test & Quizzes - Thêm câu hỏi - 5-5555 + ‡+<*++s++se<sess+ 48 Hih:36:- Soạn Tol đun cầu Hồi naseeosinestiituogtttiiiigponlbist4A4833E09AiA5E9888ag535B044898u888UBSi 49
Trang 8Hình 37 - Phan hồi đáp án cho sinh viên -2- 2 52+ +2 ++2E£+EE+£EzEEzrxezxezred 49Hinh 36.= Saka, PTGSGHID ssensas na BingitollEA Gidg À1 544101545181858068000558090104303883888S88012300 50Hình 39 - Lay sự kiện từ trang khác - 2-2 s+x+EE+EE£EEeEESEEEEEeEkerkerkerkerree 54Hình 40 - Mô hình miền Sakai CMS -2¿©2222+222+vvtvEEvvrrrrrrrrrrrrrerree 55Hine = Mo Hình Sip 6 sssecsssssssassnssnssnvnevennacsuannscsrcnmseansnusnnenaeesonna memennmnmaaennes 56 Hình 42 - Mô hình Large ©CfUTG - óc 1211311311 19115111 11 11111 111v vàn 56Hình 43 - Tao theme mới cho Liferay - Cấu trúc thư mục theme -s- 65
Hình 44 - Portlet Tìm kiếm nhanh thời khóa biểu .-6-5ccccceeierrke 67Hình 45 - Sơ đồ khái quát về hệ thống người dùng của WebSite 74
Hình 46 - Quy trình tạo mẫu tin của hệ thống FIT portal 2-2 s22 75Hình 47 - Cấu trúc trangg - 2 +++++EE+EE2EE£EEE2EE2E15711221271211221711211 21 cre 76Hinh 48 - Trang 0 77Hình 49 - Trang So đồ tỗ chức khoa Công Nghệ Thông Tin - 2: 5¿ 78Hình 50 - Trang Chương trình đào fạO - c2 22221322321 E2E2EEErsrrrrrrrrerske 79Hình 51 - Cấu trúc trang cho Sinh viên - 2-2 2 £2E£+EE+EE++EE+EEzEzrxrrxerred 79Hình 52 - Trang hiển thị danh sách sinh viên đại học - 2c s+cs+xezxczzzxez 80Hình 53 - Trang đoàn thỂ - ¿+ + +E£EE£EESEEEEEEEEEEEEEEEEEEE171121511221.12 1e X 81Tình: 54-— 'Trame Hồi Khi HE To neosantcbuoigicoggitstogetokinbbgidi024E001051a60018500103u4 00 82Hình 55 - Trang tim nhanh Thời khóa biểu 2-22 2 22222 +£E£+E++£xzzzezred 83Hình 56:- Trang No bien ett ssuzizssassisioggaesoondsitiBsyciiAisisiDRGAI480i80:GSEBIBBs8G2g514 030483038 83
Hình ấ7 = Tier NIÊN ỞƠN issn csenseeorenniennesavvesavaitvteananstomrientstontiounencemcinaviansanebocses 84
Hình 58 - Trang Sơ đỒ trate sess các 6 0011k th E4 th hán g0 01g Vy 59 0106230150016 6013161 14 0606 85
Tinh < Trang TN et gccrascsscrasnsmscsssrvmnssrasoseraicertsanncn aes demenneiocsosmanminaer 85Hình 60 - Trang thêm thời khóa biỀu 2- + 25s 5ESEEE£EE£EE£EEEEEeEEeEEerkerxerxee §6Hình:61 = Trang quản lý ĐÀI LỆ :sssssennnssiioisirii16251581113348585835595S8XGSSEEEH1S0143180483583303E 86 Bink: 62.= Trang quản lý hình: nh: cccsccsessssssisissensixotsS85 51008865 g805ng84 680 4538850001380á 86s618 s86 87Hình 63 - Cau trúc trang của các Website cá nhân của giảng viên 87Hinh 64 CONG CG ChO S408 VIỆT esceevsecexcsenesersnmeremeenemeamrenemnnncemennaneme 88Hình 65 - Cấu trúc trang của trường Dai Học Nông Lâm 2-2 252 89Hình 66 - Cách tao Website ơn VỊ - -c E222 1122111121111 2211112111182 1 18111 xee 90Hình 67 - Cấu trúc trang của Template For Web 2 2+22++++x+zz++£xczzzzred 91Hình 68 - Export một OrØaf1ZAfIOTIS - - + 113119119911 11 11 11v ng ng 92Hình 69 - Tạo mới 1 tổ chức ¿ ©++++2©++2£EE++ttEEEkxttEEEkrrtrirrrrirrriirrre 92Hình 70:- Danh Tin WebSite CUA KHÔI ss sisssscasssssssoreconsccvansseacsavveasevsasinverideencnsenasaeniis 93 Hình 71 - Danh mục Website của Phong Ban 25+ *+ssvrsrrrererersee 93 Hình 72= Danh me Website của Tritt LẪT sssesesssenssnoinnoaddiiilAEG00234611059888/00680 94Hình 73 - Hoạt động hàng tuần 2-2 2+SE+E+EE9EEEEEEEEEEEEE71211271222221 21 xe 3Hình 74 - Moodle - Các loại câu hỏi <2 2221322213322 Eesrreeerzeees 3
Trang 9Hình 76 - Thư mục sau khi cài đặt OpenSSO - - S2 St SS HH, 14 Hình 77 = Tạo Sef và 6†0ũp trong OPEMSSO sang nà go 11H là 0408 16 Hinh 78 - Thém User va Sroup 117 17 Hinh 79 00.190.15ii09i0i1 1n 18Hình 80 - Cấu hình FORM LOGIN trong OpenSSO -¿- 2¿+csz2cxzz 19
Hình 81 - Kiến trúc thư mục AgenIt - 2 + +£+S£+EE+2EE£EEtEE+£EEeEEzrkerxerrerred 20
Trang 10TÓM TẮT
Tên đề tài: Tim hiểu và triển khai hệ thống đăng nhập một lan cho cổng
thông tin dịch vụ Tìm hiểu, đánh giá và triển khai hệ thống học trực tuyển learning.
E-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
Tìm hiểu hệ thống học trực tuyến (E-learning) Sakai
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.
Xây dung portal cho khoa Công Nghệ Thông Tin — Dai Học Nông Lâmbằng Liferay portal két hop voi hé thong hoc trực tuyén Sakai, su dung coché Single Sign On
Két qua chu yéu da dat duoc:
Nam vững cơ chế hoạt động của 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 Hiện thực lại hệ thống CMS và viết tool cho Sakai
Nắm cơ chế hoạt động của OpenSSO và CAS Áp dụng trên các ứng dụngđưa vào Liferay.
Xây dựng hoàn tất công thông tin cho khoa Công Nghệ Thông Tin - Đại
Học Nông Lâm TPHCM, dựa trên công thông tin Liferay
Trang 11MỞ ĐẦU
Lý do chọn đề tài
Do một số hạn chế hiện tại của website Trường Đại học Nông Lâm TPHCM
nói chung và khoa CNTT nói riêng (giao diện, khả năng mở rộng và phát triển hệ
thống website này, việc tích hợp các dịch vụ của trường/khoa lên website ), nênchúng ta cần phát triển một hệ thống web có khả năng khắc phục những hạn chế này
Hiện nay công nghệ portal là một xu hướng dé phát triển những hệ thống web lớn,đòi hỏi sự tùy biến và mở rộng cao Vì vậy việc triển khai một giải pháp portal chokhoa Công nghệ thông tin và trường Đại học Nông Lâm, cùng với cơ chế đăng nhập
một lần dé có thé tích hợp các dich vụ khác vào hệ thống là một yêu cầu cần thiết
Do nhu cầu cần triển khai một hệ thống học trực tuyến cho khoa Công nghệ
thông tin trường Đại học Nông Lâm và có thể mở rộng cho toàn trường Vì vậy việctìm hiểu và triển khai thử nghiệm một hệ thống học trực tuyến là nhu cầu cần thiết.Mục đích
Xây dựng công thông tin cho khoa Công nghệ thông tin — trường Dai họcNông Lâm TPHCM.
Dựa trên cong thông tin này, nhóm sẽ tích hợp hệ thống học trực tuyến Sakai
và một số dịch vụ web khác, thông qua cơ chế đăng nhập một lần
Đôi tượng và phạm vỉ nghiên cứu
Đề tài nghiên cứu và triển khai công thông tin cho khoa Công nghệ thông tin
— trường Đại học Nông Lâm TPHCM dựa trên công thông tin Liferay, tích hợp hệ
thống học trực tuyến Sakai vào công thông tin này
Đưa ra một cách chung để có thé tích hợp một ứng dụng/dịch vụ web vào
cong thông tin này
Trang 12TỎNG QUAN
Tổng quan về Cong thông tin (Portal)
Ngày nay, giải pháp portal được phát triển rộng rãi trong các hệ thốngwebsite lớn, dần thay thế cho các công nghệ web truyền thống, do tính dễ quản lý,
dễ phát triển, bảo trì của nó Có rất nhiều giải pháp portal Java từ mã nguồn mởLiferay, uPortal, Stringbeans, cho đến những bản thương mại như eXo, IBMWebsphere, và cả trên các công nghệ khác như phpNuke, DotNetNuke
Tổng quan về Hệ thống học trực tuyến (E-learning)
E-Learning là sự hội tụ giữa hoc tập va các công nghệ Internet, giúp cho việcđào tạo đơn giản hơn về triển khai, tiết kiệm hơn về chỉ phí và giảm tối đa thời gian
đi lại Nghe được, thay được, cảm nhận được và thực hành được, E-Learning không
những đảm bảo đáp ứng yêu cầu truyền đạt kiến thức mà phương pháp đào tạo
truyền thống có thể mang lại mà còn nâng cao hiệu quả của công tac dao tạo, cụ thể
là hiệu quả của việc dạy và học Hiện nay trên thế giới cũng như ở Việt Nam, việc
áp dụng các hệ thông học trực tuyến đã khá pho biến Một số hệ thống có chất lượng
tốt từ mã nguồn mở, mà hai đại diện tiêu biểu là Moodle, Sakai, đến sản phầmthương mại như WebCT, Blackboard
Nhưng hiện nay, ở Việt Nam, hầu hết các hệ thống học trực tuyến đều chạyđộc lập, không được tích hợp vào hệ thống web của các tổ chức, học viện thông qua
cơ chế Đăng nhập một lần
Do tính mở, khả năng dễ phát triển và miễn phí của các hệ thống học trực
tuyến mã nguồn mở, nên Moodle và Sakai được sử dụng khá phổ biến ở Việt Nam
Do ưu thế về thời gian phát triển và đã có cộng đồng tại Việt Nam, nên Moodleđược triển khai phổ biến hơn Sakai
Trang 13NỘI DUNG BAO CÁO Chương 1 Tìm hiểu Single Sign On
1.1 Tổng quan về Single Sign On
1.1.1 Giới thiệu
Vần đề thường mắc phải của các kiến trúc bảo mật là phân tán và đòi hỏi tất cảcác thành phần của hệ thống phải triển khai các tính năng, các thuật toán bảo mật
Điều này làm cho mức độ bảo mật kém đi Đề hiện thực các kiến trúc này chúng ta
hoặc là phải tránh các kỹ thuật không cụ thể hoặc là phải hợp tác với kỹ thuật bảomật của hệ thống SSO phổ biến do nó có khả năng tạo ra cầu nối giữa các kỹ thuật.Giải pháp cho van dé bảo mật này là kiến trúc SSO
Ý tưởng cơ bản của kiến trúc SSO là chuyên các kỹ thuật bảo mật phức tạp sang
việc gọi dịch vụ SSO Từ đó giảm bớt lượng thành phần của hệ thống tham gia vàoviệc bảo mật Trong kiến trúc SSO, tất cả các thuật toán bảo mật đều đặt tập trungtại SSO server dé tập trung chứng thực tai một noi cho một domain SSO hướng đếntập trung việc chứng thực và việc đăng ký chỉ một lần cho một người dùng
Bản thân SSO Server có thề đảm bảo vai trò của một web service Các thành
phần bảo mật cho ra các tính năng bảo mật khác nhau như: authentication vàauthourization được bao bọc bởi SSO server.
1.1.2 Một số khái niệm
Single Sign On là gì?
Single Sign On là một giải pháp phần mềm nhằm hiện thực việc chứng thựctập trung dành cho các ứng dụng chạy trên các nền khác nhau
SSO là dịch vụ cần thiết và không thể thiếu cho các học viện, các trường đại
học lớn trong việc ứng dụng học trực tuyến hay việc dùng các các dịch vụ trực tuyến
trong tổ chức có liên kết với nhau
Web Single Sign On là một hình thức của SSO, nó được dùng trên các ứng dụng web.
Web Single Sign On
Web Single-Sign-On (SSO) là một dich vu chứng thực cho các ứng dụng webvận hành trên các platform khác nhau Mục dich của Web SSO là dang nhập một lần
Trang 14quen thuộc và nổi tiếng là Microsoft Passport (Windows Live ID), GoogleAuthentication, Yahoo Authentication.
1.1.3 Loi ich
Tránh việc nhớ nhiều thông tin đăng nhập (username & password) khi dùngnhiều dịch vụ, giảm lượng rủi ro khi phải lưu trữ các thong tin đăng nhập này
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 khi xãy ra sự
có hay khi người dùng yêu cau (identity user)
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
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ảomật trong ứng dụng của họ.
Khả năng đóng gói các cơ sở hạ tầng bảo mật bên dưới của SSO Server Việc
hiện thực, triển khai và bảo hành trở nên dễ hơn nhiều khi các thành phần phức hợptrong hệ thống phân tán không cần hiện thực lại tất cả các tính năng và kỹ thuật bảomật.
SSO làm tăng khả năng bảo mật toàn hệ thống khi credentials bảo mật không
cần phải chuyển đến nhiều nơi để chứng thực Chỉ tập trung duy nhất một điểmchứng thực trên SSO Server Ngoài ra giải pháp SSO cho phép hợp tác giữa các tổchức làm cho việc chứng thực có thể được hiện thực trên phạm vi rộng, vượt ra khỏi
domain bảo mật cu thể trong khi credentials bảo mật nằm bên trong domain bảo mật
này.
1.1.4 Nguyên lý hoạt động
Single Sign On
Bước 1: Bộ phận chứng thực gọi SSO Server và gửi yêu cầu authentication token’
Đề lấy được token, thành phần chứng thực phải cung cấp một credentials” đúng.Bước 2: SSO Server thực hiện kiểm tra credentials của người dùng thông qua cơ sở
bao mật bên dưới SSO phát ra ticket? cho ứng dung được goi
Bước 3: Ứng dụng nhận token, nó tiến hành kiểm tra token dé quyết định cho phéptruy cập hay không.
! Mỗi authentication token chi được tạo ra cho một domain Token chỉ chứa thông tin authentication của
người dùng.
? Giấy ủy nhiệm Các hình thức của credentials: chỉ chứa username/password hoặc chứa cretificate.
Trang 15Simple Authentication Service
Hình 1 Mô hình hoạt động chung của SSO
Web Single Sign On
Bước 1: Người dùng đăng nhập vào tai khoan tai URL của dich vu SSO Authentication Service Vi du: https://login.live.com, https://login.yahoo.comSau khi đăng nhập thành công tiến tới bước 2
Bước 2: Authentication Service sẽ thực hiện việc sinh ra Authentication Token Đây là một string chứa thông tin chứng thực (không chứa password) và thôngthường được mã hóa bằng DES hoặc RSA
Bước 3: Authentication Token sẽ được truyền tải trên http (không mã hóa SSL)
giữa ứng dụng web (partner) và Authentication Service Trên mỗi ứng dụng web
sẽ có một SSOAgent, có nhiệm vụ xử ly Authentication Token và kiểm tra việcchứng thực Trong quá trình này session cookie sẽ được tạo tại trình duyệt củangười dùng đăng nhập nếu SSOAgent kiểm tra Authentication Token thành công.Bước 4: [Sign Out]: Khi chứng thực tự động vào một partner, Authentication Service sẽ lưu lại thông tin partner này, khi người dùng click [Sign Out] thìAuthentication Service sẽ lần lượt Sign Out (xóa toàn bộ session cookie củapartners).
1.1.5 Cac giai phap Single Sign On
Open Single Sign-On (OpenSSO) hoạt đông dựa trên Token.
Central Authenticate Service (CAS) hoạt đông dựa trên Ticket.
JOSSO (Java Open Sigle Sign On), CoSign,
1.2 Open Single Sign On Enterprise
1.2.1 Giới thiệu
Khái niệm
Trang 16OpenSSO là một sản pham open source của SUN Nó là một sản phẩm đơn lẽ, kếthợp các tính năng của Sun Java System Access Manager, Sun Java System Fedearation Manager va Sun System SAML v2 Java Plugin.
Lich sir phat trién
— 2001 —iPlanet Directory Server Access Management Edition 5.0.
— 2005 — OpenSSO project được chú ý đến
— 2006 — OpenSSO công bồ source code
— 2007 — Sun Java System Access Manager 7.1 đưa ra ban “close source” cuốicung cho OpenSSO.
— 2008 — Sun OpenSSO Enterprise 8.0 ban open source dau tiên hỗ trợ day đủ cácchức năng cua OpenSSO.
Các phiên bản của OpenSSO
— OpenSSO Express: Được công bố vào 7/2008, cập nhật ba tháng một lần
— OpenSSO Enterprise: 9/2008 Sun phát triển bản Enterprise, 11/2008 ra bảnOpenSSO Enterprise 8.0, 12->15 tháng sẽ cho ra một phiên bản mới.
1.2.2 Các tính năng của OpenSSO Enterprise
Access Control
— Quản lý việc truy xuất vào tài nguyên của người dùng thông qua policy agent
Những chính sách bảo mật tài nguyên sẽ được thiết lặp trong policy agent vàngười dùng vào được tài nguyên hay không là căn cứ vào chính sách này.
Vi du: role: admin được phép truy xuất vào tài nguyên /app#1/*
— Policy agent chặn các request truy xuất vào tài nguyên được bảo vệ và truyền
đến OpenSSO đề xác thực request này
Federation Management
— Chức năng này cho phép single sign on nhiều tổ chức, hay nhiều domain
Web Service Sercurity
Indentity Web Service
1.2.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ệ, request cần được xác thực và
phải có đủ quyên truy cập Khi một người gởi Http request dé truy cập tài nguyênđược bảo vệ, policy agent chặn request này và kiểm tra Nếu OpenSSO token được
tìm thấy mà không hợp lệ, policy agent sẽ yêu cầu server tiến hành xác thực và cấpphép.
Trang 17@+ GET/login?goto=/app —G
@< - Authenticate - Oo
@—— §s0 Cookie GET /app
€—(includes SSO Cookie)—>@D
@t — Js the user authorized to access /app? —————-C)
<® Yes! >e©S
Populate Container
e Security Content ~}
© — Allow access to ‘app ~@
ow Fesponse from ‘app —————————>€®'
Hình 3 - Sơ đồ xác thực của OpenSSO
Trong OpenSSO, Policy agent là một thành phan quan trọng Nó có tác dụng chặn
và kiểm tra chứng thực cho các ứng dụng
1.2.4 Policy Agent
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, dé kiểm tra xem người dùng đã xác thực hay chưa
Trang 18truy cập vào ứng đụng
Web Application
7.OpenSSO gởi thông tin xác thực trong token
4 OpenSSO Active Login Session
ức =: “hôi din a OpenSSO=
Hình 4 - Sơ đồ hoạt động chung của J2EE Agent
1 Từ trình duyệt, người dùng kết nối đến ứng dụng web
2 Policy Agent sẽ kiểm tra token có tồn tại trong URL hay không? Nếu token
chưa tôn tai thi Policy Agent sẽ chuyển browser đến OpenSSO Server
3 OpenSSO Server xác thực người dùng thông qua login form Người dùng nhậpUsername / Password để xác thực
4 Opensso activate login session (tức là tạo ra session cho người dùng và kíchhoạt nó nếu xác thực thành công)
5 Opensso gởi token cho browser (browser sẽ lưu token dưới dạng cookie) vaBrowser sẽ gởi token đến cho Agent
6 Policy Agent sẽ lay thông tin token gởi đến OpenSSO server dé kiểm tra
7 OpenSSO sẽ gởi thông tin login (username, password) va thông tinauthorization (role) dén Agent néu kiém tra token hop lệ
8 Policy Agent cho phép truy cập ứng dụng hay không và ghi thông tin session trên URL.
Trang 19access resource
Yes
Is filter mode set to NONE?
Yes
Is resource on the not enforced list?
Authenticate user with Authentication Service
Validate SSO token with Session Service
Yes 1s the filter mode
set to “J2EE Only”
or “All” 2
1s the filter mode
set to “URL POLICYZ
or “All” 2
Is Authorized
by J2EE security model 2
>4
Log (audit log) resource allow message
|Obtain user policy decission >
from Policy Service
Log (audit log) resource deny message
End
Hình 5 - Sơ đồ hoạt động chỉ tiết với policy
1.3 Central Authenticate Service (CAS)
1.3.1 CAS là gi?
Là một giải pháp Single Sign On, mã nguồn mở được phat triển bởi dai hocYale ỗ trợ nhiều thư viện phía client được viết bởi nhiều ngôn ngữ: PHP, Java,PL/SQL,
CAS lay thông tin Single Sign On thông qua cookie Cookie này sẽ bị hủy khiuser đăng xuất khỏi CAS hoặc đóng trình duyệt Cookie được sinh ra bởi CAS, 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 Thời gian hết han là 8 giờ
CAS cung cấp nhiều trình quản lý xác thực (authenticate handler) khác nhau
CAS xác thực nhiều loại thông tin người dùng như username/password, X509
Trang 20Certificate, dé xác thực những thông tin người dùng khác nhau này, CAS sử dụngnhững trình quản lý xác thực tương ứng.
CAS còn cung cấp tính năng “Remember Me” Developer có thể cấu hình
tính năng này trong nhiều file cấu hình khác nhau và khi người dùng chọn
“Remember me” trên khung đăng nhập, thì thông tin đăng nhập sẽ được ghi nhớ vớithờ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 dé service url tương ứng mà không cần hiển thị khung đăng nhập
1.3.2 Các phiên bản của CAS
CAS 1.0
— Được tạo bởi Yale University, khởi đầu từ năm 1999,
— Là một Web Single Sign On, dễ sử dụng
CAS 2.0
— Cũng được tạo ra bởi Yale University.
— Giới thiệu thêm tính năng mới là Proxy Authentication.
JA-SIG CAS 3.0
— Trở thành JA-SIG project vào 2004.
— Mục đích là làm cho CAS tương thích cao hơn, mềm dẻo hơn
— 100% tương thích với CAS 2.0
1.3.3 CAS URIs
CAS thực hiện Single Sign On thông qua những URI va sinh ra những ticket khác nhau CAS sẽ sử dụng những URI sau:
— /logout
o Hủy Single Sign On session và ticket granting cookie
o Hién thi một trang trang thái dé báo với user đã đăng xuất
Tham số “url” có thé được chi định đến /logout và nếu được chỉ định,
“url” sẽ được hién thị trong trang logout cùng với thông báo đăng xuất
“ 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
= Ptgurl — url cua proxy callback
— /serviceValidate sé trả về một xml-formatted response Khi thành công, response
Trang 21với thông điệp thất bại tương ứng Sau đây là một số mã lỗi được trả về responsenếu /serviceValidate thất bại.
©
©
INVALID_REQUEST: Không tìm thấy tham số cần tìm trong request
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
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
INTERNAL ERROR: Lỗi cục bộ xuất hiện trong khi kiểm tra tinh hợp lệcủa ticket.
— /proxyValidate làm việc giống như /serviceValidate, ngoại trừ nó làm cho proxy
ticket có hiệu lực Những tham số và mã lỗi giống tương tự Khi thành công,respone chứa PGT và danh sách các proxy cá mà việc xác thực được thực thi.Những proxy được viếng thăm gần nhất sẽ nằm trên đỉnh, và ngược lại
— /proxy
/proxyValidate hoặc /serviceValidateNhững tham số sau được yêu cầu cho /proxy URI
= Pgt— proxy granting ticket
= TargetService — service identifier cua back-end service Serviceidentifier phải khớp với service identifier được chỉ định đến/proxyValidate nhờ vào sự hợp lệ của proxy ticket.
/proxy sẽ trả về xml-formatted service response Thành công, response sẽchứa đựng proxy ticket Thất bại, response chứa đựng mã lỗi với thôngđiệp tương ứng Các mã lỗi sẽ được trả về trong /proxy:INVALID_REQUEST, BAD PGT, INTERNAL ERROR BAD PGT có nghĩa là pgt không hợp lệ.
/logout Huy Single Sign On session va ticket granting cookie
/validate Kiểm tra tính hợp lệ của Service Ticket Nếu nó
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
Trang 22được yêu câu/proxyValidate Thực thi giống như /serviceValidate và ngoài ra còn
kiểm tra tính hợp của proxy ticket
/proxy Cung cấp Proxy Ticket đến service
/samlValidate
sách Registered Services.
/services/edit.html Chỉnh sửa những service da dang ký
/services/manage.html Quản ly những service đã dang ký như: thêm, xóa,
Ticket don giản là một chuỗi ky tự ngẫu nhiên va bat đầu với một tiền tố như
Trong quá trình xác thực của CAS, một số ticket được tạo ra với mục đích lưu trữthông tin va bảo mật Sau đây là khái niệm một số ticket được sử dụng trong CAS.Ticket-Granting Ticket (TGT).
— Là một chuỗi ký tự chứa dit liệu bảo mật ngẫu nhiên và bat đầu bang “TGT”,
chứa id duy nhất và thời gian hết hạn
— TT được tao ra CAS Server xác thực thành công.
— Không có TGT, user cua CAS không thé Single Sign On
— TGT sẽ được thêm vào HTTP Cookie (cở sở dé Single Sign On) và nó sẽ được
kiểm tra khi truy cập ứng dụng
Vi dụ: TGT sẽ được lưu xuống browser là TGC (Ticket Granting Cookie) là mộtHTTP Cookie của CAS Cookie này duy trì trạng thai đăng nhập cho client Khiclient chuyển đến các ứng dụng khác, cookie nay sẽ được kiểm tra dé tự độngđăng nhập cho user TGC sẽ bị hủy khi đóng trình duyệt hay client chọn logout
từ ứng dụng Giá trị của TGC bat đầu bằng “TGC-“
Trang 23Service Ticket (ST).
— 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.
Vi dụ: https://server/CAS/login?service=http%3A%2F%2Fwww.service.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
— ST là một chuỗi ký tự, được sử dụng bởi client như là thông tin xác thực dé truy
cap dén dich vu
— Service ticket phải bắt đầu với ky tự “ST-*
Vi du: ticket=ST-1856339-aASYuvrxzpv8TaulcYQ7
Proxy Ticket (PT).
— 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 Proxy Ticket (PT) được sinh ra từ CAS nhờ vào một service théhiện cua một Proxy Granting Ticket hợp lệ và một service identifier (giá trị củatham số “url” của /proxy url) cho back-end service đến cái nó kết nối
— Proxy Ticket là một chuỗi ký tự ngẫu nhiên mà một service sử dụng như thôngtin đăng nhập dé truy cập vào một back-end service thay mat cho client
— Proxy ticket chi hợp lệ cho service identifier được chỉ định đến /proxy url khichúng được sinh ra.
— Proxy ticket bắt đầu bang “PT”
Proxy-Granting Ticket (PGT).
— PGT được lấy từ CAS nhờ vào sự hợp lệ của service ticket hoặc proxy ticket
Nếu một service mong muốn proxy xác thực client đến một back-end service, nóyêu cầu một proxy-granting ticket
Proxy-Granting Ticket IOU.
Trên một ticket hợp lệ, một service có thể yêu cầu một proxy ticket Trong
CAS 2.0, cách chúng ta xác thực service được yêu cầu dé gởi PGT, PGTIOU đếnproxy callback url được chỉ định như một request parameter Proxy callback url phảichạy thông qua kênh bảo mật Chúng ta xác minh certificate của nó Sau đó, trả vềtrong ticket hợp lệ, phản hồi TGTIOU Từ response này, service sẽ rút TGTIOU và
sử dụng nó dé tìm TGT từ bộ nhớ
Login Ticket.
— Là một chuỗi ký tự, được sinh ra bởi /login, là một thông tin đăng nhập và được
đưa đến /login
Trang 24— Mục đích là ngăn can sử phản hồi lại thông tin xác thực.
— Login ticket được sinh ra bởi /login, phải là duy nhất và bắt đầu với “LT-”
1.3.5 Nguyên tắc hoạt động của CAS
Chứng thực người dùng với CAS server
TGT (Ticket-Granting Ticket): là chuỗi ký
tự chứa dữ liệu bảo mật (id, expired time).
Cơ sở đề Single Sign On
Người dùng gởi request đến CAS (II Server
`
<
CAS gởi thẻ TGT đến Browser —
Browser nêu xác thực thành công CAS Server
Chứng thực người đùng với CAS Server
Hình 6 Chứng thực người dùng với CAS Server
— Người dùng nhâp Userld / Password vào login form Các thông tin nay đượctruyền cho CAS server thông qua giao thức HTTPS là một giao thức bảo đảm dữliệu được mã hóa trước truyền đi
— Xác thực thành công, TGC được sinh ra và thêm vào trình duyệt dưới hình thức
là cookie.TGC này sẽ được sử dụng để single sign on với tất cả các ứng dụngTruy cập vào ứng dụng
— Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS server.
©
oO
Người dùng truy xuất ứng dụng thông qua trình duyệt
Ứng dụng lấy TGC từ trình duyệt và chuyền nó cho CAS server thông quagiao thức HTTPS.
Nếu TGC này là hợp lệ, CAS server trả về một Service Ticket cho trình
duyệt, trình duyệt truyền ST vừa nhận cho ứng dụng
Ứng dung sử dung ST nhận được từ trình duyệt và sau đó chuyên nó choCAS server.
CAS server sẽ trả về ID của người dùng cho ứng dụng, mục đích là đểthông báo với ứng dụng người dùng này đã được chứng thực bởi CAS
server.
Trang 25Hình 7 - 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.
©)
Oo
Người dùng truy xuất ứng dung thông qua trình duyệt
Vì chưa nhận được TGC nên ứng dụng sẽ chuyên hướng người dùng choCAS server.
Người dùng cung cấp Userld / Password của mình thông qua Login Form
để CAS xác thực Thông tin được truyền đi thông qua giao thức HTTPS
Xác thực thành công, CAS server sẽ trả về cho trình duyệt đồng thời TGC
Trang 26sy tec | [ ST để,
KS
3 CAS server 4.CAS server ©
hiển thi form trả về TEC và s8
Trang 27Is TGT Cookie ist?
Yes
is TG cookie expired
Display login form and get
credentials from user
Get the supported Authentication
G Generate TT Add TỐT to cookie
Redirect user to login url
with authentication failure
Redirect to Call back
URL (Service Identifier)
Hình 9 - CAS — Login Flow
- Ngudi dùng có thé truy xuất thông qua nhiều URI khác nhau URI chủ yếu là/login Khi người dùng nhập dia chỉ http://server/CAS/login từ trình duyệt,CAS sẽ kiểm tra Ticket granting cookie (TGC) đã tồn tại chưa Nếu TGC đãtồn tại, 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 Néu TGC không ton tại hay đã hết hạnthì CAS sẽ buộc người dùng nhập thông tin đăng nhập vào khung đăng nhập.
Trang 28- _ Người dùng nhập thông tin đăng nhập va chọn Submit, CAS sẽ lay danh sáchAuthenticationHanders từ deployerConfigContext.xml và kiểm tra xem nó hỗtrợ AuthenticatonHander nào Nó sẽ đưa thông tin đăng nhập choAuthenticationHander mà nó hỗ trợ và kiểm tra thông tin đăng nhập của
người dùng 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ếu người dùng hợp lệ thì một granting Ticket (TGT) sẽ được sinh ra và thêm vào cookie.
Ticket CAS tạo ra một Service Ticket (ST) và thêm Service Ticket nay dén Ticket
Registry CAS kiểm tra có hay không service parameter thông qua /loginURL.
Vi du: https://server/CAS/login?service=http://www.findtechies.com/auth.jsp
- CAS gọi Service Identifier với ticket là tham số, giá trị là service ticket (st)
Cac client có trách nhiệm gọi /serviceValidate URI cua CAS dé kiém traservice va service ticket /service Validate sẽ được gọi bởi filter cua client Service param name: service
Service Identifier value: https://www.servertechies.com/auth.jsp
Ticket param name: ticket
Service Ticket value: ST-1856339-aA5 Yuvrxzpv8TaulcYQ7
Proxy param name: pgtUrl
Proxy-granting Url value: https://server/test.jsp
Proxy Flow
URI called
- iproxy
Is pgt available in request parameter
Send Error Message
Send Error
Is target servide
Message by
available in request parameter?
Generate proxy ticket
Hình 10 - CAS — Proxy Flow
Logout Flow
Trang 29Destroy TGT cookie
Is “url" passed as Yes
parameter to logout URI?
Redirect to logout screen with
Redirect to logout screen with the successful logout message successtul logout message and with a link to the url
parameter value.
* Š
Hình 11 - CAS — Logout Flow
Khi người dùng muốn đăng xuất khỏi một service, người dùng phải gọilogout URI CAS sẽ hủy Ticket-Granting Cookie và kiểm tra /logout URI có chứaparameter url hay không Nếu parameter “url” có giá trị, 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, ngược lại thì chỉ có thông báo đăng xuất thành công.
Hạn chê
- CAS chỉ giải quyết authenticate, không authorization
- - Không Single Sign-Off.
- _ Ít tài liệu tham khảo
1.4 Tích hop Liferay, Sakai, Ứng dụng , CAS
Sau đây là mô hình triển khai, tích hợp sakai, liferay, ứng dụng với CAS Server
Trang 30Liferay Portal(Hồ trợ CAS)
lệ AS) (Ho tro CAS)
Hinh 12 Tich hop Liferay, Sakai, Web app vao CAS
1.4.1 Cai dat CAS Server
Trién khai CAS trén Tomcat Server CAS str dung kénh bao mat SSL cho nén can
phai cau hinh Tomcat dé hé tro SSL
Trang 311.4.1.1 Sử dụng keytool dé self-sign một certificate
Lam theo các bước sau Chạy cmd as Administrator và chuyền đến thư mục bin củaJDK_Home
vines keystor e
Entet keystore password: changeit
What is your first and last name?
[Unknown]: nonglam.cntt.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?
Is CN=localhost, OU=Information Systems, O=Pacific Disaster Center, L=Kihei, ST=HI, C=US
correct? [no]: yes
/xuất ra file certificate
C:\Program Files\Java\jdk1.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.0\bin>keytool import file server keypass changeit
-keystore \jre\lib\security\cacerts
Enter keystore password: changeit
Owner: CN=localhost, OU=Information Systems, O=Pacific Disaster Center, L=Kihei, ST=HI,
1.4.1.2 Cấu hình tomcat server.xml
Mở file serverxml trong thư mục %TOMCAT HOME%/config/
Bo comment element “connector” cho cổng 8843 (SSL)Thêm vào những parameter cho keystore file, keystore pass, trustore file va SSLEnable = true
Trang 32<! Define a SSL HTTP/1.1 Connector on port 8443 >
<Connector port="8443" maxHttpHeaderSize="8 192" SSLEnabled=”true”
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
1.4.2 Các cơ chế xác thực của CAS
Sau khi chon web container dé triển khai CAS server, tiếp theo cấu hình cách xácthực cho CAS Có rất nhiều cơ chế xác thực mà CAS hỗ trợ:
Trong phan này, tôi chon hai cơ chế xác thực cho CAS: LDAP va JDBC Những
cơ chế con lại chúng ta có thé tham khảo trong website của CAS
1.4.2.1 Cấu hình CAS Server xác thực thông qua LDAP
Sau khi tải CasServer về, bung ra một thự mục cas-server-3.3.2 Làm theo cácbước sau:
- Mở tệp tin pom.xml trong %CAS_HOME%/cas-server-webapp và thêm nội dung sau:
cas_home/cas-o Trcas_home/cas-ong the <beans> </beans> thay thé
AuthenticatedLdapContextSource bang nội dung như sau:
Trang 33<property name="userDn" value="cn=Directory Manager"/>
<property name="password" value="123456"/>
<property name="httpClient" ref="httpClient" />
</bean>
<bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler" >
<property name="filter" value="uid=%ou" />
<property name="searchBase" value="ou=cntt,o=nonglam,dc=com" />
<property name="contextSource" ref="contextSource" />
Chay tomcat server va chay https://nonglam.cntt.com:8443/cas/login
1.4.2.2 Cấu hình CAS Server xác thực thông qua JDBC
- Mở tệp tin pom.xml trong %CAS HOME%/cas-server-webapp và thêm nội dung sau:
Trang 34- Chép jdbc driver vào /WEB-INE/Hb cua cas application Trong tệp tin deployerConfigContext.xml, thêm nội dung sau bên trong thẻ <property name="authenticationHandlers">
<property name="authenticationHandlers">
<list>
<bean class= "org.jasig.cas.adaptors.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.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler ">
<property name= "dataSource" ref="dataSource" />
<property name= "sql" value= "select [password] from [user] where lower(username) = lower(?)" />
</bean>
</list>
</property>
- Dinh nghĩa datasoure dé kết nối CSDL, chỉ đến
<! Data source definition >
<bean id="dataSource" class="org.apache.commons.dbep.BasicDataSource">
- Buid CAS với lệnh : ‘mvn package install’
1.4.3 Trién khai Liferay voi CAS
Khi cau hình liferay sử dụng CAS với mục dich là single sign on với nhữngứng dụng khác Thông thường, để lưu trữ thông tin người dùng thì LDAP là lựa
chọn tốt nhất Vì thế, khi triển khai, ta phải cấu hình liferay cho cas và ldap
1.4.3.1 Liferay và CAS
Trước hết, tạo và import certificate vào jre của liferay Fitler server.crt đã tồn
tại khi cài đặt cas server Chỉ cần import nó vào keystore cacerts của jre liferay
Trang 35/xudt ra file certificate (nếu chưa có)
C:\Program Files\Java\jdk1.6.0\bin>keytool -export -alias tomcat -keypass changeit -file
server.crt
Enter keystore password: changeit
Certificate stored in file <server>
//self-sign
C:\Program Files\Java\jdk1.6.0\bin>keytool import file server.crt keypass changeit
-keystore \liferay-portal\tomcat-6.0.18\jre\win\lib\security\cacerts (path của cacerts cua
liferay)
Enter keystore password: changeit
Owner: CN=localhost, OU=Information Systems, O=Pacific Disaster Center, L=Kihei,
Login URL https://nongiam_cntt.com:8443/cas/login Logout URL
https://nongiam.cntt_com:8443/cas/logout?uri=nttp://nongiam_cntt.com:1€
Server Name nongiam.cntt.com:s080 Service URL
http://nonglam.cntt_.com:18080/c/portaviogin Validate URL
1.4.3.2 Liferay va LDAP
Dữ liệu sé import vào liferay tir ldap Cho tag LDAP và cấu hình các mục sau:
Trang 36- Authentication:
Authentication
| cenerat | LDAP CAS NTLM OpenD Open SSO SiteMinder
Enabled C2 Required [ZI
Principat cn=Directory Manager Credentiais
Test LDAP Connection
Hình 15 Kiểm tra kết nối
Password userPassword Email Address mou
Hình 16 Cấu hình người dùng
- User mapping: điền đầy đủ thông tin các thuộc tính tên trong ldap, thông tinnày map các giá tri tuong ứng trong ldap với các trường trong liferay
Trang 37Screen Name uid
Password userPassword Email Address mail
Group Name
cn
Description
description User
Trang 38ImportEnabiea 'ÝÌ Import on Startup Enabied “!
Import Interval 5Minutes [~]
ExportEnabled !
Users DN ou=persons,ou=cntt,o=nonglam,dc=com User Default Object Classes
top,person,inetOrgPerson,organizationalPerson Groups DN
ou=groups,ou=cntt,o=nonglam,dc=com
Hình 19 Cấu hình nhập/xuất người dùng
1.4.4 Câu hình Sakai sử dụng CAS
1.4.4.1 Cấu hinh file web.xml của login-tool
Server name va port của ứng dụng.
<param-name>edu.yale.its.tp.cas.client filter wrapRequest</param-name>
- Thém filter-mapping cho sakai request
Trang 391.4.4.2 Cau hình file pom.xml của login-tool
Sửa file $SAKAI SRC/login/login-tool/tool/pom.xml (cho sakai 2.5) Thêm vàocasclient (Khi build maven sẽ tải casclient về)
1.4.4.3 Chỉnh sửa file sakai.properties
Chúng ta cần login/logout thông qua CAS, thì phải bỏ đi username/password ở phíatrên của sakal login và cho phép container quản lý login thông qua CAS
# Remove the username/password boxes at the top by setting this to false top.login = false
# Let the container handle logins - ie to use single sign-on.
container.login = true
# Force logouts via CAS also - your requirements will be different for this.
# The URL below allows us to logout via CAS and then be redirected back to our Sakai server.
loggedOutUrl=https://localhost:8443/cas/logout?url=http://localhost:8080/
1.4.4.4 Rebuild login project, va Test
- Build lai login project:chuyén đến login-project va run command: “mynpackage install”
- Restart server va chay sakai home page: http://host:port/portal
- Click link login , hệ thống sé redirect đến login page của CAS và ban đăngnhap.
1.4.5 Triển khai ứng dung với CAS
Dé ứng dung, giao tiếp được với CAS Server thì ứng dụng phải có thư viện
CAS Client dé giao tiếp với CAS Server Phải thực theo từng bước sau:
- Cai dat cas client cho ứng dụng
Trang 40- _ Sử dụng một giải pháp bao mật ứng dụng có hỗ trợ cơ chế xác thực CAS,
có thể chọn một trong các giải pháp sau:
o Security Filter
o Acegi Security
o Spring Security
1.4.5.1 Cai dat CAS Client cho tng dung
Download Cas client file (casclient-2.1.1 jar):
http://www ibiblio.org/maven/cas/jars
Chép tệp tin jar này vào thư mục lib ( /WEB-INF/lib) của ứng dụng.
Chú ý: đối với tomcat6 phải chép tệp tin commons-logging-1.0.4.jar vào thư
mục lib của tomcat (lấy từ /CAS-Home/module của CAS Server)
Dé CAS hiểu được ứng dụng, thi trong file web.xml phải thêm filter của CASClient vào:
<param-name>edu yale its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https:// nonglam.cntt.com:8443/cas/service Validate</param-value>
1.4.5.2 Cai dat Secruity Filter cho ứng dụng
Mặt định Security Filter chỉ hỗ trợ hai cơ chế xác thực cở ban là : FORM vàBASIC Để Security Filter hiểu được CAS thi chúng ta chỉnh sửa lại sorucecode Bởi vì, khung đăng nhập của ứng dụng sẽ không sử dụng và thay vào
đó là CAS FORM Login.
Chép những tệp tin jar trong lib cua security filter :