SSO单点登录

基于redis单点登录,SSO 单点登录,SSO CAS 查看传统的的登录方式 大家可以看到最后的用户信息 是存储到 session 中的。 现在有一个致命的问题 服务器中的session不是共享的,如果我们的项目的量级很大需要分布式服务器,那么就需要用户高频率的操作登录功能。这对于用户体验来说是残忍的,也是致命的。 传统登录问题: session默认是存储在当前服务器的内存中,如果是集群,那么只有登录那台机器的内存中才有这个session 比如说我... 阅读详情

什么是SSO

SSO全称为Single Sign On,即单点登录,指在多个应用系统的集合中,用户只需要在任意一个系统中登录成功,就能在其他系统同样保持登录状态,极大提高用户体验度,比如在淘宝(www.taobao.com)登录成功后,打开天猫的主页(www.tmall.com),用户同样处于登录状态。

​

Cookie作用域

Cookie有两个重要属性:Domain和Path,用来指示cookie的作用域。

浏览器提交请求时,一个cookie需要同时满足如下两点,才会被添加到请求头提交到请求服务器:

  1. 请求的域名必须是此cookie的Domain属性的子域名或者就是就是Domain本身。

  2. 请求的路径必须是此cookie的Path属性的子路径或者本身。

​

SSO实现原理

保持登录状态主流方式是通过登录cookie来实现的,一般来说有两个条件:

  1. 不同系统中对于登录cookie的验证方式一致,比较好的方式就是实现一个统一登录模块。

  2. 不同系统可以共用一次登录产生的登录cookie。

实现的难点主要是第二点,对于拥有同一个顶级域名的系统,实现cookie共享就很简单。比如同花顺网站t.10jqka.com 和 media.10jqka.com这两个系统,因为顶级域名相同,属于cookie的作用域内。只需要将cookie设置到 *.10jqka.com,这样请求上述两个网站就会发送对应的cookie。但如果请求了www.iwencai.com,因为之前cookie的作用域是 *.10jqka.com,所有请求中并不会附带登录cookie。

 

​如何解决Cookie作用域问题

解决作用域的方案初步考虑有两个

① 通过redis避免跨域请求

用户登录成功后,可以将cookie的值存入各系统公共的redis集群,key用于判断用户,只能通过用户请求ip来区别,当用户登录其他系统应用时,系统获取用户ip去redis集群查值,如果有值就取出来将cookie设置到当前系统的域名下。

但是,这个方法存在很多致命缺陷!如下:

  1. redis值得过期时间应该与cookie过期时间一致,一般为1周,对于访问量极大的网站,redis集群将面临很大考验。

  2. 除了根据ip我暂时没想出其他有效的方法来区分一个用户,但是对于现在的网络环境,用户的ip并不是独占的,极有可能A用户下线后,他使用的IP就分给了B用户,那么B用户就可以直接登录A用户的账号了!

②直面跨域,通过跨域cookie获取token

redis的key使用一个随机生成的token来代替IP,并且将token值存入cookie,这样产生的问题就是用户访问其他域名下的系统时,因为同源策略,无法获取之前登录cookie中的token值,更别说整个cookie值了。这时就必须要跨域去取token值。

这时候统一登录入口的优势就出来了,因为通过统一入口登录的系统,在统一登录的网站下一般都存有该作用域下的cookie,这样后面不管新增多少系统,都只需要向统一登录的域名请求跨域cookie即可。

试想如果A、B、C两个系统各自实现了登录入口且域名各不相同,那么如果在A上登录成功,那么B、C需要向A域名请求跨域cookie,如果是B上登录成功,那么C代码中又要改成向B域名请求cookie,后期系统躲起来,对于后期维护是非常麻烦的。

如何跨域请求cookie请看这里:浏览器安全。

获取到cookie的token以后,就可以到redis集群获取cookie,然后在当前域名下设置cookie,就实现了单点登录的功能。

这里可以有个优化,可以在请求跨域cookie这个步骤再将cookie的信息存入redis,而且此时可以不用将token存入cookie,直接将token凭借到请求源url,类似做一个回调,然后请求源获取到token值就可以进行cookie的后续处理了!此时redis数据的生命周期可以设置成几十秒,并且只有在需要SSO的时候才会向Redis存入数据。极大减轻了Redis的负担。

 

③跨域获取cookie

此方案与方案二类似,只是不需要将cookie存储到redis中,而是直接通过ajax将登录cookie取出来,然后设置到本地即可,具体实现步骤这里就不详述了。

​

