单点登录与OAuth2.0 的区别

news2024/11/27 23:36:57

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


一、单点登录简介

1、单点登录概念    

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

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

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

2、单点登录实现原理

1.用户首次访问某个系统X时,需要进行登录。

2.系统A携带着用户登录时的信息重新定向给认证系统。

3.认证系统会验证用户登录信息。

4. 验证通过后,返回一个token。token类似一种内部的通行证,包含了用户身份信息、登录状态和过期时间,在各个系统间共享。

5.认证系统带着token重定向给系统A,得知用户是已登录状态。

6.系统A向用户返回请求的资源。

7.用户访问系统B时,需要进行登录。

8.系统B通过共享的token,得知用户是已登录状态。

9.系统B向用户返回请求的资源。

注意事项:

  • Token是有时效性的,如果用户长时间没有操作,token将会过期。Token过期后用户再次访问系统A、系统B时,登录状态已失效,需要重新登录。

  • 关于注销场景,与上述流程类似。用户主动从系统A注销时,系统A调用认证系统,清除token。此时用户再访问系统A、系统B时,通过共享的token得知用户是已注销状态,需要重新登录。


二、单点登录和Oauth2.0的区别

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

  1. 信任角度:Oauth2.0授权服务端和第三方客户端不属于一个互相信任的应用群,比如微信和第三方,这就不是一个公司的产品;然而单点登录的服务端和接入的客户端都在同一个相互信任的应用系统中,比如百度官网、百度百科,这都是一个公司的产品

  2. 资源角度:OAuth2.0授权主要是让用户自行决定——“我”在OAuth2.0服务提供方的个人资源是否允许第三方应用访问;而单点登录的资源都在客户端这边,单点登录的服务端主要用于登录,以及管理用户在各个子系统的权限信息。

  3. 流程角度:OAuth2.0授权的时候,第三方客户端需要拿预先“商量”好的密码去获取Access Token;而单点登录则不需要。

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


三、总结(SSOOAuth区别与联系)

        SSO和OAuth这两者有个共同的特点,都是使用令牌的方式来代替用户密码访问应用。在SSO和OAuth中,你在业务系统中都没有账号和密码,账号密码是存放在登录中心或微信服务器中,这就是所谓的使用令牌代替账号密码访问应用。Oauth2.0和单点登录的区别需要理解清楚,相对来说Oauth2.0实现单点登录更加简单,CAS虽然能够实现单点登录,但是服务部署和配置更加复杂,不易于上手,当然目前也有很多的系统在使用CAS,在选择的时候开发者根据这些区别和复杂程度去决策。

      SSO主要的作用是提升用户在多系统中登录时的操作体验,通过将登录认证和业务系统分离,使用独立的登录中心,实现一次登录后,所有相关的业务系统都能免登录访问资源。OAuth是一种开放授权协议,可以允许第三方应用在不使用账号和密码的情况下访问特定资源,例如你访问某网站想留言又不想注册账号,然后使用了微信授权,使用微信的个人信息进行留言,这就是OAuth应用的一个经典场景。

       SSO是一种思想,或者说是一种解决方案,是抽象的,我们要做的就是按照它的这种思想去实现它,而OAuth2是用来允许用户授权第三方应用访问他在另一个服务器上的资源的一种协议,它不是用来做单点登录的,但我们可以利用它来实现单点登录。


参考链接:

SSO单点登录和OAuth认证

阿里终面:说说OAuth2.0 与 单点登录的区别?

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

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

相关文章

操作系统·操作系统引论

1.1 操作系统的目标和作用 1.目前常见操作系统: 微软:Windows系列(以前MS-DOS) UNIX:Solaris, AIX, HP UX, SVR4, BSD, ULTRIX 自由软件:Linux, freeBSD, Minix IBM: AIX, zOS(OS/390), OS/2, OS/400, PC…

JAVA客户端使用账号密码调用influxdb2报错:{“code“:“unauthorized“,“message“:“Unauthorized“}

问题&#xff1a;JAVA客户端访问influxdb2报错 说明&#xff1a;当前influxdb版本&#xff1a;2.6.1 使用依赖&#xff1a; <dependency><groupId>org.influxdb</groupId><artifactId>influxdb-java</artifactId><version>2.10</vers…

提升企业知名度必备!媒体发稿的5个关键要点

近年来&#xff0c;媒体发稿成为企业提升知名度和品牌形象的重要手段。无论是大型企业还是中小企业&#xff0c;都倾向于选择媒体发稿来扩大影响力。然而&#xff0c;很多企业在发稿后并没有如预期般获得良好效果。这可能是因为他们没有掌握正确的技巧。那么&#xff0c;在媒体…

带你一文搞懂 Linux 网络 Phy 驱动

概述 上图来自 瑞昱半导体 (RealTek) 的 RTL8201F 系列网卡 PHY 芯片手册。按OSI 7层网络模型划分&#xff0c;网卡PHY 芯片(图中的RTL8201F)位于物理层&#xff0c;对应的软件层就是本文讨论的 PHY 驱动层&#xff1b;而 MAC 位于 数据链路层&#xff0c;也是通常软件上所说的…

【黑马程序员】Git 的概述

文章目录 前言一、概述1. 开发中的实际场景2. 版本控制器的方式3. SVN4. Git5. Git 工作流程图 总结 前言 跟着B站的黑马程序员学习 Git&#xff0c;语言为java&#xff0c;目前是第一个内容 课程传送门&#xff1a;Git 的概述 一、概述 1. 开发中的实际场景 场景一&#xf…

高效解决香港服务器负载过高的方法

