单点登录概述

单点登录是什么

说cas前,先谈谈单点登录,什么是单点登录,是指当存在多个系统时,用户只需要登录一个系统,就能访问所有受信用的系统。这样的登录系统称为单点登录,常见的比如百度,百度贴吧,百度网盘,只需在其中一个登录,即可登录其余系统。

通常来讲单点登录必须实现的两个功能点

1.只登录一次

也就是说只要在一个系统登录,其他系统中都无需登录,否则只能叫统一认证,甚至只能说是共用了账号密码

2.单点登出

虽然叫做单点登录,但既然有登录就有登出,同样的登出也应该是只登出一次。

 

如何实现单点登录

抛开cas本身不讲,假设不使用已有框架,自行实现单点登录我们要如何实现呢?

前端代表浏览器,后端代表服务端,二者要进行识别就必须有有东西用来存储识别的信息,并传递给服务端,一般来讲常见的前端存储方式包括cookie,url携带参数,html 5 后还有缓存等(如LocalStorage,IndexDB)。url传递账号密码很不安全,而且页面跳转中要保持状态也很麻烦,缓存存在的问题是时效性和安全性,cookie似乎是更好的选择。

然而,既然是多系统登录,那么使用cookie进行信息识别必然会遇到的问题就是跨域如何解决,因为cookie不能跨域,只有在访问相应域名时才会携带对应的cookie。好在二级域名可以共享cookie,于是最常见的单点登录方案出现了。

通过二级域名共享cookie,使用cookie来做身份校验,如

pan.baidu.com

zhidao.baidu.com

由于多系统共享cookie,通过一个cookie来进行身份验证,只要各个系统通过session共享或是redis等统一存储服务端校验信息,或是通过一个单独的服务或模块进行认证很容易就能实现单点登录,只要该cookie过期就能很容易地实现单点登出。

 

如果不能共享cookie该怎么办呢

上述的解决方案,很明显,需要一个先决条件,cookie共享,那么问题来了,假设条件不满足的情况下,比如两个网站域名不在一个一级域名下,甚至,比如我们要实现单点登录的是一些内部系统,直接使用ip访问的,这样的情况下我们应该如何实现单点登录呢,这种情况下CAS单点登录系统的实现就很有参考价值了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值