OAuth2.0与单点登录的区别

news2024/9/28 9:31:54

本文说下OAuth2.0与单点登录的区别

文章目录

  • 概述
  • 什么是单点登录
  • 单点登录和Oauth2.0的区别
  • 单点登录的实现
  • 本文小结


概述

SSO是Single Sign On的缩写,OAuth是Open Authority的缩写,这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。很多人会将其混为一谈,其实这两个还是有些区别的

在这里插入图片描述


什么是单点登录

简单的说就是在多个应用的系统中,用户只需要登录一次就可以访问权限范围内的所有应用子系统,同样的注销也只需要注销一次。

比如百度这个网站,用户只要登录了百度的官网,那么对于百度百科、百度知道、百度贴吧等网站都是处于登录状态,这就是一个典型的单点登录的例子。


单点登录和Oauth2.0的区别

虽然Oauth2.0能够实现单点登录,但是在一些方面还是有些区别的,如下:

  • 信任角度:Oauth2.0授权服务端和第三方客户端不属于一个互相信任的应用群,比如微信和第三方,这就不是一个公司的产品;然而单点登录的服务端和接入的客户端都在同一个相互信任的应用系统中,比如百度官网、百度百科,这都是一个公司的产品
  • 资源角度:OAuth2.0授权主要是让用户自行决定——“我”在OAuth2.0服务提供方的个人资源是否允许第三方应用访问;而单点登录的资源都在客户端这边,单点登录的服务端主要用于登录,以及管理用户在各个子系统的权限信息。
  • 流程角度:OAuth2.0授权的时候,第三方客户端需要拿预先“商量”好的密码去获取Access Token;而单点登录则不需要。

Oauth2.0完全可以实现单点登录,但是更加侧重于对于己方资源的保护,了解了这两种的区别才能正确的选择


单点登录的实现

Oauth2.0实现单点登录非常简单,比如微服务下的各个子系统接入Oauth2.0的认证服务,用户从认证服务获取token后,直接通过网关转发给下游子系统则可以实现只需要一次登录

其实除了Oauth2.0以外,还有很多框架能够实现单点登录,比较经典则是CAS框架

以下是CAS框架的官方流程图。特别注意:SSO是一种思想,而CAS只是实现这种思想的一种框架而已

在这里插入图片描述

上面的流程大概为:

  1. 用户输入网址进入业务系统Protected App,系统发现用户未登录,将用户重定向到单点登录系统CAS Server,并带上自身地址service参数
  2. 用户浏览器重定向到单点登录系统,系统检查该用户是否登录,这是SSO(这里是CAS)系统的第一个接口,该接口如果用户未登录,则将用户重定向到登录界面,如果已登录,则设置全局session,并重定向到业务系统
  3. 用户填写密码后提交登录,注意此时的登录界面是SSO系统提供的,只有SSO系统保存了用户的密码
  4. SSO系统验证密码是否正确,若正确则重定向到业务系统,并带上SSO系统的签发的ticket
  5. 浏览器重定向到业务系统的登录接口,这个登录接口是不需要密码的,而是带上SSO的ticket,业务系统拿着ticket请求SSO系统,获取用户信息。并设置局部session,表示登录成功返回给浏览器sessionId(tomcat中叫JSESSIONID)
  6. 之后所有的交互用sessionId与业务系统交互即可

整个流程还是相对比较复杂的,当然CAS这个框架的配置也是相对比较复杂,了解过的人都想放弃,关于CAS如何去搭建,在后面会单独介绍

最常见的例子是,我们打开淘宝APP,首页就会有天猫、聚划算等服务的链接,当你点击以后就直接跳过去了,并没有让你再登录一次

在这里插入图片描述


本文小结

Oauth2.0和单点登录的区别需要理解清楚,相对来说Oauth2.0实现单点登录更加简单,CAS虽然能够实现单点登录,但是服务部署和配置更加复杂,不易于上手,当然目前也有很多的系统在使用CAS,在选择的时候开发者根据这些区别和复杂程度去决策。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/688252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决联网时自动打开浏览器转到必应msn网址的问题

现象 开机后或者断网重连之后,系统自动打开默认浏览器(不管是IE还是谷歌,或其他的浏览器)网址为http://go.microsoft.com/fwlink/?LinkID219472&clcid0x409接着转到http://cn.bing.com/ 或者 https://www.msn.com/ 解决方法…

Kafka系列 - kafka 副本|AR|ISR|OSR|Leader|Follower|HW|LEO

文章目录 01. kafka 副本信息02. kafka 中 ISR、AR和OSR代表什么?03. kafka 中 ISR的伸缩指什么?04. 什么情况下一个broker会从ISR中踢出去?05. kafka 副本和ISR扮演什么角色?06. kafka 副本长时间不在ISR中,意味着什么…

buuctf re(二)+ web CheckIn

目录 re xor helloword reverse3 web SUCTF 2019 CheckIn xor 1.查壳 64位,无壳 2.ida,f5查看伪代码 3.跟进global dq是八个字节,汇编数据类型参考汇编语言---基本数据类型_汇编db类型_wwb0111的博客-CSDN博客 4.因为global变量里有一…

多商户商城有哪些功能和优势?-加速度jsudo

电商时代下,传统企业商家急需拓展业务规模,向线上拓展,而多商户小程序造价低,效应高,自然就成为了很多企业商家拓展线上营销渠道的首要选择,那么多商户小程序商城涵盖哪些功能呢?下面小编就来详细为大家解答&#xff…

UE5《Electric Dreams》项目PCG技术解析 之 理解Assembly(以SplineExample为例)

