阿里终面:说说OAuth2.0 与 单点登录的区别?
SSO是阿里Single Sign On的缩写,OAuth是终面Open Authority的缩写,这两者都是说说使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,单点登但概念上又十分不同。区别很多人会将其混为一谈,阿里其实这两个还是终面有些区别的。
对于OAuth2.0相关内容在Spring Cloud Alibaba 实战中结合实战项目源码从零搭建有着详细的说说介绍,如下图:

简单的说就是在多个应用的系统中,用户只需要登录一次就可以访问权限范围内的区别所有应用子系统,同样的阿里注销也只需要注销一次。
比如百度这个网站,终面用户只要登录了百度的说说官网,那么对于百度百科、单点登百度知道、区别百度贴吧等网站都是处于登录状态,这就是免费源码下载一个典型的单点登录的例子。
单点登录和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只是实现这种思想的一种框架而已

上面的流程大概为:
用户输入网址进入业务系统Protected App,系统发现用户未登录,将用户重定向到单点登录系统CAS Server,并带上自身地址service参数。用户浏览器重定向到单点登录系统,系统检查该用户是否登录,这是香港云服务器SSO(这里是CAS)系统的第一个接口,该接口如果用户未登录,则将用户重定向到登录界面,如果已登录,则设置全局session,并重定向到业务系统。用户填写密码后提交登录,注意此时的登录界面是SSO系统提供的,只有SSO系统保存了用户的密码SSO系统验证密码是否正确,若正确则重定向到业务系统,并带上SSO系统的签发的ticket。浏览器重定向到业务系统的登录接口,这个登录接口是不需要密码的,而是带上SSO的ticket,业务系统拿着ticket请求SSO系统,获取用户信息。并设置局部session,表示登录成功返回给浏览器sessionId(tomcat中叫JSESSIONID)。之后所有的交互用sessionId与业务系统交互即可。整个流程还是相对比较复杂的,当然CAS这个框架的配置也是相对比较复杂,了解过的人都想放弃,关于CAS如何去搭建,在后面会单独介绍。
最常见的例子是,我们打开淘宝APP,首页就会有天猫、聚划算等服务的链接,当你点击以后就直接跳过去了,并没有让你再登录一次。

Oauth2.0和单点登录的区别需要理解清楚,相对来说Oauth2.0实现单点登录更加简单,CAS虽然能够实现单点登录,但是服务部署和配置更加复杂,不易于上手,当然目前也有很多的系统在使用CAS,在选择的时候开发者根据这些区别和复杂程度去决策。
相关文章
华为Mate8触屏性能如何?(探究华为Mate8触屏体验及功能表现)
摘要:作为一款旗舰级智能手机,华为Mate8在市场上备受瞩目。其中,触屏性能作为用户日常使用的重要一环,深受消费者关注。本文将针对华为Mate8的触屏性能进行详细分析,探究其表现和功能。...2025-11-05Java许可再变更!Oracle将于今年9月“调整”Oracle JDK 17,用户:不如迁移到替代方案
整理丨诺亚出品 | 51CTO技术栈微信号:blog51cto)世界唯一不变的就是变化本身,这一点在 Oracle Java 的许可方面表现得尤为明显。Oracle JDK 17 的许可证将在今年9月2025-11-05
在使用 MySQL 数据库时,尤其是在高并发的场景下,数据库连接数过多会导致连接池耗尽,进而影响应用程序的正常运行。本文将介绍几种防止 MySQL 数据库连接过多的方法,来优化数据库性能并提高应用程序2025-11-05
据BleepingComputer消息,一个基于Mirai的新型僵尸网络正在积极利用DigiEver网络录像机中的一个远程代码执行漏洞,该漏洞尚未获得编号,也暂无修复补丁。Akamai 研究人员观察到2025-11-05G50笔记本系统安装教程(一步步教你如何为G50笔记本电脑安装操作系统)
摘要:在使用G50笔记本电脑的过程中,有时我们可能需要重新安装系统。本文将详细介绍如何为G50笔记本电脑进行系统安装,以帮助读者轻松完成这一任务。一、准备工作:制作安装盘...2025-11-05
据Cyber Security News消息,微软VSCode 远程隧道功能正被攻击者利用,以绕过安全措施部署恶意脚本。VSCode 远程隧道是流行开发环境中的一项功能,让开发者通过安全隧道连接到远程2025-11-05

最新评论