单点登录 SSO 及 CAS

问题答案
单系统登录限制

单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器与服务器之间维护会话状态。

但cookie是有限制的,这个限制就是cookie的域(通常对应网站的域名),浏览器发送http请求时会自动携带与该域匹配的cookie,而不是所有cookie。

同域下的单点登录

web应用群中所有子系统的域名统一在一个顶级域名下 例如“*.a.com”

Cookie的问题:将Cookie的域设置为顶域,即.a.com

session的问题:共享Session

不同域下的单点登录

CAS(Central Authentication Service)

认证服务器

 

参考:

https://yq.aliyun.com/articles/636281

  1. 用户访问app系统,app系统是需要登录的,但用户现在没有登录。

  2. 跳转到 CAS server,即SSO登录系统 SSO系统也没有登录,弹出用户登录页。

  3. 用户填写用户名、密码,SSO系统进行认证后,将登录状态写入SSO的session,浏览器(Browser)中写入SSO域下的Cookie。

  4. SSO系统登录完成后会生成一个ST(Service Ticket),然后跳转到app系统,同时将ST作为参数传递给app系统。

  5. app系统拿到ST后,从后台向SSO发送请求,验证ST是否有效。

  6. 验证通过后,app系统将登录状态写入session并设置app域下的Cookie。

访问app2系统:

  1. 用户访问app2系统,app2系统没有登录,跳转到SSO。

  2. 由于SSO已经登录了,不需要重新登录认证。

  3. SSO生成ST,浏览器跳转到app2系统,并将ST作为参数传递给app2。

  4. app2拿到ST,后台访问SSO,验证ST是否有效。 (防止伪造用户信息登录)

  5. 验证成功后,app2将登录状态写入session,并在app2域下写入Cookie。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值