XXL-SSO分布式单点登录框架-Cookie逻辑解析

Posted IT-老牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XXL-SSO分布式单点登录框架-Cookie逻辑解析相关的知识,希望对你有一定的参考价值。

文章目录

1.XXL-SSO登录逻辑


代码逻辑描述

  1. 访问pro.com,获取pro.com域的cookie(xxl_sso_sessionid,由userId_随机数码组成)为空,从请求参数获取cookie为空;
  2. 获取用户信息为空,重定向sso服务;
  3. sso服务,获取sso.com域cook’ie为空,获取用户信息为空,跳转登陆页
  4. 登录页输入用户名密码登陆,登陆成功,
1、创建用户对象,
2、创建sessionid(userId_user版本号),
3、response设置cookie,
4、radis设置key(xxl_sso_sessionid,#,usrid组成),用户对象, 失效时间
  1. 重定向pro.com?xxl_sso_sessionid=xxl_sso_sessionid;
  2. 获取pro.com域的cookie(xxl_sso_sessionid,由userId_随机数码组成)为空,从请求参数获取cookie,根据cookie查询raids获取用户对象;
  3. 如果当前时间超过刷新时间一半的时候,重新设置radis数据的有效时间;设置pro.com,cookie值
  4. 跳转请求页面;
  5. 访问pro1.com,获取pro1.com,cookie以及url参数cookie失败,获取对象失败,重定向sso.com服务
  6. sso服务,获取sso.com域cook’ie,根据cookie查询raids获取用户对象
  7. 重定向pro1.com?xxl_sso_sessionid=xxl_sso_sessionid;
  8. 后面逻辑与6,7,8相同
  9. 再次访问pro.com,pro1.com,只需要验证本域下的cookie;

2.XXL-SSO注销逻辑

代码逻辑

  1. 用户注销pro.com,销毁pro.com下的cookie;重定向sso.com,销毁sso.com下的cookie,删除radis下的用户信息,跳转登录页。
  2. 用户访问pro1.com,从pro1.com下获取cookie,从raids查询用户信息失败,无法返回用户信息登陆失败,重定向sso.com服务,获取sso.com域下cookie失败,从raids查询用户信息失败,跳转登陆页。

cookie可能会受到防跨站请求伪造(CSRF)攻击,token可以解决这个问题

举个CSRF攻击的例子,在网页中有这样的一个链接
(http://bank.com?withdraw=1000&to=tom),假设你已经通过银行的验证并且cookie中存在验证信息,同时银行网站没有CSRF保护。一旦用户点了这个图片,就很有可能从银行向tom这个人转1000块钱。

但是如果银行网站使用了token作为验证手段,攻击者将无法通过上面的链接转走你的钱。(因为攻击者无法获取正确的token)

以上是关于XXL-SSO分布式单点登录框架-Cookie逻辑解析的主要内容,如果未能解决你的问题,请参考以下文章

轻量级分布式单点登录框架 XXL-SSO | 软件推介

XXL-SSO框架基础入门

分布式单点登录框架XXL-SSO

分布式单点登录框架xxl-sso

《果然新鲜》电商项目(35)-SSO单点登录(XXL-SSO案例)

分布式单点登录框架XXL-SSO-流程分析