Việc mỗi tổ chức sở hữu và vận hành nhiều website ngày càng phổ biến trên thế giới. Tuy nhiên, nó thường dẫn đến vấn đề một người dùng cần phải ghi nhớ nhiều tài khoản đăng nhập và mật khẩu để đăng nhập vào các website khác nhau của cùng một tổ chức do cơ sở dữ liệu tồn tại độc lập với nhau.
Nguyễn Trần Quốc Vinh Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ 122(08): 27 - 33 NGHIÊN CỨU DỊCH VỤ WEB ĐỂ XÂY DỰNG HỆ THỐNG ĐĂNG NHẬP MỘT LẦN Nguyễn Trần Quốc Vinh1*, Nguyễn Văn Vương2 Trường Đại học Sư phạm, Đại học Đà Nẵng 2Trường Đại học Kinh tế, Đại học Đà Nẵng TÓM TẮT Việc tổ chức sở hữu vận hành nhiều website ngày phổ biến giới Tuy nhiên, thường dẫn đến vấn đề người dùng cần phải ghi nhớ nhiều tài khoản đăng nhập mật để đăng nhập vào website khác tổ chức sở liệu tồn độc lập với Từ đó, vấn đề đăng nhập lần cho website tổ chức yêu cầu phổ biến Tác giả nghiên cứu xây dựng giải pháp xây dựng hệ thống đăng nhập lần hoàn toàn mới, cung cấp dịch vụ xác thực người dùng dựa sở liệu người dùng tập trung Hệ thống xây dựng dựa việc khai thác tính độc lập tảng dịch vụ web, khả chia sẻ cookie trình duyệt ứng dụng web Nghiên cứu tiến hành triển khai ứng dụng thử nghiệm hệ thống xây dựng Từ khóa: Xác thực người dùng; đăng nhập lần; website; cookie; dịch vụ web ĐẶT VẤN ĐỀ* Ngày nay, việc sở hữu vận hành nhiều ứng dụng web trở nên phổ biến, đặc biệt tổ chức lớn Các ứng dụng hoạt động độc lập với nhau, phát triển tảng khác Người dùng phải thực đăng ký thông tin đăng nhập lại chuyển sang sử dụng ứng dụng khác Tổ chức nhiều ứng dụng, người dùng phải nhớ lượng lớn tên đăng nhập mật khác Công việc chiếm khoản thời gian lớn người dùng, làm giảm hiệu suất phục vụ toàn hệ thống Các nhà phát triển phải giải hàng loạt vấn đề liên quan đến quản lý sở liệu người dùng bảo mật hệ thống khác Để giảm bớt thao tác người dùng, tăng tính chuyên nghiệp cho hệ thống, xây dựng hệ thống đăng nhập lần (ĐNML, Single Sign On – SSO) đánh giá giải pháp tốt Đăng nhập lần trình xác thực phiên làm việc người dùng, cho phép sử dụng tên đăng nhập mật để truy cập vào nhiều ứng dụng [1] Sau xác thực, người dùng truy cập ứng * Tel: 0914 780898, Email: ntquocvinh@gmail.com dụng khác mà đăng nhập lại, quyền trao thông tin người dùng lưu giữ suốt phiên làm việc Như vậy, hệ thống ĐNML vừa đảm bảo tính thuận tiện vừa tăng độ bảo mật sử dụng Hơn nữa, việc quản lý tài khoản tập trung làm cho nhà quản trị chuyên tâm vào phát triển ứng dụng, công việc bảo mật hệ thống ĐNML đảm nhận Đối với người dùng, họ cần tài khoản cho tất ứng dụng Tuy nhiên, hệ thống ĐNML gặp phải vấn đề chế bảo mật độc lập với ứng dụng, hoạt động kiến trúc riêng biệt [2] Điều đặt vấn đề ứng dụng phải hiểu chấp nhận thông tin xác thực ĐNML cung cấp Đồng thời phải kiểm tra tính xác thơng tin xác thực CÁC HỆ THỐNG ĐNML TRÊN THẾ GIỚI Trên giới, có nhiều giải pháp ĐNML với nhiều phiên miễn phí thương mại Nổi bật hệ thống Central Authentication Service (CAS) Oracle Enterprise Single Sign-on (Oracle ESSO) Hệ thống CAS có đặc thù mã nguồn mở nên cung cấp khả mở rộng cho nhà phát triển cộng đồng không ngừng bổ sung tính CAS client hỗ trợ 27 Nguyễn Trần Quốc Vinh Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ ứng dụng phát triển nhiều ngôn ngữ PHP, Java, NET Tuy nhiên, tất ứng dụng phải phát triển ngôn ngữ chung nhất, hạn chế lớn hệ thống CAS Khi người dùng chưa đăng nhập, i) ứng dụng yêu cầu CAS xác thực tài khoản người dùng cung cấp; ii) sau xác thực thành cơng, CAS trả cho trình duyệt chuỗi ký tự ngẫu nhiên chứa liệu bảo mật bắt đầu tiền tố định gọi vé (Ticket) Mỗi vé có ý nghĩa riêng, CAS sử dụng vé ủy quyền (Ticket-Granting Ticket - TGT) làm sở cho CAS thực ĐNML Ngoài ra, CAS sử dụng vé dịch vụ (Service Ticket - ST) tạo cho ứng dụng Vé dịch vụ dùng lần phiên làm việc người dùng; iii) ứng dụng gửi vé dịch vụ cho CAS để nhận mã người dùng tự động tạo phiên làm việc cho người dùng [3] Trường hợp người dùng truy cập vào ứng dụng CAS xác thực, i) ứng dụng gửi vé ủy quyền lấy từ trình duyệt cho CAS để xác thực; ii) xác thực thành công, CAS gửi cho ứng dụng vé dịch vụ; iii) ứng dụng gửi vé dịch vụ cho CAS để lấy thông tin mã người dùng tự động tạo phiên làm việc cho người dùng [3] Tất xử lý thông qua liên kết (URL) trao đổi ứng dụng web máy chủ CAS Khác với hệ thống CAS, hệ thống Oracle ESSO thương mại Oracle phát triển Hệ thống giải pháp trọn gói cho việc xác thực quản lý người dùng tất ứng dụng Oracle cung cấp Tuy nhiên, việc triển khai hệ thống không đơn giản, tác động lớn đến hệ thống sử dụng phải thay đổi phương thức truy cập hệ thống [4] Bên cạnh đó, kinh phí để triển khai hệ thống lớn, phù hợp với số doanh nghiệp sẵn sàng chi số tiền lớn để triển khai Oracle ESSO có chế xác thực phức tạp, dựa công nghệ quản lý đăng nhập (Logon Manager), khôi phục mật 28 122(08): 27 - 33 (Password Reset), quản lý khởi tạo xác thực người dùng tự động tạo “chữ ký tắt” người dùng (Kiosk Manager), quản lý xác thực (Authentication Manager), công cụ dành cho quản trị viên (Provisioning Gateway) Oracle ESSO không cung cấp xác thực lần cho ứng dụng web mà cho loại ứng dụng khác [5] Tại Việt Nam, nhu cầu việc triển khai hệ thống quản lý ĐNML ngày trở nên cấp thiết triển khai ứng dụng nhiều nơi, chủ yếu dựa hệ thống có sẵn Chẳng hạn, Đại học Đà Nẵng xây dựng triển khai hệ thống quản lý đăng nhập tập trung, cơng bố cơng trình [6] Tuy nhiên, cơng trình chủ yếu tập trung giới thiệu tổng quan ĐNML, giới thiệu mơ hình hệ thống tổng quan kết triển khai ứng dụng, chưa công nghệ ứng dụng cách thức ứng dụng công nghệ, kỹ thuật khác để xây dựng hệ thống ngồi thơng tin giao thức LDAP Nghiên cứu rõ kiến trúc hệ thống, cụ thể cách thức ứng dụng công nghệ dịch vụ web [7, 8] với kỹ thuật chia sẻ cookie ứng dụng web để xây dựng hệ thống ĐNML Việc phân chia rõ ràng quản lý xác thực quản lý phân quyền yêu cầu phổ biến, nghiên cứu quan đến khía cạnh quản lý xác thực người dùng XÂY DỰNG HỆ THỐNG ĐNML Các công nghệ sử dụng Dịch vụ web Dịch vụ web (web service) tập chuẩn đặc tả mở rộng khả chuẩn có sẵn XML, URL HTTP nhằm cung cấp chuẩn truyền thông hệ thống với Dịch vụ web cung cấp phương thức giúp ứng dụng máy khách truy cập sử dụng dịch vụ ứng dụng web thực Về chất, dịch vụ web dựa XML HTTP, XML làm nhiệm vụ mã hóa giải mã liệu dùng SOAP để Nguyễn Trần Quốc Vinh Đtg Tạp chí KHOA HỌC & CÔNG NGHỆ truyền tải liệu Một đặc trưng quan trọng dịch vụ web khơng phụ thuộc vào tảng công nghệ nào, điều tác giả ứng dụng để truyền liệu ứng dụng khác Trong hệ thống ĐNML tác giả xây dựng, dịch vụ web đóng vai trị trung tâm việc xử lý đăng nhập quản lý liệu tài khoản người dùng Nhằm đảm bảo yêu cầu đặt ra, hệ thống ĐNML cần cung cấp dịch vụ như: i) Dịch vụ LogOn cung cấp phương thức truy cập thông tin tài khoản người dùng dựa tên đăng nhập mật khẩu; ii) dịch vụ VerifySessionKey dùng để xác thực thông tin phiên làm việc người dùng gửi kèm yêu cầu ứng dụng; iii) dịch vụ AutoLogin trả thông tin người dùng dựa vào thông tin phiên làm việc; iv) dịch vụ LogOut hỗ trợ đăng xuất người dùng tất ứng dụng; v) dịch vụ ChangePassword giúp người dùng thay đổi mật Tất nhiên, để sử dụng dịch vụ web này, người dùng trình ứng dụng triệu gọi chúng phải cung cấp thông tin xác thực quyền sử dụng Cookie vấn đề truyền liệu ứng dụng Cookie phần liệu lưu trữ trình duyệt máy khách tồn khoảng thời gian định ứng dụng web quy định Cookie trình duyệt tự động gửi theo truy cập đến máy chủ web Cookie ứng dụng khác khác Việc lấy thông tin cookie từ ứng dụng web khác khó khăn, hai ứng dụng khác tên miền (domain) Trong nghiên cứu này, tác giả tiến hành tạo cookie theo cách thay đổi đường dẫn mặc định để cookie tạo dùng chung cho ứng dụng có nhu cầu Đây sở quan trọng cho việc xây dựng hệ thống ĐNML cho nhiều ứng dụng với tên miền khác SSL kết nối HTTPS SSL (Secure Sockets Layer) công nghệ bảo mật tiêu chuẩn để thiết lập kết nối 122(08): 27 - 33 mã hóa máy chủ máy khách [9] Thông thường, liệu truyền qua lại máy khách máy chủ dạng khơng mã hóa, liệu truyền tải hai nút mạng đọc hiểu bên thứ ba quan sát nút trung gian Nếu liệu truyền qua kênh SSL, mã hố bên thứ ba nằm nút trung gian hiểu nội dung thông điệp HTTPS giao thức HTTP SSL/TSL Tất dịch vụ hệ thống ĐNML xây dựng phạm vi nghiên cứu yêu cầu sử dụng SSL Mọi kết nối từ máy khách đến hệ thống ĐNML thiết lập giao thức HTTPS Việc mã hoá giải mã thực theo chứng số SSL Nếu chứng cấp tổ chức có uy tín chấp nhận rộng rãi giới, chứng trình duyệt web ứng dụng tự động chấp nhận Nếu chứng SSL tạo cá nhân tổ chức chưa công nhận rộng rãi giới, người dùng phải thực thao tác xác nhận chứng số duyệt web Tuy nhiên, với ứng dụng web truy cập đến dịch vụ web, cần phải lập trình xử lý để mặc định ln ln tự động xác nhận chứng SSL máy chủ dịch vụ web mà không chờ đợi vào thao tác thủ cơng người Thiết kế hệ thống Mơ hình xác thực người dùng Hệ thống ĐNML dùng chuỗi ký tự sinh ngẫu nhiên không trùng phiên làm việc người dùng, gọi SessionKey, để nhận biết phiên làm việc người dùng Khi người dùng truy cập vào trang có yêu cầu xác thực, ứng dụng gọi dịch vụ hệ thống ĐNML Trong trường hợp SessionKey không tồn tại, không hợp lệ, ứng dụng chuyển người dùng đến trang đăng nhập Vậy, để xác thực, người dùng cần phải có tài khoản mật hợp lệ SessionKey hợp lệ Hình mơ tả q trình xác thực người dùng 29 Tạp chí KHOA HỌC & CƠNG NGHỆ Nguyễn Trần Quốc Vinh Đtg Ứng dụng domain1.udn.vn Browser Hệ thống SSO sso.udn.vn 122(08): 27 - 33 Hệ thống Quản lý người dùng UserManager Gửi thông tin đăng nhập Gọi dịch vụ kiểm tra thông tin đăng nhập Kiểm tra tài khoản với thông tin đăng nhập [tài khoản không tồn tại] Thông báo đăng nhập không thành công [tài khoản tồn tại] Tạo SessionKey Lưu SessionKey vào sở liệu Lưu SessionKey vào cookie trình duyệt Yêu cầu SessionKey Gửi SessionKey thông qua cookie [Tồn SessionKey] Gọi dịch vụ xác thực SessionKey Kiểm tra tài khoản với giá trị SessionKey [SessionKey không tồn tại] Chuyển đến trang đăng nhập Xóa cookie [SessionKey tồn tại] Gọi dịch vụ lấy thơng tin người dùng Chuyển trang người dùng yêu cầu Tạo phiên làm việc cho người dùng Cập nhật thời hạn SessionKey phiên làm việc Tìm kiếm người dùng với SessionKey Hình 1: Sơ đồ mơ tả q trình xác thực người dùng Ban đầu, trình duyệt khơng có cookie dùng cho việc xác thực với dịch vụ ĐNML Vì vậy, người dùng truy cập vào trang web có yêu cầu xác thực hệ thống domain1.udn.vn domain2.udn.vn yêu cầu nhập thông tin người dùng trang đăng nhập hệ thống Một người dùng đăng nhập thành công vào hệ thống, cookie chứa thông tin xác thực cho người dùng tạo gửi đến trình duyệt web Bấy giờ, người dùng truy cập vào hệ thống domain1.udn.vn domain2.udn.vn, trình duyệt gửi cookie xác thực đến ứng dụng web Các ứng dụng web nhận cookie gửi SessionKey đến hệ thống sso.udn.vn Nó kiểm tra gửi thơng tin người dùng cho ứng dụng web yêu cầu, 30 gia hạn thời gian cho phiên làm việc SessionKey hợp lệ Ứng dụng web cập nhật gửi cookie cho trình duyệt web để gửi đến máy chủ web lần truy cập sau người dùng Mơ hình đăng xuất lần (Single Sign Out) Để kết thúc phiên làm việc, người dùng cần yêu cầu chức đăng xuất từ hệ thống Dịch vụ ĐNML gọi để hủy SessionKey xóa phiên làm việc người dùng Hình mô tả chức đăng xuất lần Người dùng đăng xuất hệ thống hệ thống khác tự động hủy phiên làm việc người dùng Lúc này, thông tin đăng nhập bị xóa, người dùng phải đăng nhập lại để bắt đầu phiên làm việc Tạp chí KHOA HỌC & CƠNG NGHỆ Nguyễn Trần Quốc Vinh Đtg Trình duyệt Browser Ứng dụng domain1.udn.vn Hệ thống SSO sso.udn.vn 122(08): 27 - 33 Hệ thống Quản lý người dùng UserManager Yêu cầu đăng xuất Lấy giá trị SessionKey Gửi SessionKey thông qua cookie Kiểm tra SessionKey [Tồn SessionKey] Gửi yêu cầu đăng xuất Xóa SessionKey trình duyệt Xóa SessionKey CSDL Chuyển đến trang đăng nhập Hình 2: Mơ hình Đăng xuất lần Ứng dụng asp.udn.vn Hệ thống SSO sso.udn.vn IP: 192.168.20.9 IP: 192.168.8.30 IP: 192.168.7.10 Ứng dụng php1.udn.vn php2.udn.vn IP: 192.168.3.3 Hình 3: Sơ đồ thử nghiệm hệ thống ĐNML CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ Hệ thống ĐNML xây dựng phạm vi nghiên cứu triển khai ứng dụng thành công Trường Đại học Kinh tế - Đại học Đà Nẵng từ tháng 5/2013 cho ứng dụng web máy chủ web riêng biệt, website xây dựng dựa tảng Apache/PHP tapchikhkt.due.udn.vn, hoithao.due.udn.vn kh.due.udn.vn Trường Đại học Sư phạm – Đại học Đà Nẵng từ tháng 11/2013 cho website scv.ued.udn.vn, conf.ued.udn.vn jse.ued.udn.vn Để kiểm tra khả thích ứng với tảng lập trình khác nhau, tác giả xây dựng, thử nghiệm kết hợp thành công ứng dụng tảng NET Sơ đồ ứng dụng thử nghiệm hệ thống hình Ứng dụng NET gồm hai trang chính: Trang đăng nhập trang hiển thị thông tin người dùng Kịch thử nghiệm mô tả sau: Khi truy cập vào trang hiển thị thơng tin người dùng, chưa đăng nhập chuyển trang đăng nhập Nếu người dùng đăng nhập chuyển tự động đến trang thơng tin người dùng Sau đó, người dùng truy cập ứng dụng cịn lại mà khơng cần đăng nhập Hệ thống ĐNML xây dựng hoàn chỉnh chức giải vấn đề xác thực người dùng tập trung ĐNML cho ứng dụng Ngồi ra, hệ thống cịn đảm 31 Nguyễn Trần Quốc Vinh Đtg Tạp chí KHOA HỌC & CƠNG NGHỆ bảo tính bảo mật q trình truyền liệu ĐNML ứng dụng Hệ thống ĐNML tác giả đề xuất giải hạn chế mà hệ thống ĐNML có Các dịch vụ hệ thống ĐNML cung cấp sử dụng nhiều tảng khác với ngôn ngữ lập trình NET, Java, PHP,… Việc triển khai hệ thống ĐNML trở nên đơn giản thứ thực qua dịch vụ web Nhà phát triển cần triệu gọi dịch vụ ĐNML ứng dụng mình, việc cịn lại ĐNML thực Trong phạm vi viết này, tác giả sâu giải pháp máy chủ ĐNML không cung cấp giao diện đăng nhập Việc đăng nhập thực giao diện ứng dụng web sử dụng dịch vụ ĐNML Tuy nhiên, hệ thống cung cấp khả cấu hình để việc đăng nhập thực giao diện máy chủ ĐNML cách chuyển người dùng đến giao diện đăng nhập máy chủ ĐNML Với cấu hình này, ứng dụng web sử dụng dịch vụ không đọc mật người dùng Trong trường hợp, máy chủ ĐNML quản lý việc xác thực người dùng Các ứng dụng tự quản lý việc phân quyền sử dụng hệ thống KẾT LUẬN Trong phạm vi nghiên cứu, tác giả xây dựng hệ thống ĐNML hoàn toàn độc lập với hệ thống công bố trước ngôn ngữ PHP dịch vụ web Hệ thống cung cấp dịch vụ xác thực người dùng ĐNML cho nhiều ứng dụng tổ chức Tác giả xây dựng thành công giải pháp dựa việc sử dụng dịch vụ web chia sẻ cookie ứng dụng web khác xây dựng tảng khác nhau, xây dựng thành công hệ thống quản lý ĐNML triển khai ứng dụng thành công nhiều ứng dụng web Trường Đại 32 122(08): 27 - 33 học Kinh tế - Đại học Đà Nẵng từ tháng 5/2013 Trường Đại học Kinh tế - Đại học Đà Nẵng từ tháng 11/2013 Hệ thống hoạt động hoàn toàn độc lập với tảng công nghệ dung để xây dựng ứng dụng Tuy nhiên, tác giả chưa thực nghiên cứu so sánh hệ thống xây dựng với hệ thống khác mặt hiệu TÀI LIỆU THAM KHẢO Chris Waynforth, “Definition single sign-on (SSO)”, Information Security Magazine Online, (truy cập ngày 11/2/2014) Hồ Văn Hương, Đào Thị Ngọc, “Ứng dụng hệ thống kiểm soát truy nhập mạng theo mơ hình truy nhập lần”, Tạp chí An tồn thơng tin, (truy cập ngày 11/2/2014) Trần Nghi Phú, “Cơ chế Single Sign On phần 2”, (truy cập ngày 11/2/2014) “Dịch vụ giải pháp chứng thực lần Oracle Single Sign On (SSO)”, http://www.vietpace.com/oracle_dichvu_xacthuc_ sso.html (truy cập ngày 11/2/2014) Oracle Corporation, Oracle Enterprise Single Sign-on Technical Guide, USA, June 2009 Mai Trần Trung Hiếu*, Trịnh Công Duy, Hồ Phan Hiếu, “Nghiên cứu kiến trúc xây dựng hệ thống chứng thực tập trung cho Đại học Đà Nẵng”, Tạp chí Khoa học Cơng nghệ Đại học Đà Nẵng, số 1(74).2014 Robert Daigneau, Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services, Pearson Education, 2012 Võ Trung Hùng, Nguyễn Thị Quỳnh Lâm, “Nghiên cứu ứng dụng web service xây dựng hệ thống cửa điện tử”, http://tailieuso.udn.vn/handle/TTHL_125/2878 (truy cập ngày 11/03/2014) Hồng Phúc, Nguyễn Ngọc Tuấn, Công nghệ bảo mật, Nhà xuất Thống kê, 2005 Nguyễn Trần Quốc Vinh Đtg Tạp chí KHOA HỌC & CƠNG NGHỆ 122(08): 27 - 33 SUMMARY BUILDING A SYSTEM FOR SINGLE SIGN ON BASED ON THE WEB SERVICE Nguyen Tran Quoc Vinh1*, Nguyen Van Vuong2 1College of Education – Da Nang University, of Economy – Da Nang University 2College There is an increasing trend around the world that one organization owns and operates several websites However, it often leads to problem that a user needs to remember multiple login accounts and passwords to log into different sites within the same organization due to database existing independently from each other Thus, one single sign-on to websites within the same organization is commonly requested Within the scope of the article, the authors propose solutions and building system of single sign-on services based that provide services of user authentication based on concentrated user database The system is built based on the exploitation of the independence of the foundation of web services, the ability to share cookies between browsers and web applications The paper also conducts application testing for the sign-on system that has already been built Key words: User authentication; single sign on; website; cookie; web service Ngày nhận bài:30/5/2014; Ngày phản biện:12/6/2014; Ngày duyệt đăng: 25/8/2014 Phản biện khoa học: TS Huỳnh Công Pháp – Đại học Đà Nẵng * Tel: 0914 780898, Email: ntquocvinh@gmail.com 33 ... công nghệ ứng dụng cách thức ứng dụng công nghệ, kỹ thuật khác để xây dựng hệ thống ngồi thơng tin giao thức LDAP Nghiên cứu rõ kiến trúc hệ thống, cụ thể cách thức ứng dụng công nghệ dịch vụ web. .. thống KẾT LUẬN Trong phạm vi nghiên cứu, tác giả xây dựng hệ thống ĐNML hoàn toàn độc lập với hệ thống công bố trước ngôn ngữ PHP dịch vụ web Hệ thống cung cấp dịch vụ xác thực người dùng ĐNML cho... trọng dịch vụ web khơng phụ thuộc vào tảng công nghệ nào, điều tác giả ứng dụng để truyền liệu ứng dụng khác Trong hệ thống ĐNML tác giả xây dựng, dịch vụ web đóng vai trị trung tâm việc xử lý đăng