OAuth 2.0 授权码请求 OSS单点登录

1 OAuth 2.0

https://blog.csdn.net/m0_38031406/article/details/88844190

2 SSO(Single Sign On)

在多个系统中,只需要登陆一次,就可以访问其他相互信任的应用系统.
SSO 与CAS(Central Authentication System)这个概念密切相关,账户集中由某个服务管理,SSO服务只负责登陆认证

在这里插入图片描述

2.1 基本原理

用户访问website1
① 用户访问website1 系统,website1系统需要认证, 用户当前没有登陆

② website1给客户端返回302重定向响应, 客户端重定向到SSO服务页

交互过程确实是临时跳转,下面传参false, 返回302临时重定向响应,用户并没有登陆SSO系统,所以SSO系统会返回登陆界面
③ 用户在SSO登陆界面输出账户/密码
④ 登陆成功,SSO会在客户端写入一个 cookie for sso并产生一个301重定向响应,客户端将重定向到原website1地址,该请求附带了SSO给与这次认证成功的 ticket,http://www.website1.com?ticket=XXXX-OOOO-XXXX-OOOO
⑤ website1收到以上重定向请求,解析QueryString中的ticket, 向SSO做一次ticket验证;验证通过向客户端写入本站的 cookie for website

⑥ 上面第5步,浏览器地址会显示:http://www.website1.com?ticket=XXXX-OOOO-XXXX-OOOO, 在本站验证通过之后,最好再做一个重定向,返回业务首页:www.website1.com, 本步骤不是SSO登陆的标准流程。

用户访问website2

① 用户访问website2, 用户在website2并没得到认证;跳转回 SSO

② SSO服务检测到该 用户在SSO域下存在Cookie for sso, 认定该用户已经登陆,故跳转回website2, 如上也会携带认证ticket

③ 如上,website2收到 website2.com?ticket=XXXX-OOOO-XXXX-OOOO请求, 会做一次SSO验证;验证成功,写入本站cookie for website2

2.2 注销登陆

退出SSO登陆, 要做两件事情:

  • 向SSO发起api请求,请求SSO删除用户在SSO域下的认证cookie for sso

  • 移除本站的cookie for website1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值