文章目录 1. 什么是Assembly2. PCG部分2.1 Assembly变换2.2 Point变换2.2.1. SG_CopyPointsWithHierachy2.2.2 过滤及点变换2.2.3. ApplyHierachy 3. 小结 1. 什么是Assembly UE5.2的PCG出了有一段时间了,大家玩得都很开心。很多朋友可能和老王一样,使用…

Rust语言从入门到入坑——(10)文件与IO

文章目录 0、引入1、命令行1.1 命令行参数1.2 命令行输入 2、文件操作2.1 读取文件2.2 写入文件 3、总结 0、引入 Rust 语言的 I/O 操作,最基本的交互模式,主流语言都具备的功能。 1、命令行 1.1 命令行参数 命令行程序是计算机程序最基础的存在形式&…

B050-cms05-轮播图 cookie session 登录

目录 轮播图修改操作删除操作查询并展示所有轮播图 无状态的HTTP协议CookieCookie的原理Cookie的创建获取Cookie更新Cookie设置cookie的声明周期设置cookie访问路径Cookie优缺点 SessionSession原理创建SessionSession的使用sesion的生命周期Session的优缺点Cookie和Session的区…

定积分计算—牛顿-莱布尼兹公式、定积分的几何意义、利用奇偶性化简、利用Wallis公式

定积分计算 前言定积分的常规计算技巧—牛顿-莱布尼茨公式定积分的几何意义利用奇偶性简化计算![在这里插入图片描述](https://img-blog.csdnimg.cn/9acfec48362141ba9486630f7060d78d.jpg)利用周期性平移和缩小积分区间利用Wallis公式利用一个常见的积分公式定积分计算练习题 …

yolov8 -01 部署

本想去配环境的步骤,在之前yolov5运行的环境下,试predict yolov8,竟然报错。 与其改bug, 选择重头来。 1. conda 创建新环境 yolo 8 conda create -n yolo82. 官网下载资料 官网下载yolo8相关资料 https://github.com/ultralytics/ultraly…

Flutter 检查连接网络 connectivity_plus

Flutter 检查连接网络 connectivity_plus 前言 有些对通讯敏感的程序,我们需要检查当前连接的网络情况。 我推荐使用 connectivity_plus https://pub-web.flutter-io.cn/packages/connectivity_plus 这个插件的好处就是支持全平台,这点非常好。 我们今天…

socketio连接失败,nginx返回502 connect() failed (111: Connection refused)

现象 我们信控平台,需要实时展示信号灯灯态(红黄绿、倒计时等) 当灯态变化时,前端信号机设备会通过socket协议将消息推送给我们的通信服务,通信服务将消息解析处理后,关联路口信息,再把信息通过…

数据库监控与调优【四】—— EXPLAIN详解

EXPLAIN详解(使用、可视化、扩展与性能计算公式) TIPS 本文基于MySQL 8.0编写,理论支持MySQL 5.0及更高版本。 什么是EXPLAIN命令 EXPLAIN命令是查看MySQL查询优化器如何执行查询的主要方法,可以很好地分析SQL语句的执行情况。每…

MPLS新手排查丢包问题

借助查问题又重新复习了一下mpls协议,首先复习一下它的报文格式: 0---------------19-------22---23------------31 | Label value | Exp | Bos | TTL | -----------------|---------|-------|-------------| 字段意义: Label v…

全网最新超详细的【Axure】Axure RP 10的下载、安装、中文字体、授权【2023年】

文章目录 1. 文章引言2. 下载Axure103. 安装Axure104. Axure10中文5. 解决axure弹框更新的问题6. 重要备注7. Axure10授权 1. 文章引言 最近在学习原型图,针对画原型图的工具,反复对比墨刀、Axure、xiaopiu后,最终选择了Axure。 接下来&…

ansible自动化IT工具安装部署与使用验证

目录 一、环境配置 1、关闭防火墙 2、免密登录配置 3、同步时区 二、服务端配置 1、安装软件 2、查看版本 3、实现远程控制huyang3 4、测试 结果验证: 一、环境配置 1、关闭防火墙 systemctl stop firewalld iptables -F setenforce0 2、免密登录配置 【huy…

二叉树题目:二叉树展开为链表

文章目录 题目标题和出处难度题目描述要求示例数据范围进阶 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 解法三思路和算法代码复杂度分析 后记 题目 标题和出处 标题:二叉树展开为链表 出处:114. 二叉树展开为链表 难度 3 级 …

8 从0开始学PyTorch | PyTorch中自动计算梯度、使用优化器

上一节,我们写了很多代码,但是不知道你有没有注意,那些代码看起来跟PyTorch关系并不是很大啊,貌似很多都是Python原生代码? 如果你是这样的感觉,那我要告诉你,你感觉的没有错。前面主要在于机制…

下面告诉你音频转换工具有哪些

今天我想和大家聊一聊音频转换工具。你是不是有时候想把一首酷炫的歌曲转换成你喜欢的音频格式,或者想把录音文件转成可编辑的格式?别担心,这里有一些超赞的音频转换工具,可以帮你解决这些问题!无论是从MP3到WAV&#…

武汉大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 武汉大学(A-)考研难度(☆☆☆☆☆) 武汉大学计算机考研招生学院是计算机学院、国家网络安全学院和测绘遥感信息工程国家重点实验室。目前均已出拟录取名单。 武汉大学计…

Redis的3大特殊数据类型(1)-BitMap

BitMap(位图/位数组)是Redis2.2.0版本中引入的一种新数据类型,该数据类型本质是一个仅含0和1的二进制字符串。因此可以把 Bitmap 想象成一个以位为单位的数组,数组的每个单元只能存储 0 和 1,数组的下标在 Bitmap 中叫做偏移量 offset&#x…