手撕公司SSO登陆原理,看了都说好!

arcgis建筑数据的矢量化(一) 简单来说,建筑数据的获取无外乎是矢量化和去网站下载 无奈的是,osm和网上的建筑数据只有全国的主要城市,实在是为难我们这些小城市的,百度和天地图上是有建筑数据,无奈人家不要开放下载啊,所以就只能矢量化咯, 矢量化,无外乎动和自动,动就是新建shp面动勾绘,这里就不讲了,我们来看看自动矢量化 自动矢量化在arcgis中主要是利用arcscan和栅格转面(栅格转面这个效果真是一言难尽,所以我们主要讨论arcscan) 同时我们矢量化也不一定要局限于arcgis... 阅读详情

点击上方 "程序员小乐"关注, 星标或置顶一起成长

每天凌晨00点00分, 第一时间与你相约

每日英文

Never expect, never assume, and never demand. Just let it be, because if it's meant to be, it will happen the way you want it to.

永不期待,永不假设,永不强求。顺其自然,若是注定发生,必会如你所愿。

每日掏心

人生最遗憾的莫过于:轻易地放弃了不该放弃的,固执地坚持了不该坚持的。。


来自:nodotnet | 责编:乐乐

链接:cnblogs.com/JulianHuang/p/11811239.html

程序员小乐(ID:study_tech)第 695 次推文   图片来自网络

往日回顾:滴滴程序员年薪80万却被亲戚鄙视:钱多有啥用,我儿子二本大学教师

   正文   

Single Sign-on

SSO是老生常谈的话题了,但部分同学对SSO可能掌握的也是云里雾里,一知半解。本次手撕公司的SSO原理,试图以一种简单,流畅的形式为你提供有用的SSO原理。

按照本人一贯行文风格,我们先说什么是SSO,为什么要提出SSO?

SSO:在多个系统中,只需要登陆一次,就可以访问其他相互信任的应用系统, 这个技术的提出解决了:

  • 企业运行了多个服务,而账号需要集中统一管理

  • 终端用户登陆一次,即可使用一个账户享受所有不同域名下服务。

 SSO 与CAS(Central Authentication System)这个概念密切相关,账户集中由某个服务管理,SSO服务只负责登陆认证。

登陆认证与【服务端在浏览器上写入的认证Cookie】密切相关, Cookie 有一系列重要属性:Domain,Path, Expiration,HttpOnly 决定了该Cookie 在客户端的作用域、作用范围、有效时间、有效操作方式

原理

用户首次访问 website1

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

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

# 交互过程确实是临时跳转,下面传参false, 返回302临时重定向响应

  context.Response.Redirect(ssoURL, false);

用户并没有登陆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 

重难点解读

① SSO认证成功,写入的cookie for sso, 是登陆到其他系统的关键

② website1收到SSO发起的重定向请求,解析出ticket=XXXX-OOOO-XXXX-OOOO, 为什么还要做一次SSO验证?

因为website1收到的带ticket请求,有可能是伪造, 所以在website1中需要去SSO验证一次。

③ 标准的CAS登陆流程有两次302客户端重定向, 分别由原站点website1和SSO启动。

  理论上 整个流程由服务端重定向也是可以的 ??看官若发现有漏洞,可在评论区回复。 

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

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

     - 移除本站的cookie for website1

⑤ 每个website,至少需要如下sso配置     

