sso单点登录

关于sso单点登录的学习记录

  1. 前期准备,域名修改:
    由于涉及跨域名问题,注册多个域名不太合算所以修改本地host文件,计算机寻址过程会先修找本地,然后才回去网络寻找,windows的host文件在,C:\Windows\System32\drivers\etc下的hosts文件,新增(
    127.0.0.1 test.com
    127.0.0.1 demo1.test.com #模拟客户端1
    127.0.0.1 demo2.test.com #模拟客户端2
    127.0.0.1 check.test.com #模拟单点登录检验服务器)
  2. 电脑内存可能要稍微大一些,因为要起最少两个服务,为了方便快捷我选择了springboot作为项目脚手架
  3. 关于跨域你需要了解的:<1> 同域:既在完全相同的域名下,例如都在www.a.com下,也可以理解为为单项目或者同集群项目,此类项目无所谓单点登录,毕竟由同一拦截器处理;<2> 同父域:例如:m.a.com和www.a.com,他们有相同的父域,但是肯定是不同的项目,这种就要用到单点登录校验了,<3> 完全跨域,例如,你在淘宝登录完成然后再不清除cookie的前提下去登录阿里巴巴,天猫等阿里系网站都不需要登录,此为完全跨域
  4. sso原理:将统一登录校验服务器单独部署一个项目,然后访问demo1.test.com项目,项目做AOP或者file拦截处理,查看是否携带有cookie或者token,如果有cookie去内存或者数据库检查cookie的有效性(一般为用户名对应cookie,并设置有效时间),cookie有效则直接登录;
    若cookie不存在或已过时,校验token。若token也不存在,则跳转到统一登陆校验服务器check.test.com进行统一登陆(携带用户访问的地址),统一登录校验服务器跳转到登录页面进行登录,账号密码都正确的情况下生成token,对应用户名,域名存入内存或数据库,然后跳转到用户访问的地址,此时还会被demo1的服务拦截,检查
    查看是否携带有token,若不存在token,则跳转到统一登陆校验服务器check.test.com进行统一登陆(携带用户访问的地址),统一登录校验服务器跳转到登录页面进行登录,账号密码都正确的情况下生成token,对应用户名,域名存入内存或数据库,然后跳转到用户访问的地址,
    此时还会被demo1的服务拦截,检查有token和cookie,此时demo1服务器携带token和请求路径再次去统一登陆校验服务器校验token的有效性,若有效告诉demo1可以登录,此时demo1会校验是否有cookie,如果没有cookie则生成cookie存放内存或数据库,再次登录则直接登录

以上大致为单点登录的流程逻辑

阿帕奇有开源的sso框架CAS,大致原理相同,有兴趣的可以了解下

sso客户端代码链接
sso服务端代码链接

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值