1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ thống đăng nhập một lần

81 295 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 2,62 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - VŨ MẠNH CƯỜNG HỆ THỐNG ĐĂNG NHẬP MỘT LẦN Chuyên ngành : CÔNG NGHỆ THÔNG TIN LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC PGS TS Nguyễn Linh Giang Hà Nội – Năm 2019 LỜI CAM ĐOAN Tôi – Vũ Mạnh Cường – xin cam đoan • Luận văn tốt nghiệp (LVTN) Thạc sĩ cơng trình nghiên cứu thân hướng dẫn PGS.TS Nguyễn Linh Giang • Các kết nêu Luận văn tốt nghiệp trung thực, chép tồn văn cơng trình khác Hà Nội, ngày … tháng … năm 2019 Tác giả LVThS Vũ Mạnh Cường i LỜI CẢM ƠN Đầu tiên, xin gửi lời cảm ơn sâu sắc tới Thầy giáo – PGS.TS Nguyễn Linh Giang – trưởng mơn Truyền thơng Mạng máy tính, Viện Công nghệ thông tin Truyền thông, Trường Đại học Bách Khoa Hà Nội hướng dẫn cho tơi lời khun q trình thực luận văn Tiếp theo, xin chân thành cảm ơn thầy cô Viện Công nghệ thông tin truyền thông, Viện đào tạo sau đại học, Trường Đại học Bách Khoa Hà Nội tạo điều kiện cho tơi suốt q trình học tập nghiên cứu trường Cuối cùng, tơi xin bày tỏ lịng cảm ơn tới người thân gia đình, bạn bè động viên giúp đỡ để tơi hồn thành luận văn Hà Nội, ngày … tháng … năm 2019 Tác giả LVThS Vũ Mạnh Cường ii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT vi DANH MỤC HÌNH ẢNH vii MỞ ĐẦU .1 Đặt vấn đề Phương pháp đề xuất Bố cục luận văn CHƯƠNG 1: GIỚI THIỆU CƠ CHẾ ĐĂNG NHẬP MỘT LẦN 1.1 Tổng quan Single sign-on 1.2 Tổng quan xác thực .4 1.2.1 Các phương thức xác thực 1.2.2 Các giao thức xác thực .6 1.2.2.1 OpenID .6 1.2.2.2 OAuth2 .7 1.2.2.3 SAML 1.3 Nguyên lý hoạt động Single sign-on 11 1.4 Một số giải pháp Single sign-on 12 1.4.1 Facebook Connect 13 1.4.2 Central Authentication Service 14 1.5 Ưu điểm nhược điểm 15 1.6 Một số vấn đề thường gặp triển khai 16 CHƯƠNG 2: TỔNG QUAN VỀ OAUTH2 .17 2.1 Giới thiệu OAuth2 .17 2.2 Lịch sử phát triển 17 2.3 Nguyên lý hoạt động 17 2.3.1 Các đối tượng OAuth2 17 2.3.2 Sơ đồ luồng hoạt động .18 iii 2.3.3 Đăng ký thông tin ứng dụng 19 2.3.4 ClientID Client Secret 19 2.3.5 Cấp ủy quyền ( Authorization Grant) .19 2.3.5.1 Cấp ủy quyền sử dụng mã ủy quyền (Authorization Code) .19 2.3.5.2 Cấp ủy quyền ngầm định (Implicit) 21 2.3.5.3 Cấp ủy quyền password (Password) 23 2.3.5.4 Cấp ủy quyền thông tin ứng dụng (Client Credentials) 23 2.3.6 Các hoạt động khác OAuth2 23 2.3.6.1 Sử dụng Access Token để lấy liệu 23 2.3.6.2 Yêu cầu gửi access token 23 2.3.7 Ưu nhược điểm OAuth2 24 CHƯƠNG 3: GIẢI PHÁP OAUTH2 VÀ ĐĂNG NHẬP MỘT LẦN 25 3.1 Giới thiệu mơ hình 25 3.1.1 Các giải pháp Single sign-on sử dụng OAuth2 25 3.1.1.1 Xây dựng Single sign-on với nhà cung cấp Provider 25 3.1.1.2 Xây dựng Single sign-on với vai trò nhà cung cấp Provider .26 3.1.2 Hệ thống đăng nhập lần sử dụng OAuth2 27 3.1.3 Thực trạng mơ hình truyền thống 27 3.1.4 Nhu cầu lợi ích giải pháp 27 3.1.5 Lý lựa chọn công nghệ 28 3.1.6 Giới thiệu PHP, framework Laravel, laravel-passport 29 3.1.6.1 Giới thiệu PHP 29 3.1.6.2 Giới thiệu framework Laravel .31 3.1.6.3 Giới thiệu Laravel-passport 33 3.2 Quy mô giải pháp 33 3.3 Phạm vi giải pháp 37 3.4 Mục tiêu 39 3.5 Phân tích thiết kế hệ thống 39 3.5.1 Mơ tả tốn 39 3.5.2 Mơ hình hệ thống .40 3.5.2.1 Sơ đồ khối chức .40 iv 3.5.2.2 Sơ đồ hoạt động 41 3.6 Ưu điểm, nhược điểm .42 3.7 Môi trường thử nghiệm .43 3.7.1 Môi trường .43 3.7.2 Thử nghiệm 43 3.7.2.1 Cài đặt Laravel 43 3.7.2.2 Cài đặt Laravel-passport 44 3.7.2.3 Cài đặt laravel-client 50 3.7.2.4 Cài đặt Redis 53 3.7.2.5 Cấu hình share storageSession sub domain .53 3.7.2.6 Cấu hình Virtual Domain 55 3.8 Đánh giá hiệu hệ thống 56 3.8.1 Tạo Client ID, Client Secret .56 3.8.2 Thử nghiệm tính login với Single sign-on 57 3.8.3 Thử nghiệm tính logout với Single sign-on 61 3.8.4 Thử nghiệm tính access_token hết hạn 62 3.8.5 Thử nghiệm tính người dùng không cấp quyền truy cập 63 3.8.6 Thử nghiệm tính người dùng xác thực khơng thành cơng .65 3.8.7 Thử nghiệm tính truy cập thơng tin người dùng .65 3.8.8 Thử nghiệm tính bình luận trang tin tức 67 3.8.9 Kết luận 70 3.9 Đề xuất cải thiện .70 KẾT LUẬN .71 Tổng kết 71 Hướng phát triển 71 TÀI LIỆU THAM KHẢO 72 v DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt SSO Single sign-on Hệ thống đăng nhập lần HA High Availability Tính sẵn sàng cao ORM Object Relational Mapping PDO PHP Data Object API Application Programming Interface vi Giao diện lập trình ứng dụng DANH MỤC HÌNH ẢNH Hình 1: Tổng quan Single sign-on Hình 2: Một số dịch vụ Google Hình 3: Phân loại phương thức xác thực Hình 4: Cách thức hoạt động OAuth2 Hình 5: Cách thức hoạt động SAML 10 Hình 6: Cách thức hoạt động Single sign-on 11 Hình 7: Sơ đồ luồng hoạt động OAuth2 18 Hình 8: Sơ đồ hoạt động Authorization Code 20 Hình 9: Ủy quyền Authorization Code 20 Hình 10: Sơ đồ hoạt động Implicit 22 Hình 11: PHP ưu chuộng làm tảng để thiết kế web[9] 29 Hình 12: OOP giúp lập trình viên tiếp cận, mở rộng ứng dụng[9] 30 Hình 13: Sự tăng tưởng Laravel Github[11] 31 Hình 14: Mơ hình MVC laravel[11] 32 Hình 15: Mơ hình triển khai hệ thống lý tưởng 34 Hình 16: Mơ hình HA Application 35 Hình 17: Mơ hình HA database 36 Hình 18: Mơ hình redis custer 36 Hình 19: Mơ hình triển khai hệ thống phạm vi demo 38 Hình 20: Sơ đồ khối chức hệ thống Single sign-on sử dụng OAuth2 40 Hình 21: Sơ đồ hoạt động hệ thống Single sign-on sử dụng OAuth2 41 Hình 22: Cài đặt Laravel 44 Hình 23: Cài đặt laravel-passport 44 Hình 24: Đăng ký Provider 45 Hình 25: Thêm trait cho User Model 46 Hình 26: Đăng ký Passport routes 47 Hình 27: Thay đổi kiểu xác thực api 47 Hình 28: Đăng ký vue component 48 Hình 29: Trang chủ Auth Server 49 Hình 30: Thêm router cho Client 50 Hình 31: Thêm action cho Client 51 Hình 32: Thêm xử lí cho trang chủ 52 Hình 33: Trang chủ Hust Client B 52 Hình 34: Cài đặt redis 53 Hình 35: Cấu hình redis session 54 Hình 36: Cấu hình môi trường share Session 54 Hình 37: Cấu hình virtual Domain 55 Hình 38: Tạo ClientID , Client Secret 56 Hình 39: Thơng tin ClientID , Client Secret 57 Hình 40: Trang chủ Hust Client B 57 Hình 41: Đăng nhập hệ thống 58 Hình 42: Cấp quyền truy cập tài nguyên 58 Hình 43: Xác thực tài khoản Hust Client B thành công 59 Hình 44: Xác thực tài khoản Hust Client C thành công với SSO 60 Hình 45: Đăng xuất thành công website 61 Hình 46: Truy cập với access_token hết hạn 62 vii Hình 47: Trang chủ website b.devlocal.com 64 Hình 48: Xác thực với thơng tin khơng 65 Hình 49: Thơng tin người dùng trước thay đổi 66 Hình 50: Thơng tin người dùng sau thay đổi 66 Hình 51: Trang tin tức 67 Hình 52: Tính bình luận người dùng đăng nhập 68 Hình 53: Trang chi tiết tin tức người dùng chưa đăng nhập 69 viii MỞ ĐẦU Đặt vấn đề Trong thời gian gần với phát triển nghành Công nghệ thông tin, xu hướng dịch vụ chia sẻ liệu người dùng hướng phát triển chung Thực tế người dùng quản lí nhiều tài khoản, mật cho dịch vụ, ứng dụng mà họ tham gia Việc người dùng quản lí thơng tin tài khoản sử dụng nảy sinh vấn đề khơng đảm bảo tính an ninh, an tồn phát sinh thêm nghiệp vụ khác Do nhu cầu đăng nhập lần – Single sign-on cho ứng dụng dịch vụ cần thiết Cơ chế Single sign-on (SSO) cho ứng dụng dịch vụ cấp thiết Cơ chế SSO đảm bảo cho người dùng hợp pháp truy cập hệ thống hay nhiều hệ thống kết nối với nhau, phải sử dụng tài khoản SSO cho phép người dùng đăng nhập vào hệ thống, họ đăng nhập vào tất hệ thống liên quan Phương pháp đề xuất Với phát triển bùng nổ nghành Công nghệ thông tin, dịch vụ phát triển mạnh Nhu cầu đăng nhập lần – Single sign-on cấp thiết vấn đề bảo mật, liệu cá nhân ngày quan tâm Người dùng cấp quyền truy cập hệ thống, bị thu hồi quyền truy cập trái phép tương lai họ không cần cung cấp mật họ Người dùng định việc cho phép cấp quyền truy cập vào liệu cá nhân ứng dụng thứ có nhu cầu Có nhiều giao thức, giải pháp, kỹ thuật cho phép xây dựng hệ thống Single sign-on Các giải pháp có ưu điểm, nhược điểm, phù hợp với nhu cầu, nghiệp vụ riêng Tuy giải pháp giải toán xây dựng hệ thống đăng nhập lần Trong luận văn này, tập trung nghiên cứu giao thức OAuth2, từ xây dựng hệ thống Single sign-on cho subdomain Giải pháp sở giúp cho doanh nghiệp Lần đầu truy cập người dùng chưa xác thực b.devlocal.com Click Đăng nhập để đăng nhập Hình 41: Đăng nhập hệ thống Hệ thống tự động redirect trang login AuthServer Người dùng login với thông tin username/password AuthServer xác thực , redirect lại Authorization Request tới người dùng để cấp quyền truy cập tài nguyên Hình 42: Cấp quyền truy cập tài nguyên Sau cấp quyền truy cập, AuthServer redirect b.devlocal.com Tại b.devlocal.com thực xác thực người dùng, thực gọi API user/info lấy thông tin người dùng với thông tin access_token nhận được, hiển thị trạng thái xác thực 58 Hình 43: Xác thực tài khoản Hust Client B thành công 59 - Truy cập http://c.devlocal.com/ để kiểm tra hệ thống Single sign-on Hình 44: Xác thực tài khoản Hust Client C thành công với SSO Tại http://c.devlocal.com/ người dùng khơng thực q trình xác thực http://c.devlocal.com/ sử dụng session share storageSession lấy thông tin access_token, thực request tới AuthServer để lấy thông tin UserInfo hiển thị trạng thái 60 3.8.3.Thử nghiệm tính logout với Single sign-on - Thực đăng xuất web http://b.devlocal.com/, http://c.devlocal.com/ kiểm tra tính đăng xuất nơi, đăng xuất tồn website Hình 45: Đăng xuất thành cơng website - Q trình đăng xuất thành cơng tất website 61 3.8.4 Thử nghiệm tính access_token hết hạn - Với access_token nhận từ 3.5.2 thực thiết lập expires_in hết hạn - Thực refesh lại trang b.devlocal.com c.devlocal.con để kiểm tra Hình 46: Truy cập với access_token hết hạn - Phiên truy cập người dùng trang b.devlocal.com, c.devlocal.com hết hiệu lực, hệ thống yêu cầu người dùng phải xác thực lại muốn truy cập 62 3.8.5 Thử nghiệm tính người dùng khơng cấp quyền truy cập - Tại bước 3.5.2 , người dùng thực cấp phép cho website b.devlocal.com truy cập thông tin người dùng Chọn từ chối Hình 41: Người dùng từ chối cấp quyền truy cập thông tin 63 - Sau người dùng từ chối cấp quyền truy cập thông tin cá nhân Hệ thống đưa người dùng trở lại trang welcome website b.devlocal.com Hình 47: Trang chủ website b.devlocal.com 64 3.8.6 Thử nghiệm tính người dùng xác thực không thành công - Tại bước 3.5.2 thực xác thực với thơng tin email/password sai Hình 48: Xác thực với thông tin không - Hệ thống thông báo q trình xác thực khơng thành cơng 3.8.7.Thử nghiệm tính truy cập thơng tin người dùng - Sau bước 3.5.2 cập nhật thông tin người dùng quay lại trang b.devlocal.com, c.devlocal.com để kiểm tra xem sau thay đổi thơng tin có cập nhật website không? - Thông tin người sau sau thay đổi cập nhật website 65 Hình 49: Thơng tin người dùng trước thay đổi Hình 50: Thông tin người dùng sau thay đổi 66 3.8.8.Thử nghiệm tính bình luận trang tin tức - Sau đăng nhập truy cập b.devlocal.com vào chức tin tức Hình 51: Trang tin tức 67 - Truy cập tin tức để đọc chi tiết nội dung Với người dùng đăng nhập hệ thống hiển thị chức bình luận tin tức Hình 52: Tính bình luận người dùng đăng nhập 68 - Với người dùng chưa đăng nhập vào hệ thống tính bình luận bị ẩn Người dùng khơng thể tương tác Hình 53: Trang chi tiết tin tức người dùng chưa đăng nhập 69 3.8.9.Kết luận Với giải pháp xây dựng hệ thống Single sign-on sử dụng OAuth2 Ta đạt kết thành công - Xây dựng thành công hệ thống Single sign-on cho multi Domain - Nâng cao trải nghiệm người dùng tương tác với hệ thống - Việc tích hợp Application với hệ thống nhanh chóng đơn giản - Việc phát triển tính năng, nghiệp vụ, nâng cấp thực dễ dàng phía Client Server - Chi phí xây dựng, phát triển hệ thống phù hợp:Nhân sự, kỹ năng, thời gian 3.9 Đề xuất cải thiện Trong phạm vi luận văn, thời gian có hạn, giải pháp xử lí Single sign-on subdomain với giải pháp shareSession qua sub domain Sẽ định hướng giải pháp Single sign-on cho multi Domain 70 KẾT LUẬN Tổng kết Luận văn trình bày giải pháp xây dựng hệ thống Single sign-on sử dụng OAuth2 cho mơ hình doanh nghiệp với phạm vi multi Subdomain Từ luận văn đưa phân tích nhu cầu thực tế hệ thống Single sign-on, Oauth2 Luận văn xây dựng ý tưởng nhu cầu thực tế trình làm việc doanh nghiệp, với hướng dẫn, định hướng PGS TS Nguyễn Linh Giang Luận văn phân tích ưu điểm, nhược điểm giải pháp Là sở chọn giải pháp xây dựng hệ thống Single sign-on phù hợp với doanh nghiệp Giải pháp giải tốn có hệ thống đăng nhập lần, xây dựng hệ sinh thái cho doanh nghiệp, sở để phát triển nghiệp vụ, chiến lược kinh doanh với giúp đỡ Artificial Intelligence, Machine Learning… tuân thủ chặt chẽ nguyên tắc bảo mật với việc áp dụng nghiêm ngặt giao thức OAuth2 Tăng trải nghiệm cho người dùng Hướng phát triển Hướng tới giải pháp xây dựng hệ thống Single sign-on sử dụng Oauth2 cho multi Domain Xây dựng nghiệp vụ liên quan đến Resource User Là sở, nơi cung cấp liệu cho Artificial Intelligence, Machine Learning… có hội phát triển nghiệp vụ, chiến lược kinh doanh Hồn thiện giải pháp với mục tiêu thương mại hóa, đóng gói thành plastform 71 TÀI LIỆU THAM KHẢO [1] Mitchell Anicas (21, July 2014), An Introduction to OAuth (https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2) [2] Jaime Lightfoot (30, May 2016), Authentication and Authorization: OpenID vs OAuth2 vs SAML (https://spin.atomicobject.com/2016/05/30/openid-oauth-saml) [3] Parul Garg, Dr Yashpal Singh (6, June 2016), SSO (Single Sign On) Implementation (https://pdfs.semanticscholar.org/3194/f5175fa44005012a15f67dc48fa711b2c0b3.p df) [4] Đào Văn Hùng (26, April 2019), Giải thích cách hoạt động SAM (https://blog.daovanhung.com/post/giai-thich-cach-hoat-dong-cua-saml) [5] D Hardt, Ed (October 2012), The OAuth 2.0 Authorization Framework (https://tools.ietf.org/pdf/rfc6749.pdf) [6] Website: http://openidexplained.com [7] Website: https://oauth.net/about/introduction/ [8] Website: https://www.tutorialspoint.com/oauth2.0/oauth2.0_overview.htm [9] Website: https://vietit.vn/kien-thuc-ve-website/Uu-diem-cua-thiet-ke-websitebang-PHP-257.html [10] Website: https://jobs.hybrid-technologies.vn/blog/laravel-la-gi/ [11] Website: https://en.wikipedia.org/wiki/List_of_OAuth_providers [12] Website: https://en.wikipedia.org/wiki/List_of_single_signon_implementations [13] Website: http://what-when-how.com/information-science-andtechnology/authentication-methods-for-computer-systems-security-informationscience 72 ... người dùng sử dụng dịch vụ - Hệ thống SSO cung cấp cho người dùng giải pháp xác thực đăng nhập lần Khi đăng nhập vào hệ thống SSO, người dùng dễ dàng truy cập vào hệ thống hệ sinh thái mà không cần... Giải pháp OAuth2 đăng nhập lần: Trình bày vấn đề liên quan đến giải pháp xây dựng hệ thống, phân tích thiết kế hệ thống, cài đặt, triển khai hệ thống Xây dựng kịch thử nghiệm hệ thống Kết luận:... dựng hệ thống nhanh chóng, nhỏ gọn, cộng đồng người sử dụng lớn, ổn định, dễ học, dễ triển khai, phù hợp với dịch vụ thương mại điện tử 3.1.2 Hệ thống đăng nhập lần sử dụng OAuth2 Hệ thống đăng nhập

Ngày đăng: 27/02/2021, 23:47

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w