文档章节

单点登录系统SSO实现

o
 osc_wws45aot
发布于 2019/08/20 14:44
字数 539
阅读 4
收藏 0

精选30+云产品,助力企业轻松上云!>>>

前些天被问到单点登录了,而据我当时做的这个模块两年了,现在重新温习并记录下,方便以后快速回忆起来

一、什么是单点登录系统

SSO全称Single Sign On。SSO是用户只需要登录一次就可以访问所有相互信任的应用系统

二、为什么需要单点登录系统

分布式集群的项目因为每个模块都部署在不同的机器。如果第一次在A系统登录,第二次访问B系统,这个时候B系统并没有保存用户状态,或者第一次nginx转发到A系统的机器1,在机器1登录,第二次访问A系统,nginx转发到了机器2,这些情况下都是需要重新登录。

为了解决这种情况,可以有两种机制:单点登录、tomcat配置session复制

session复制在集群下,代价过高,可能导致系统资源消耗过多。

所以构建一个单点登录系统,提供一个接口,供其他模块调用,来检测用户登录状态。实现就是使用redsi来模拟session,对session统一管理

三、怎么实现

1、首先sso系统提供登录,校验用户,登出等基本用户操作

2、登录的时候将用户信息保存到redis中,并设置过期时间,(key可以含有token,value为用户信息),请将用户的token响应给浏览器cookie,并设置cookie的domain(domain用来设置域,方便子域名系统能把cookie携带过来)

3、登录校验:最好写成一个过滤器,用户每次请求当前domain设置的域名及其子域名的时候,会携带用户cookie,过滤器从cookie里取token,去redis里查询用户信息,查到就放行,未查到就跳转到登录页面

4、登出:用户发起登出请求,登出接口获取到cookie中的用户的token,然后进行缓存请求,并清空cookie

 

 

参考链接:https://www.jianshu.com/p/cf41a10da952

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
分布式系统Spring+Redis+SSO

课程目录: 1、分布式框架系统整体介绍 2、规划工程结构、使用maven进行构建 3、分布式系统框架搭建、SSM工程搭建 4、分布式系统框架搭建、SSM的测试 5、Restful原理分析和服务工程搭建 6、R...

osc_wmp6jp1c
2019/10/28
22
0
单点登录(SSO)看这一篇就够了

背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。 但随着企业的发展,用到的系统随之增多,运营人员在操作...

小忽悠
2018/09/06
0
0
单点登录(SSO)详解

背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。 但随着企业的发展,用到的系统随之增多,运营人员在操作...

osc_agn9pfb0
2018/09/06
1
0
单点登录

SSO sso单点登录,外部来解决登录问题-alasend,阿拉神登 单点登录(single sign on),简称为 sso,是目前比较流行的企业业务整合的解决方案。sso的定义是在多个应用系统中,用户只需要登录一...

taadis
2018/11/17
0
0
浅谈单点登陆(SSO)

背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。 但随着企业的发展,用到的系统随之增多,运营人员在操作...

osc_6pr34qkg
04/16
4
0

没有更多内容

加载失败,请刷新页面

加载更多

dict.items()和dict.iteritems()有什么区别?

问题: Are there any applicable differences between dict.items() and dict.iteritems() ? dict.items()和dict.iteritems()之间是否有适用的区别? From the Python docs: 从Python文档中......

法国红酒甜
58分钟前
20
0
R中“ =”和“ <-”赋值运算符有什么区别?

问题: What are the differences between the assignment operators = and <- in R? R中赋值运算符=和<-之间有什么区别? I know that operators are slightly different, as this example ......

fyin1314
今天
20
0
之间的区别 和

问题: I'm learning Spring 3 and I don't seem to grasp the functionality behind <context:annotation-config> and <context:component-scan> . 我正在学习Spring 3,并且似乎不太了解<......

javail
今天
15
0
业内首款,百度工业视觉智能平台全新亮相

本文作者:y****n 业内首款全国产化工业视觉智能平台——百度工业视觉智能平台亮相中国机器视觉展(Vision China),该平台所具有的核心AI能力完全自主可控,在质检、巡检等场景中具有高效、...

百度开发者中心
昨天
7
0
我们如何制作xkcd样式图? - How can we make xkcd style graphs?

问题: Apparently, folk have figured out how to make xkcd style graphs in Mathematica and in LaTeX . 显然,民间已经想出了如何在Mathematica和LaTeX中制作xkcd风格的图形。 Can we d......

富含淀粉
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部