Báo Cáo Nghiên Cứu cơ chế đăng nhập một lần (Single sign on) và thử nghiệm dựa trên thư viện PHP CAS

110 1.5K 2
Báo Cáo Nghiên Cứu  cơ chế đăng nhập một lần (Single sign on) và thử nghiệm dựa trên thư viện PHP CAS

Đ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

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN o0o ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU CƠ CHẾ ĐĂNG NHẬP MỘT LẦN ( SINGLE SIGN ON) VÀ THỬ NGHIỆM DỰA TRÊN THƯ VIỆN PHPCAS TP HCM , Ngày 11 Tháng 4 Năm 2015 NHIỆM VỤ ĐỀ TÀI 1. Nội dung và các yêu cầu cần giải quyết trong nhiệm vụ đề tài tốt nghiệp a. Nội dung - Tìm hiểu về đăng nhập một lần (Single Sign On). - Tìm hiểu về CAS (Central Authentication Service). - Thử nghiệm, cài đặt CAS, kiểm thử với website PHP dựa trên thư viện phpCAS. - Nghiêm túc thực hiện các nhiệm vụ và nội dung giáo viên hướng dẫn. b. Các yêu cầu cần giải quyết - Lý thuyết Nắm được cơ sở lý thuyết của đăng nhập một lần (Single Sign On). Nắm được quá trình cài đặt CAS và các thức triển khai Single Sign On. - Thực nghiệm (chương trình) Cài đặt CAS và thực nghiệm với website PHP 2. Các số liệu cần thiết để tính toán. …………………………………………………………………………………… ……………………………………………………………………………………. 3. Địa điểm thực tập. …………………………………………………………………………………… ……………………………………………………………………………………. Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM MỤC LỤC LỜI CẢM ƠN 1 MỤC LỤC 2 DANH MỤC HÌNH 4 DANH MỤC BẢNG 6 DANH SÁCH CHỮ VIẾT TẮT 7 LỜI NÓI ĐẦU 8 CHƢƠNG I GIỚI THIỆU VỀ CƠ CHẾ ĐĂNG NHẬP 1 LẦN (SINGLE SIGN ON). 9 1.1. Tổng quan về SSO. [1] 9 1.2. Lợi ích mà SSO mang lại. 9 1.3. Một số vấn đề thường gặp khi triển khai SSO. 10 1.4. Các giải pháp SSO hiện nay.[2] 11 CHƢƠNG II PHẦN MỀM NGUỒN MỞ CENTRAL AUTHENTICATION SERVICE. 16 2.1. Giới thiệu về phần mềm nguồn mở (Opensource).[3] 16 2.2. Dịch vụ chứng thực trung tâm (Central Authentication Service).[4] 17 2.2.1 Tổng quan về CAS. 17 2.2.2 Lịch sử hình thành. [5] 18 2.2.3 Các phiên bản của CAS. 19 2.2.4 CAS Protocol. 19 Đào Văn Phong - CT1301 3 3 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM 2.2.5. Tổng kết. 27 2.2.6. CAS Entities. 29 2.2.7. Nguyên tắc hoạt động 32 2.2.8. Kiến trúc tổng quan CAS. 37 2.3. Ruby CAS.[6] 40 2.4. CAS Client. 41 2.4.1. Giới thiệu ngôn ngữ xây dựng website phía client. 41 2.5. Thư viện phpCAS.[7] 41 2.5.1. phpCAS requirements. 41 2.5.2 phpCAS examples. 43 2.5.3. phpCAS logout. 44 2.5.4. phpCAS troubleshooting. 45 2.6. Vấn đề về bảo mật cho SSO. 46 CHƢƠNG III THỰC NGHIỆM. 48 3.1. Cài đặt hệ thống. 48 3.1.1. Điều kiện cần thiết. 48 3.1.2. Giới thiệu. 48 3.1.3. Cài dặt CAS-server. 49 3.1.4. Tích hợp CAS client vào hệ thống. 64 3.2. Các pha trong hệ thống khi user đăng nhập. 70 Đào Văn Phong - CT1301 4 4 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM KẾT LUẬN 75 TÀI LIỆU THAM KHẢO 76 PHỤ LỤC 77 Phụ lục A: CAS phản hồi lược đồ XML. 77 Phụ lục B: Chuyển hướng an toàn. 79 Phụ Lục C: Phần code xử lý đăng nhập SSO hệ thống 1. 80 Phụ Lục D: Phần code xử lý đăng nhập SSO hệ thống 2. 83 DANH MỤC HÌNH Hình 1.1: Single sign on là gì? 9 Hình 2.1: Người dùng truy cập vào ứng dụng khi đã chứng thực với CAS. 33 Hình 2.2: Người dùng truy cập vào ứng dụng khi chưa chứng thực với CAS server. 34 Hình 2.3: Login flow 38 Hình 2.4: Proxy flow. 39 Hình 2.5: logout flow. 40 Hình 2.6: Nguyên tắc hoạt động phpCAS. 43 Hình 2.7: Sơ đồ vị trí CAS trong hệ thống mạng. 47 Hình 3.1: Tải RubyInstaller 49 Hình 3.2: Cài đặt RubyInstaller bước1. 50 Hình 3.3: Cài đặt RubyInstaller bước2. 50 Hình 3.4: Cài đặt RubyInstaller bước 3. 51 Hình 3.5: Cài đặt RubyInstaller bước4. 52 Hình 3.6: Giải nén Development Kit 52 Hình 3.7: Cài đặt RubyInstaller bước 5. 53 Hình 3.8: Cài dặt Bunlde. 53 Đào Văn Phong - CT1301 5 5 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM Hình 3.9: Tải mã nguồn RubyCAS. 54 Hình 3.10: Triển khai RubyCAS bước1. 54 Hình 3.11: Tạo CSDL người dùng cho RubyCAS xác thực. 57 Hình 3.12: Tạo CSDL người dùng cho RubyCAS xác thực 2. 58 Hình 3.13: Triển khai RubyCAS bước 2. 58 Hình 3.14: Triển khai RubyCAS bước 3. 59 Hình 3.15: Triển khai RubyCAS bước 4. 59 Hình 3.16: Triển khai RubyCAS bước 5. 60 Hình 3.17: Kiểm thử quá trình cài đặt RubyCAS. 63 Hình 3.18: Cấu trúc bảng casserver_lt 63 Hình 3.19: Cấu trúc bảng casserver_pgt 63 Hình 3.20: Cấu trúc bảng casserver_st. 63 Hình 3.21: Cấu trúc bảng casserver_tgt 63 Hình 3.22: Cấu trúc bảng schema_migrations. 64 Hình 3.23: Trang chủ website 1. 64 Hình 3.24: Trang đăng ký người dùng website 1. 65 Hình 3.25: Trang đăng nhập hệ thống website 1. 65 Hình 3.26: Thêm mới bài viết. 66 Hình 3.27: Danh sách người dùng. 66 Hình 3.28: Cấu trúc CSDL website 1. 67 Hình 3.29: Trang chủ website 2. 67 Hình 3.30: Đăng ký người dùng website 2. 68 Hình 3.31: Đăng nhập hệ thống website 2. 68 Hình 3.32:Trang upload video website 2. 69 Hình 3.33: Cấu trúc CSDL website 2. 69 Hình 3.34: Tích hợp phpCAS vào website 1. 70 Hình 3.35: Tích hợp phpCAS website 2. 70 Hình 3.36: Luồng xử lý khi client xin xác thực thông tin từ CAS server. 72 Hình 3.37: Đăng nhập khi user không tồn tại ở CAS server. 73 Hình 3.38: Sơ đồ luồng pha 6 . 74 Đào Văn Phong - CT1301 6 6 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM Đào Văn Phong - CT1301 7 7 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM DANH MỤC BẢNG Bảng 1.1: Danh sách các giải pháp SSO. 11 Bảng 2.1: Tổng hợp các URI. 27 Bảng 2.2: Danh sách tham số phpCAS. 44 Bảng 3.1: Thông tin table casserver_lt. 60 Bảng 3.2: Thông tin table casserver_pgt. 61 Bảng 3.3: Thông tin table casserver_st. 61 Bảng 3.4: Thông tin table casserver_tgt. 62 Đào Văn Phong - CT1301 8 8 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM DANH SÁCH CHỮ VIẾT TẮT SSO Single Sign On CAS Central Authentication Service URI Uniform Resource Identifier URL Uniform Resource Locator HTTP Hypertext Transfer Protocol HTTPS Hypertext Transfer Protocol Secure SSL Secure Sockets Layer ST Service Ticket PT Proxy Ticket LT Login Ticket PGT Proxy-granting ticket PGTIOU Proxy-granting ticket IOU TGTIOU Ticket -granting ticket IOU TGT Ticket-granting ticket TGC Ticket-granting cookie CSDL Cơ sở dữ liệu Đào Văn Phong - CT1301 9 9 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM CHƢƠNG IGIỚI THIỆU VỀ CƠ CHẾ ĐĂNG NHẬP 1 LẦN (SINGLE SIGN ON). 1.1. Tổng quan về SSO.[1] SSO là một cơ chế xác thực yêu cầu người dùng đăng nhập vào chỉ một lần với một tài khoản và mật khẩu để truy cập vào nhiều ứng dụng trong 1 phiên làm việc (session). Hình 1.1: Single sign on là gì? 1.2. Lợi ích mà SSO mang lại. Đào Văn Phong - CT1301 10 10 [...]... có đăng nhập một lần (SSO), một người sử dụng đã phải nhập các tài khoản và mật khẩu cho từng ứng dụng mỗi khi họ đăng nhập vào các ứng dụng khác nhau hoặc các hệ thống trong cùng một phiên (session) Điều này rõ ràng có thể tốn nhiều thời gian, đặc biệt là trong môi trường doanh nghiệp, nơi mà thời gian là tiền bạc nhưng thời gian là lãng phí bởi vì nhân viên phải đăng nhập mỗi khi họ truy cập vào một. .. username< /cas: user> PGTIOU-84678-8a9d < /cas: proxyGrantingTicket> https://proxy2/pgtUrl< /cas: proxy> https://proxy1/pgtUrl< /cas: proxy> < /cas: proxies> < /cas: authenticationSuccess> < /cas: serviceResponse> Ticket validation thất bại: username< /cas: user> PGTIOU-84678-8a9d < /cas: proxyGrantingTicket> < /cas: authenticationSuccess> < /cas: serviceResponse> Ticket validation thất bại: ... sẽ trả về 1 XML-formatted CAS được mô tả như trong XML schema Dưới đây là ví dụ: Xác thực Ticket thành công: username< /cas: user> PGTIOU-84678-8a9d < /cas: proxyGrantingTicket> < /cas: authenticationSuccess> < /cas: serviceResponse> 2.2.4.5 /proxy callback Nếu một dịch vụ mong muốn ủy... một ứng dụng mong muốn để xác thực với nó, ứng dụng chuyển hướng nó đến CAS CAS xác nhận tính xác thực của client, thư ng là bằng cách kiểm tra tên người dùng và mật khẩu đối với một cơ sở dữ liệu (chẳng hạn như MYSQL/PGSQL) Nếu xác thực thành công, CAS trả client về ứng dụng trước đó thông qua 1 service ticket(ST) Ứng dụng này sau đó xác nhận ticket bằng cách liên hệ CAS trên một kết nối an toàn và. .. xác định "Service", CAS phải hiển thị một thư thông báo cho client rằng nó đã thành công bắt đầu single sign- on session Đào Văn Phong - CT1301 23 23 Đồ án tốt nghiệp Đồ án tốt nghiệp - Trường ĐH Dân Lập Hải Phòng Trường Công Nghệ Thông Tin – TP HCM Đăng nhập thất bại: Trả lại /login như là một requestor ủy nhiệm Đó là khuyến cáo trong trường hợp này máy chủ CAS hiển thị một thông báo lỗi được hiển thị... hạn như mật khẩu CAS hỗ trợ nhiều thư viện phía client được viết bởi nhiều ngôn ngữ như PHP, .NET, JAVA,RUBY… Giao thức CAS bao gồm ít nhất ba bên: một trình duyệt web của client, các ứng dụng web yêu cầu chứng thực, và các máy chủ CAS Nó cũng có thể liên quan đến một dịch vụ back-end, chẳng hạn như một máy chủ cơ sở dữ liệu, nó không có giao diện HTTP riêng của mình nhưng giao tiếp với một ứng dụng web . pha 6 . 74 Đào Văn Phong - CT1301 6 6 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ Thông Tin – TP HCM Đào Văn Phong - CT1301 7 7 Đồ án tốt nghiệp. CAS client vào hệ thống. 64 3.2. Các pha trong hệ thống khi user đăng nhập. 70 Đào Văn Phong - CT1301 4 4 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ. 52 Hình 3.7: Cài đặt RubyInstaller bước 5. 53 Hình 3.8: Cài dặt Bunlde. 53 Đào Văn Phong - CT1301 5 5 Đồ án tốt nghiệp Trường ĐH Dân Lập Hải Phòng Đồ án tốt nghiệp Trường Công Nghệ