单点登录SSO(一) 一、引子 问题1:什么是SSO?单点登录是什么? 回答1:SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。如: 如图所示,图中有4个应用,分别是Application1、Applicatio... 阅读详情

相关推荐

CAN收发器选型避坑指南:TJA1051T与TJA1051T/3的硬件兼容性问题实录

本文详细解析了CAN收发器TJA1051T与TJA1051T/3的硬件兼容性问题,通过实测数据和故障案例揭示了VIO引脚的关键差异及其对系统的影响。提供从选型到验证的完整防坑方案,帮助开发者避免常见设计错误,确保CAN总线通信的稳定性。

weixin_42715608的博客 459

爬虫技术-cookie反爬讲解

COOkIE反爬虫 1 cookie反爬简介 Cookie 反爬虫指的是服务器端通过校验请求头中的 Cookie 值来区分正常用户和爬虫程序的手段,这种手段被广泛应用在 Web 应用中。 1.1 cookie加密原理 2 cookie逆向实践 2.1 逆向目标 地址:http://www.zjmazhang.gov.cn/hdjlpt/published?via=pc 接口:http:...

shifengboy的博客 6397

Matlab_Marr小波尺度变换图

多尺度的连续小波变换分解后时间尺度图 墨西哥Marr小波函数: %delta 小波变换尺度 %N     小波函数的长度 %s     原始信号 %g     原始信号某个尺度下的小波变化系数 function g=Singularity_Detection(delta,N,s); %保持信号长度 n=length(s); % 构造墨西哥小帽小波函数 for index_x=1

桔色小西瓜 6602

pywencai终极Cookie获取完整指南:快速掌握同花顺问财数据爬取核心技术

在金融数据采集领域,pywencai作为获取同花顺问财数据的利器,其成功运行的关键就在于Cookie的正确获取。本文将为你揭秘Cookie获取的完整流程,助你快速掌握这一核心技术。🚀 ## 为什么Cookie是pywencai项目的生命线 Cookie在同花顺问财平台中不仅仅是身份验证的凭证,更是数据访问权限的通行证。没有正确的Cookie配置,即使拥有最强大的爬虫代码,也无法获取到完整、准

gitblog_00359的博客 1320

CCS8.1 导入CCS3.3工程方法

    CCS3.3作为开发人员使用最广开发工具,研究人员手上存在不少该版本的建立的程序版本,然而随着TI公司推出高级版本的CCS平台,在新的平台上集成了更加丰富的功能和优点。利用新版本的平台在开发和编译旧版本工程上可以节省大量时间和精力。在使用新版本开发3.3版本工程时,首要解决的就是加载3.3的工程文件,现将加载过程记录如下: 第一步:Project->Import Legacy CC...

1万+

【eNSP 华为模拟器】小型校园网模拟环境的设计与配置(附eNSP源文件)

【eNSP 华为模拟器】小型校园网模拟环境的设计与配置 一、实验概述 二、交换机的配置 2.1 二层交换机的配置 2.2 三层交换机的配置 三、路由器的配置 四、实验结果 五、实验总结 一、实验概述 按照以下的拓扑连接,自行设计VLAN和IP地址等网络参数,实现PC1到PC2的IP通信。其中,R1,R2为路由器;LSW1,LSW4为3层交换机;LSW2,LSW3 ,LSW6, LSW7为2层交换机;CLIENT1-CLIENT12为PC机。 拓扑图 课程设计要求:(1)IP地址自行规划设计,应该清晰地

qq_43757282的博客 4万+

爬虫:破解同花顺网js加密动态生成请求中所需要的cookie

看了半天帖子都是都是通过selenium破解js加密的,个人感觉用selenium破解js加密效率太低,而且繁琐,根据目前业务需求就自己研究了一下同花顺的js加密。

weixin_41406913的博客 1万+

CDH Hue连接Hbase报错TSocket read 0 bytes

