单点登录SSO设计
2020-10-19 13:46:06 0 举报
登录查看完整内容
单点登录
作者其他创作
大纲/内容
浏览器
11.系统A登录成功
单点登录相关文章https://blog.csdn.net/weixin_39585051/article/details/109158838https://mp.weixin.qq.com/s/Un51lr4OB4apgDjhauM7uwhttps://ken.io/note/sso-design-implementhttps://blog.csdn.net/zhangjingao/article/details/81735041https://www.cnblogs.com/niceyoo/p/11305143.htmlhttps://www.jianshu.com/p/613e44d4a464cookie、session、token区别https://mp.weixin.qq.com/s/X0F1xE7MwKM-TIXZs4GWcwcookies、sessionStorage和localStorage解释及区别https://www.cnblogs.com/pengc/p/8714475.html跨域解决方案 https://m.imooc.com/learn/chapter/947https://blog.csdn.net/yup1212/article/details/87633272
9.重定向至系统A url:http://sysa.candy.com?otvt=xxx
从第二步开始重复
1.浏览器输入sysa.candy.com
SSO认证中心
单点登录1、非跨域单点登录方案,向主域名下种cookie或localstoraage设置认证数据即可2、跨域单点登录方案A、向每个认证的网站种cookieB、通过前端向每个有权限的网站域名种localstorage认证信息C、认证中心,这种方案是最常用的方案
2.自我检测没有cookie需要登录
7.sso认证通过
系统A
系统B
//后端向header存入token//浏览器默认是不让获得header中其他值,先指定一个头部,再存入数据//HttpServletResponse responseresponse.setHeader(\"Access-Control-Expose-Headers\
前端
6.输入用户名&密码
完全跨域单点登录:1.系统A域名:sysa.candy.com2.系统B域名:sysb.happy.com3.认证系统域名:sso.auth.com
4.认证中心从当前域cookie中取是否已经认证过,没有认证过返回登录界面,如果本域有token跳至第9步
//后端从header取出token//HttpServletRequest requestString token = request.getHeader(\"tokenId\");//这里需要取出redis中token与前端获取到token进行比较,以及null判断等
未登录信息
SSO认证
认证中心没有获取到令牌,返回未登录状态要求用户登录
注意:1.3、4步骤需要访问http://sso.auth.com的主页主动请求下认证中心。2.步骤8生成的otvt生成后可以存redis中有效期设置为30s,如果30s内没有用户为携带令牌请求,此令牌自动失效,30s内携带令牌请求返回认证成功信息同时删除令牌,防止被抓到后二次利用
5.跳转至sso登录界面
10.获取到otvt解析成功,重复附加1步骤,收到认证信息,系统a模拟登录,放自己的token
3.重定向跳转至SSO登录界面 url: http://sso.auth.com?url=http://sysa.candy.com
12.浏览器访问sysb.happy.com
8.认证用户名密码通过,向本域cookie中放如token,同时生成一个令牌otvt(one time valid token)
// ajax请求解析header中的tokenfunction a() { $.ajax({ type: \"POST\
附加1:调用sso认证中心接口
0 条评论
回复 删除
下一页