Ngày đăng: 19/06/2015, 12:54

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • DANH MỤC HÌNH

  • DANH MỤC BẢNG

  • CHƢƠNG IGIỚI THIỆU VỀ CƠ CHẾ ĐĂNG NHẬP 1 LẦN (SINGLE SIGN ON).

  • CHƢƠNG IIPHẦN MỀM NGUỒN MỞ CENTRAL AUTHENTICATION SERVICE.

    • 2.2.1 Tổng quan về CAS.

    • 2.2.2 Lịch sử hình thành.[5]

    • 2.2.3 Các phiên bản của CAS. CAS 1.0

    • 2.2.4 CAS Protocol.

    • 2.2.5. Tổng kết.

    • 2.2.6. CAS Entities.

    • 2.2.7. Nguyên tắc hoạt động

    • 2.2.8. Kiến trúc tổng quan CAS.

    • 2.4.1. Giới thiệu ngôn ngữxây dựng website phía client. A. PHP là gì?

    • 2.5.1. phpCAS requirements.

    • 2.5.2 phpCAS examples.

    • 2.5.3. phpCAS logout.

    • 2.5.4. phpCAS troubleshooting.

    • CHƢƠNG IIITHỰC NGHIỆM.

      • 3.1.1. Điều kiện cần thiết.

      • 3.1.2. Giới thiệu.

      • 3.1.3. Cài dặt CAS-server.

Tài liệu cùng người dùng

Tài liệu liên quan