session共享与sso的关系?
session共享是一个抽象,sso是共享的实现。
什么是session共享
在分布式系统中,登录任何一个子系统,其它系统都不必再次登录,也就是各个系统的session是共享的。sso实现了session的共享,需要进一步探究是如何实现共享的,以及共享所引入的新的问题–跨域。
什么是session跨域
客户端请求的时候,请求的服务器,不是同一个IP,端口,域名,主机名的时候,都称为跨域
如果跨域,token是无法被浏览器携带的。sso可以利用cas解决跨域问题。
注意:在cas4.2.7中,这个跨域单点登录的功能需要你启用https协议,上图中你需要体会的是在上图的第9个步骤上,那时访问B系统,因为是跨域,而且是首次访问,ticket是为空的**,而经过一系列的重定向,加参数之后(将ticket拼接到了请求参数中)**,你发现用户啥操作都没做,但是在第13步访问B系统时候,已经带上了有效的ticket,因为这一系列重定向对用户是透明的,用户感觉自己啥也没做就实现了对B系统的访问。