问题描述 安装好CDH集群后,在Hue中查看HBase信息时,Hue界面报错如下: Api 错误:TSocket read 0 bytes Hue日志报错: exceptions_renderable ERROR Potential trace: [('/opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hue/apps/hbase/src/hbase/api.py', 46, 'query', 'return getattr(self

邢为栋 3493

android中获取网页cookie的工具方法

1.应用场景 我自己的应用场景是,做一个股票分时图控件demo,需要抓取同花顺网站上的分时图数据,但是这个分时图数据的链接做了cookie校验,直接用httpurlconnection访问,返回403。这个分时图数据的链接在浏览器上也是不能直接打开的,先要在浏览器上访问同花顺股票的其他网页链接,网页里面会加载一段js代码,js代码会设置cookie。这个工具类就是模仿浏览器,先加载普通网页,得到

carterrao的专栏 1万+

优化求解器性能:当分支切割算法中的gap停滞不前时如何应对

本文深入探讨了当分支切割算法求解复杂整数规划问题时,gap停滞不前的根本原因与应对策略。文章指出gap停滞源于上界(找不到更优整数解)或下界(证明过程缓慢)提升受阻,并提供了从模型改写、自定义割平面、调整搜索策略到参数调优等一系列实战方法,帮助优化工程师有效打破求解僵局,推动gap下降。

weixin_29294597的博客 381

实现真正的「人机」对战:引入三方 AI 引擎

引入三方 AI 引擎 前边,我们实现了与云库对战的象棋游戏。这一节中,我们将开始实现真正的「人机」对战 — 人与手机 AI 之间对弈; 实现一套象棋 AI 工程浩大,这个工作我们后续文章会做一番介绍。现代软件工程并不主张每个人都「造轮子」,因此我们要有「站在巨人肩膀上」的小智慧。 本节概要 从 github 寻找开源中象引擎 梳理引擎接入的思路 寻找适合的开源中国象棋引擎 github 上有大...

tosmart的博客 983

单点登录(SSO)

什么是单点登录? 单点登录的来源 单点登录技术实现 Cookie的属性详细介绍 Koa Cookie 的设置与获取 利用Node.js koa异步中间件——用户登录验证拦截器

qq_41913971的博客 3万+

扫地机器人设计与实现——基于嵌入式系统的智能家居解决方案

本文介绍了基于嵌入式技术的扫地机器人设计与实现。通过利用STM32单片机、传感器、驱动系统等硬件组件,并结合路径规划与控制算法、远程控制等软件技术,设计出了一款具有智能避障、路径规划、自动充电等功能的扫地机器人。系统的开发不仅提高了清洁效率,也为进一步研究和优化扫地机器人提供了实践基础。

2201_76125393的博客 1639

SSO单点登录原理

目录一、cookie及session二、普通的登录认证机制三、什么是SSO?四、SSO的优点五、不同场景下的单点登录5.1 同域的 SSO5.2 跨域的 SSOSSO的具体流程(以下步骤与图中的步骤一致) 一、cookie及session 在了解SSO之前,我们先了解以下知识:「cookie及session」 具体看这篇介绍---- 「cookie 及 session 介绍 」 二、普通的登录认证机制 普通登录认证机制的过程: 用户访问一个系统,这个系统需要登录,于是向后台服务器发送登录请求; 数据库中根

SuZhan0711 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

单点登录SSO

单点登录的概念以及一些实现方法

ylm1205625299的博客 2405

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SpringCloud入门 —— SSO 单点登录

本文适合初学者,如有不足或错误之处,还请大家在下方留言指正。单点登录SSO (Single Sign On) 是指在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。

pingguocu3的博客 1659

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SSO 单点登录

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。实现 SSO 的主要工具是 Cookie

Robot 5333

单点登录(SSO)看这一篇就够了

单点登录(SSO)看这一篇就够了

乌龟的专栏 1万+

[Java 基于SSO实现单点登录]

顺风顺水

汤圆的博客 2731

单点登录sso原理及代码实现

什么是单点登录 一个账户在多个系统上实现单一用户的登录 为什么用单点登录 单点登录可以做到在不记录用户密码的情况下,实现不同系统之间的资源共享,自动登录不安全,单点登录,一处登录,处处都可用,不用做多余的登录操作 引用一个很经典的案例 比如现在有OA系统、门户系统、人力资源管理系统、档案管理系统、生产管理系统、xx系统等,这么多个系统在一个公司里面,如果一个用户需要使用这么多个系统,那每天都要登录...

IT界的一只菜鸟 6117

SSO单点登录流程详解

单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

码农札记 1万+

CAS实现SSO单点登录详解

一. 基本概念 1. SSO 单点登录 (Single Sign-On) 是目前比较流行的服务于企业多系统整合的解决方案之一,使得在多个系统中,用户只需要登录/退出一次就可以访问/退出所有相互信任的应用系统。 2. CAS 认证中心 (Central Authentication Service) 是SSO的一种实现,Yale大学开源了一个CAS项目(感兴趣的可以自行学习),本文实现了一个简化版的CAS(github源码地址) 二. 原理 ...

yiyefuchen的博客 1627
上一篇: 加密算法-流密码加密
下一篇: 进程间通信(IPC)
jj_jameholl
博客等级 码龄10年 5粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值