单点登录
在企业发展初期,公司通常只有一个web系统,web系统自身包含登录模块,用户使用自己的账号登录系统,很方便。下图表示传统系统登录方案:
随着企业的发展,公司的web系统越来越多,每个系统都包含各自的登录模块。可以想象下用户进入每个系统都需要登录,登出也要一个个登出,非常影响用户体验。下图表示传统多系统登录方案:
web系统由单系统发展成多系统,复杂性应该由系统内部承担,而不是用户。无论web系统内部多么复杂,对用户而言,都是一个统一的整体,也就是说,用户访问web系统的整个应用群与访问单个系统一样, 登录/登出只要一次 就够了。
我们都知道用户每次请求系统,都会携带浏览器上面的cookie(包含sessionId)信息作为请求头发送到系统后端,后端通过sessionId判断用户是否登录。
但是这种改进方式存在着一些不足之处:
为了解决传统登录系统带来的复杂度问题,单点登录应运而生。单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
单点登录将登录模块抽离出来成为一个统一认证平台,应用系统无需开发登录模块,只需简单接入统一认证平台。下面是单点登录示意图:
我们将在下一篇通过以CAS作为代表,分析下单点登录是怎么实现的原理(当然也可以通过OAuth2.0 Saml2.0 OpenID等实现单点登录)。
下一篇: CAS设计原理