单点登录

传统系统登录

在企业发展初期,公司通常只有一个web系统,web系统自身包含登录模块,用户使用自己的账号登录系统,很方便。下图表示传统系统登录方案:


image.png

随着企业的发展,公司的web系统越来越多,每个系统都包含各自的登录模块。可以想象下用户进入每个系统都需要登录,登出也要一个个登出,非常影响用户体验。下图表示传统多系统登录方案:

image.png

传统系统登录的改进

web系统由单系统发展成多系统,复杂性应该由系统内部承担,而不是用户。无论web系统内部多么复杂,对用户而言,都是一个统一的整体,也就是说,用户访问web系统的整个应用群与访问单个系统一样,登录/登出只要一次就够了。

我们都知道用户每次请求系统,都会携带浏览器上面的cookie(包含sessionId)信息作为请求头发送到系统后端,后端通过sessionId判断用户是否登录。

在此提出一个设想,如果多系统的session是共享的是不是问题就解决了?但是我怎么获取到cookie里面sessionId呢?众所周知,不同域下的cookie是没办法共享的,那是不是可以在用户登录完成的时候将cookie写到顶级域名上(顶级域名可以被所有子域名共享,例如share.com可以被web1.share.com和web2.share.com共享)

但是这种改进方式存在着一些不足之处:

  • 限制同一个顶级域名,如果有其他不同顶级域名系统接入进来,必需要更改该域名,例如文web3.test.com;
  • 对于session共享,难以做到各个系统统一存放session信息(权限);
  • 每个系统包含登录模块,各自开发,造成人力资源浪费。

初始单点登录

为了解决传统登录系统带来的复杂度问题,单点登录应运而生。单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

单点登录将登录模块抽离出来成为一个统一认证平台,应用系统无需开发登录模块,只需简单接入统一认证平台。下面是单点登录示意图:


image.png

我们将在下一篇通过以CAS作为代表,分析下单点登录是怎么实现的原理(当然也可以通过OAuth2.0 Saml2.0 OpenID等实现单点登录)。

下一篇:CAS设计原理

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、前言 1、SSO说明 SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需...
    KenTalk阅读 13,023评论 0 17
  • 博客内容 本篇博客简述了单系统登录到多系统单点登录的递进过程;简单概括了CAS协议支持单点登录的过程,详细请参照C...
    狗狗蹲下阅读 4,622评论 0 0
  • SSO(Single Sign On)单点登录 一、先讲一讲 Token 和 Cookies 的区别 基于Cook...
    Chiwency阅读 5,051评论 0 1
  • CAS的大坑你跳过吗? 2018-08-3010:59:05,415WARN[org.jasig.cas.util...
    外腾湖南阅读 6,542评论 0 0
  • CAS 中央认证服务 基础模式 SSO 访问流程主要有以下步骤: 访问服务: SSO 客户端发送请求访问应用系统...
    swoft_阅读 1,462评论 0 0