"SsoOptions": {    "BaseAddress": "https://sso-cas.sso.com",       // 基地址    "LoginPath": "/login",                             // sso登陆地址    "LogoutPath": "/api/logout",                       // 退出sso登陆的api地址    "ValidateTGTPath": "/api/validate",                // 验证ticket的api地址     "UserInfoPath": "/api/v2/userinfo"                 // 从sso拿到登陆用户信息的api地址  },

 

That' all,这是自己对SSO登陆的一些理解, 本图文希望以流畅的思路记录SSO流程, 各位看官不要吃快餐,知其然更知其所以然很关键。 

欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,学习能力的提升上有新的认识,欢迎转发分享给更多人。

欢迎各位读者加入程序员小乐技术群,在公众号后台回复“加群”或者“学习”即可。

猜你还想看

阿里、腾讯、百度、华为、京东最新面试题汇集

Java8 中用法优雅的 Stream,性能也"优雅"吗?

Spring Boot & Restful API 构建实战

Redis的内存淘汰策略,看了都说好!

关注「程序员小乐」,收看更多精彩内容
嘿,你在看吗
实战解析:如何用Python逆向破解FastMoss的TikTok数据加密签名(附完整代码) 本文详细解析了如何用Python逆向破解FastMoss平台的TikTok数据加密签名机制,包括MD5加密算法和JS逆向分析。通过完整的Python代码示例,帮助开发者理解签名生成原理并实现自动化请求,提升数据获取能力。 阅读详情

相关推荐

企业级sso单点登录demo

本demo适合不会单点登录的java开发者,看完本demo你完全可以开始编写企业级的单点登录模块。

单点登录(SSO)详解——超详细

此种实现方式比较简单,但不支持跨主域名。

qq_53895518的博客 3万+

BBS论坛基于jsp+mysql技术

这是一个具有基本功能的BBS论坛系统,是用jsp+mysql技术开发的,里面包括有源代码还有bbs数据库文件

深入理解企业级单点登录 (SSO):原理、实现与实践

本文深入探讨了企业级单点登录(SSO)的基本原理、核心技术及实现方案,涵盖SAML、OAuth/OIDC、Kerberos、CAS和基于JWT的方案,同时解析了集中式、联邦和高可用SSO架构设计,并讨论了跨域挑战与安全最佳实践。通过丰富的Mermaid图示和实践案例,文章为企业构建安全高效身份认证系统提供了全面的技术指南和实践经验。

专注分享编程开发与技术进阶干货! 1648

SSO单点登录:全面详解与实现指南

1、定义单点登录(Single Sign - On,简称 SSO)是一种身份验证机制,它允许用户使用单一的凭据(如用户名和密码)访问多个相互信任的应用系统。在这种模式下,用户只需登录一次,就可以在不同的应用之间无缝切换,而无需为每个应用单独进行登录操作。2、优势用户体验提升:用户无需记住多个账号和密码,减少了登录操作的繁琐性,提高了用户体验。管理效率提高:对于企业来说,管理用户账号和权限变得更加简单,只需要在单点登录系统中进行统一的用户管理和认证授权。安全性增强。

Yaml4的博客 5485

Pictures of Ascii Art

简述 指尖上的艺术 - 通过键盘上韵律般的敲敲打打,一幅幅美轮美奂的艺术作品便跃然于屏。 这样的画作,包含了无穷的创意,糅合了现代计算机科技与传统绘画艺术,难道还有比这更令人陶醉的美妙事物吗? 简述 天使 异形 动物 婴儿 鸟类和昆虫 生日 建筑 卡通 服饰 电脑 几何图形 万圣节 岛屿 Love 情侣 男人 机器人 骷髅 运动 文本 运输 卡车 名人 女人 其它 更...

weixin_30835649的博客 862

公司SSO登陆原理

Single Sign-on   SSO是老生常谈的话题了,但部分同学对SSO可能掌握的也是云里雾里,一知半解。本次公司SSO原理,试图以一种简单,流畅的形式为你提供有用的SSO原理。   按照本人一贯行文风格,我们先说什么是SSO,为什么要提出SSOSSO: 在多个系统中,只需要登陆一次,就可以访问其他相互信任的应用系统, 这个技术的提出解决了: 企业运行了多个服务,而账号需...

微赚淘客开发者博客 166

cas单点登陆成功 返回500错误_公司SSO登陆原理,看了都说好

点击上方 "程序员小乐"关注, 星标或置顶一起成长 第一时间与你相约 每日英文 Never expect, never assume, and never demand. Just let it be, because if it's meant to be, it will happen the way you want it to. 永不期待,永不假设,永不强求。顺其自然,若是注定发生,必会如...

weixin_42309722的博客 1105

同时登陆 多个账户_公司SSO登陆原理

Single Sign-on  SSO是老生常谈的话题了,但部分同学对SSO可能掌握的也是云里雾里,一知半解。本次公司SSO原理,试图以一种简单,流畅的形式为你提供有用的SSO原理。  按照本人一贯行文风格,我们先说什么是SSO,为什么要提出SSOSSO: 在多个系统中,只需要登陆一次,就可以访问其他相互信任的应用系统, 这个技术的提出解决了:企业运行了多个服务,而账号需要集中统一管理终端...

weixin_28716723的博客 324

公司SSO登录原理

Single Sign-onSSO是老生常谈的话题了,但部分同学对SSO可能掌握的也是云里雾里,一知半解。本次公司SSO原理,试图以一种简单、流畅...

qq_30236895的博客 211

cas单点登陆成功 返回500错误_公司SSO登陆原理

精品推荐国内稀缺优秀Java全栈课程-Vue+SpringBoot通讯录系统全新发布!Docker快速上视频教程(无废话版)【免费】作者:nodotnet转载自:https://www.cnblogs.com/JulianHuang/p/11811239.htmlSingle Sign-on  SSO是老生常谈的话题了,但部分同学对SSO可能掌握的也是云里雾里,一知半解。本次公司的...

weixin_39647499的博客 575

Spring Security、oauth2、单点登陆SSO的关系

概述 网上有很多Spring Security和 oauth2的介绍,但是对于初学者来说,上比较复杂,本篇从原理上梳理一下两者之间的联系和区别 1. 什么是Spring Security 参见 【Spring Security】基本功能介绍 spring security 的核心功能主要包括: 认证 (你是谁) 通过注解 @EnableWebSecurity开启 简单来说,就是需要登录,你需要输入用户名和密码,才能访问某个url。 授权 (你能干什么) 不需要通过指定的开关开启,而是通

m0_45406092的博客 1万+

SSO单点登陆

一、理论基础 1.1、为什么需要做单点登陆系统 大型互联网公司中,项目旗下可能会有多个子系统,每个登录实现统一管理,多个账户实现统一管理。 例子:比如阿里旗下支付宝,咸鱼等,只要有一个系统登录情况下,其他就不需要登录了(或者直接拿一个授权就行了) (XXL-SSO是国产的,CAS相对来说好点) 1.2、单点登陆系统实现思路 核心:靠认证授权中心 1.3、单点登陆系统框架 xxl...

RuiKe的博客 1530

单点登陆SSO原理

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 概述 编辑 很早期的公司,一家公司可能只有一个Server,慢慢的Server开始变多了。每个Server都要进行注册登录,退出的时候又要一个个退出。用户体验很不好!你可以想象一下,上豆

苏美尔人的天空 1035

SSO单点登陆原理

SSO是(Single Sign On)简称,用户可以在一个相互信息的应用程序堆中,只登陆一次,就可以访问所有应用程序。举一个通俗的例子,作为“马云背后的女人”,大家都有这样的体验,登陆一次某宝,就可以在各种什么猫,什么划算上使用。这样就是单点登陆的好处,为用户提供了很多的方便而不用从某宝跳到某猫还得再登陆一次。。。            上面这个例子,很好的说明了单点登陆原理。只要产生一个信

好记性不如烂笔头--玲博小记 878

SSO 单点登陆

1.单点登陆概述: 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 很早期的公司,一家公司可能只有一个Server,慢慢的Server开始变多了。每个Server都要进行注册登录,退出的时候又要一个个退出。用户体验很不好!。如果不用单点登陆,你可以想象一下...

yangyang的专栏 723

SSO单点登录实现原理与总结】

一、什么是单点登录SSO(Single Sign-On)        SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。 二、单点登录解决了什么问题   解决了用户只需要登录一次就可以访问所有相互信任的应用系统,而不用重复登录。        例如CSDN中

HilaryHe 1万+

编写你自己的单点登录(SSO)服务

王昱 yuwang881@gmail.com   博客地址http://yuwang881.blog.sohu.com摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现

javachannel的专栏 14万+
上一篇: 5个小技巧让你写出更好的 JavaScript 条件语句
下一篇: 微软将关闭安卓iOS平台Cortana语音助手大战惨遭失败
吧主
博客等级 码龄12年 1242粉丝 116原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值