单点登录(Single Sign-On,简称SSO)是一种允许用户在一个应用系统中登录后,无需再次认证即可访问其他相互信任的应用系统的技术。SSO的主要目的是简化用户登录过程,提高用户体验,同时减少各系统间的身份验证开销。在本文中,我们将深入探讨SSO系统的详细设计,包括其工作原理、目标、最终用户特点以及具体需求。
1.1 引言部分明确了编写SSO需求说明书的目的是为了确保系统的可行性、完整性和预期功能。背景中提到,由于集团拥有多个独立网站,每个网站都有自己的身份验证机制,导致用户需在每个网站上分别注册和登录,这不仅给用户带来不便,也增加了系统性能负担。因此,SSO系统的需求显得尤为迫切,旨在实现所有成员网站间的“单一登录”入口,共享身份验证状态。
1.3 定义中,SSO系统由认证服务器(Passport服务器)和成员网站服务器组成。会员在Passport服务器注册后,将获得身份验证状态的Cookie验证票,此票包含用户信息,如用户名、签发和过期时间。用户首次访问成员网站时,通过Passport服务器验证后,后续访问其他成员网站无需再次登录。
2.1 任务概述中,SSO系统分为两阶段实施,首先针对新用户实现单点登录,然后逐步整合现有会员。Passport服务器需具备高性能、可扩展性、稳定性和安全性,同时降低维护成本。在第二阶段开发中需整体规划。
2.2 最终用户是广大网民,需求规定中强调系统应界面友好,操作简单,无需用户额外学习。
3.1 需求概述详细列出了注册和登录过程的要求:
- 注册流程:用户在成员网站重定向至Passport服务器注册,创建会员后,Passport服务器将验证票保存在数据库和自身域的Cookie中,并在成员网站数据库建立映射关系。用户返回成员网站填写个性信息并保存验证票。
- 登录流程:通过Passport服务器验证后,生成的验证票仅保存在Passport服务器域的Cookie中,不写入每个成员网站,以优化性能。登录成功后,使用Session和Cookie保存登录状态。同一浏览器进程内,用户在网站间跳转仅依赖Session加载信息。用户从已登录的网站A跳转或重新打开浏览器访问网站B时,需要再次验证,但仅验证Passport服务器域的Cookie,不与数据库中的票进行比较。
总结来说,单点登录详细设计的目标是构建一个高效、安全的SSO系统,为用户提供无感知的身份验证体验,同时减轻服务器的验证负担。系统设计涵盖了用户注册、登录、状态管理等多个方面,以满足大规模用户群的需求。通过Passport服务器作为中央认证机构,确保各成员网站之间的协同和一致性。这一设计不仅提升了用户体验,还加强了集团内部各网站的连接,体现了公司平台化、渠道化的发展策略。