1 背景
在网站建设的过程中,多个应用系统一般是在不同的时期开发完成的。各应用系统由于功能侧重、设计方法和开发技术有所不同,也就形成了各自独立的用户库和用户认证体系。随着网站的发展,会出现这样的用户群体:以其中的一个用户为例,他(她)使用网站的多个应用系统,但在每个应用系统中有独立的账号,没有一个整体上的网站用户账号的概念,进入每一个应用系统前都需要以该应用系统的账号来登录。这带给用户不方便的使用感受,用户会想:既然我使用的是同一个网站上的应用,为什么不能在一次在网站上登录之后不必再经过应用系统认证直接进入应用系统呢?用户的要求我们称之为 "单点登录"。
|
图 1.1 网站用户要求单点登录 |
2 分析
在多个拥有各自独立的用户体系的应用系统间实现单点登录,我们要考虑以下的问题:
- 单点登录系统的实现在各应用系统都采用B/S模式这一前提下进行。
- 需要在各应用系统间统一用户认证标志,用户登录后可以得到用户令牌,各应用系统认可统一的用户令牌。
- 用户令牌应当是安全加密的,并且要限定时效期。
- 由于每个应用系统都有自己的用户库,一个用户可能在不同的应用系统中使用不同的账号,因此每个要使用多个应用系统的用户要设置一个统一的用户账号并以此账号进行单点登录,该账号与该用户在各应用系统中的一个账号形成映射关系。
- 各应用系统可能属于不同的域,因此要实现跨域的单点登录。
- 已经上线运行的应用系统需要进行改造来支持单点登录,正在开发的应用系统则可以在开发阶段增加对单点登录的支持,但应用系统之间应该是松耦合。
- 由于各应用系统往往都已经处于稳定运行期,单点登录系统的实现应该对各应用系统的登录认证体系冲击最小,各应用系统原有的登录流程依然可用。
- 一些应用服务器平台虽然提供对单点登录的支持,但要求应用系统用户认证的设计符合其规范,这对已经处于运行期的应用系统来说难以实现。
3 设计
以下是系统的整体设计结构:
|
图 3.1 系统结构图 |
3.1 单点登录管理应用
我们首先设计单点登录管理应用:
|
图 3.2 单点登录管理应用 |
用户在其中注册一个单点登录账号,然后针对每个应用系统绑定一个该应用系统中原有的账号,并维护这些注册和绑定信息。绑定的过程需要单点登录管理应用服务器到应用系统服务器上验证用户提供的该应用系统中原有账号和密码,应用服务器均以相同的Web Service接口提供该功能支持。
3.2 用户单点登录流程
之后以用户单点登录管理应用和令牌传输识别的标准来实现用户单点登录流程。
1、用户访问应用系统。
|
图 3.3 用户单点登录流程 - 步骤一 |
2、应用系统如果检查到用户没有在自己的服务器登录,则将用户请求重定向到单点登录服务器上。(使用重定向就可以处理各服务器跨域的情况)
|
图 3.4 用户单点登录流程 - 步骤二 |
3、单点登录服务器检查到用户已经单点登录(如果用户没有单点登录则要求用户登录,登录标志存储为客户端浏览器的Cookie),找到该用户在相应应用系统上绑定的账号。
|
图 3.5 用户单点登录流程 - 步骤三 |
4、单点登录服务器根据第三步的结果生成用户令牌,重定向回应用系统。
|
图 3.6 用户单点登录流程 - 步骤四 |
5、应用系统接收统一格式的用户令牌,取得用户在本系统上的登录账号,将用户在本系统上状态置为登录,返回用户请求访问的页面。
|
图 3.7 用户单点登录流程 - 步骤五 |
如果用户在访问应用系统之前已经在单点登录服务器上登录过,第二步到第四布对用户来说就是透明的,用户感觉只是向应用系统发出了访问请求,然后得到了页面反馈。
4 实现
(略)
5 总结
本方案设计的用户单点登录系统做到了:
- 真正了实现单点登录、全网访问,方便用户的使用过程。
- 各系统之间耦合度低,应用系统的改造不破坏其固有流程和结构,整个系统的实施过程安全平滑。
- 统一了单点登录服务器到应用服务器的用户认证信息访问标准,统一了令牌安全加密的传输和识别标准,为将来更多应用系统提供了统一的单点登录框架。
- 整合了过去分散在各应用系统中虽然有内在关联却难以判别的用户信息资源,为更进一步的用户个性化服务打下了基础。
相关推荐
SSO(Single Sign-On)单点登录解决方案旨在提供一个统一的身份验证入口,满足集团多个成员网站的身份验证需求。该方案的主要目标是实现单点登录,提高用户体验,降低成员网站的登录负载,并体现集团大平台、大渠道...
Sohu的单点登录解决方案采用了一种轻量级且高效的方法,有效地解决了用户在多个站点之间频繁登录的问题,提高了用户体验。通过对登录流程的优化以及对Cookie的有效利用,Sohu成功地将focus.cn、17173.com、sogou.com...
单点登录系统(Single Sign-On, SSO)是一种身份验证机制,允许用户通过一次登录操作访问多个相互关联的应用系统,无需在每个系统中分别输入凭证。这种技术在现代企业架构中广泛采用,以提高用户体验,简化管理,并...
在IT行业中,尤其是在Web开发领域,用户单点登录(Single Sign-On, SSO)是一种常见的功能,它允许用户在一个应用系统中登录后,无需再次认证即可访问其他相互信任的系统。在C# ASP.NET框架下,我们可以利用.NET的...
MaxKey单点登录认证系统是一款专业且功能强大的身份验证解决方案,专为提升企业或组织的信息安全和用户访问管理效率而设计。系统版本v3.5.19包含了最新的特性和改进,旨在提供更加稳定和安全的服务。这个压缩包包含...
SSO,全称为Single Sign-On,即单点登录,是一种网络用户身份验证的机制,允许用户在一次登录后,即可访问多个相互关联的应用系统,无需重复登录。在IT行业中,SSO是提升用户体验和提高安全性的重要手段,尤其在企业...
.NET 单点登录(Single Sign-On,SSO)解决方案是一种设计模式,允许用户在一个应用系统中登录后,可以在多个相互信任的应用系统之间自动登录而无需重新输入认证信息。本方案适用于基于ASP.NET技术构建的多站点环境...
用户单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统或服务中登录后,无需再次认证即可访问多个相互信任的系统。这种技术大大提升了用户体验,减少了频繁输入用户名和密码的繁琐...
单点登录系统 SSO 设计说明书 本文档旨在描述单点登录系统(SSO)的...单点登录系统的设计需要考虑到安全性、可扩展性、用户友好性和统一性等方面,旨在提供一个完整、可行的解决方案,以满足集团网站的身份验证需求。
总的来说,这个压缩包提供了一个关于如何在.NET环境下利用CAS实现跨平台、跨服务器、跨网站的单点登录解决方案的详细资源,涵盖了从理论到实践的各个层面。通过学习和应用这些内容,开发者可以构建起一个高效且安全...
单点登录(SSO)是一种用户认证技术,允许用户只需进行一次身份验证,就可以访问多个应用系统或网站,而不是在访问每个系统时都需要单独登录。SSO技术的引入,极大地提高了用户体验,简化了用户的登录流程,同时也...
总的来说,通过序列化和反序列化机制实现的跨站点Session共享和单点登录是一种实用的解决方案,尤其适用于那些已有多个网站并且希望实现统一用户管理的ASP.NET 2.0应用程序。但同时,为了确保系统的稳定性和安全性,...
单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次输入凭证即可访问多个相互关联的系统。SSO极大地提升了用户体验,减少了密码管理的复杂性,同时也降低了支持成本...
综上所述,.NET Core 3.1 结合IdentityServer4 可以轻松地构建出高效、安全的单点登录解决方案。"base" 项目作为认证中心,负责处理所有身份验证请求,而 "mall" 和 "erp" 作为受保护的客户端,通过验证令牌来共享...