​  当我们在使用香港服务器时&#xff0c;有时会遇到服务器负载过高的问题。这会导致网站加载速度变慢甚至无法正常使用。为了解决这个问题&#xff0c;我们需要采取一些高效的方法来提升服务器的负载能力。 1.考虑对服务器进行升级维护。通过增加硬件资源&#xff0c;如CPU…

综合布线可视化管理系统价值分析

传统综合布线管理&#xff0c;全部依靠手工登记&#xff0c;利用标签标示线缆&#xff0c;利用文档资料记录链路的连接和变更&#xff0c;高度依赖网络管理员的管理能力&#xff0c;维护效率低下。同时&#xff0c;网络接入故障和非法接入难以及时发现。在以往的文章中小编一直…

灵活调整宣传策略,媒体发稿和新闻发布的优势所在

企业在当今信息爆炸的时代&#xff0c;要想在市场竞争中脱颖而出&#xff0c;提高公信力是至关重要的。而媒体发稿和新闻发布是提升企业公信力的重要手段之一。下面将从门户网站的权威展示、搜索引擎排名的提升、内容的持续稳定有效性、内容的可改性以及协助增加网站流量等方面…

深度剖析.locked1勒索病毒的威胁:如何保护您的数据

导言&#xff1a; .locked1勒索病毒是当今数字时代中最神秘的网络威胁之一。这种恶意软件以其毫不留情的数据加密技术而著称&#xff0c;常通过欺诈邮件附件、恶意链接或漏洞利用等方式传播。本文91数据恢复将深入探讨.locked1勒索病毒的运作方式&#xff0c;提供数据恢复的方…

北京陪诊小程序|陪诊系统开发|陪诊小程序未来发展不可小觑

近几年随着互联网快速发展&#xff0c;各行业领域都比较注重线上服务系统&#xff0c;通过陪诊小程序开发可以满足更多用户使用需求&#xff0c;同时还能提高用户使用体验。现在陪诊类的软件应用得到全面推广&#xff0c;在医疗行业当中陪诊小程序更贴近用户生活&#xff0c;可…

【QT】QT自定义类封装,附简单例子

提升为主要是可以使用自定义的部件&#xff0c;所以先要写好自定义控件后&#xff0c;再添加&#xff0c;在频繁使用同一控件时&#xff0c;的确非常的高效。 下面以自定义的QPushButton作一个很简单的例子。 先新建默认Qt Widgets Application项目 一、自定义类 建立项目后…

以“和合”酒礼开启“全国理性饮酒周”,五粮液勇担社会责任赋能美好生活

执笔 | 尼 奥 编辑 | 萧 萧 10月31日&#xff0c;由中国酒业协会主办&#xff0c;酒与社会责任促进工作委员会承办&#xff0c;五粮液集团公司协办的“2023年中国酒业协会酒与社会责任促进工作委员会年会暨2023全国理性饮酒宣传周新闻发布会”在成都举行。 酒&#xff0c…

大数据趣味学习探讨(二):我是怎么坚持学习的

CSDN话题挑战赛第2期 参赛话题&#xff1a;大数据趣味学习探讨 文章目录 要不要学&#xff0c;为什么要学大数据&#xff0c;最好的机会没有之一 一、根本性的问题 1、打仗最重要的是什么&#xff1f; 2、为什么总是知行不一 二、大数据到底好在哪 1、结论 2、大数据为…

机器人制作开源方案 | 管内检测维护机器人

一、作品简介 作者&#xff1a;李泽彬&#xff0c;李晋晟&#xff0c;杜张坤&#xff0c;禹馨雅 单位&#xff1a;运城学院 指导老师&#xff1a;薛晓峰 随着我国的社会主义市场经济的飞速发展和科学技术的革新&#xff0c;各行各业的发展越来越离不开信息化和网络化的…

数据结构 - 全貌总结

目录 一. 前言 二. 分类 三. 常见的线性和非线性结构 一. 前言 数据结构是计算机存储、组织数据的方式。一种好的数据结构可以带来更高的运行或者存储效率。数据在内存中是呈线性排列的&#xff0c;但是我们可以使用指针等道具&#xff0c;构造出类似“树形”等复杂结构。 数…

多功能博客模板B2 PRO – v4.2.6 免授权修复版wordpress主题

多功能资源下载模板B2 PRO – v4.2.6 免授权修复版wordpress主题&#xff0c;b2主题是一款多功能的wordpress主题。可以布置成资讯站&#xff0c;下载站&#xff0c;社交站&#xff0c;购物站等不同形式的站点&#xff0c;也可以启用所有这些功能做成一个综合性的站点。 4.16更…

如何在搜索引擎中应用AI大语言模型,提高企业生产力?

人工智能尤其是大型语言模型的应用&#xff0c;重塑了我们与信息交互的方式&#xff0c;也为企业带来了重大的变革。将基于大模型的检索增强生成&#xff08;RAG&#xff09;集成到业务实践中&#xff0c;不仅是一种趋势&#xff0c;更是一种必要。它有助于实现数据驱动型决策&…

预处理、编译、汇编、链接

1.预处理 宏替换去注释引入头文件 2.编译 3.汇编 4.链接 gcc 基于C/C的编译器 补充说明 gcc命令 使用GNU推出的基于C/C的编译器&#xff0c;是开放源代码领域应用最广泛的编译器&#xff0c;具有功能强大&#xff0c;编译代码支持性能优化等特点。现在很多程序员都应用…

【C++初阶(四)aoto关键字与基于范围的for循环】

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 失物招领小程序 设计与实现

一.项目介绍 失物招领小程序 用户登录、忘记密码、退出系统 发布失物 和 发布招领 查看我发布的失物和招领信息 失捡物品模块可以查看和搜索所有用户发布的信息。 二.环境需要 1.运行环境&#xff1a;java jdk1.8 2.ide环境&#xff1a;IDEA、Eclipse、Myeclipse都可以&#…