单点登录与OAuth2.0 的区别

前言: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.mfbz.cn/a/118045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Oracle安全基线检查

一、账户安全 1、禁止SYSDBA用户远程连接 用户具备数据库超级管理员(SYSDBA)权限的用户远程管理登录SYSDBA用户只能本地登录,不能远程。REMOTE_LOGIN_PASSWORDFILE函数的Value值为NONE。这意味着禁止共享口令文件,只能通过操作系统认证登录Oracle数据库。 1)检查REMOTE…

noip模拟赛多校第八场 T3 遥控机器人 (最短路 + 技巧拆点)

题面 简要题意: 给你一个 n n n 个点 m m m 条边的图。边 i i i 有颜色 c i c_i ci​。你可以选择一些边改变它们的颜色成为区间 [ 1 , m ] [1, m] [1,m] 中的任意颜色,改变一条边 i i i 一次的代价是 w i w_i wi​。询问你能否在一些改变…

深度学习框架TensorFlow.NET之数据类型及张量2(C#)

环境搭建参考: 深度学习框架TensorFlow.NET环境搭建1(C#)-CSDN博客 由于本文作者水平有限,如有写得不对的地方,往指出 声明变量:tf.Variable 声明常量:tf.constant 下面通过代码的方式进行学…

RIP路由配置

RIP路由配置步骤与命令: 1.启用RIP路由:router rip 2.通告直连网络:network 直连网络 3.启用RIPv2版本:version 2 4.禁用自动汇总:no auto-summary 注意:静态路由通告远程网络,动态路由通告…

【flink】Task 故障恢复详解以及各重启策略适用场景说明

文章目录 一. 重启策略种类(Restart Strategies)1. Fixed Delay Restart Strategy2. Failure Rate Restart Strategy3. Fallback Restart Strategy4. No Restart Strategy 二. 故障恢复策略(Failover Strategies)1. (全…

音频文件元数据修改:批量操作的技巧和方法

在音乐产业不断发展和数字技术日益成熟的今天,音频文件已经成为我们日常生活中的重要组成部分。在这些文件中,元数据起着至关重要的作用,它不仅提供了关于音频文件的基本信息,如艺术家、歌曲名称、专辑名称等,还为我们…

“网站不安全”该如何解决

当我们的网站被客户访问的时候,经常会出现提示不安全的情况,导致客户的不信任,从而出现客户流失的现象,这种情况我们应该如何解决呢? 首先,我们要确定网站会出现不安全的原因,一般来说&#xff…

智能安全配电装置在银行配电系统中的应用

【摘要】银行是国家重点安全保护部分,关系到社会资金的稳定,也是消防重点单位,消防安全保障工作是银行工作的重要方面。智能安全配电装置应用在银行配电系统中,可以提升银行智能化管控水平和有效防范电气火灾的发生。 【关键词】…

从首届中国测绘地理信息大会,解读2023年度国产GIS创新关键词

创新是什么?这是各行各业持续思考的问题。 第一届中国测绘地理信息大会已进入倒计时!这是中国测绘学会、中国地理信息产业协会和中国卫星导航定位协会共同主办的全国性高端盛会。据悉,本次大会将有1个主论坛、38场分论坛,近2万平…

MySQL开启远程访问权限

默认情况下,MySQL只允许本地登录,即只能在安装MySQL环境所在的主机下访问。但是在日常开发和使用中,我们经常需要访问远端服务器的数据库,此时就需要开启服务器端MySQL的远程连接权限。1、生成环境,连接MySQL 2、查看MySQL当前访问远程访问权限use mysql;select User,auth…

黑马程序员项目-黑马点评

黑马点评1 短信登录 基于Session实现登录流程 发送验证码: 用户在提交手机号后,会校验手机号是否合法,如果不合法,则要求用户重新输入手机号 如果手机号合法,后台此时生成对应的验证码,同时将验证码进行…

论文阅读—— UniDetector(cvpr2023)

arxiv:https://arxiv.org/abs/2303.11749 github:https://github.com/zhenyuw16/UniDetector 一、介绍 通用目标检测旨在检测场景那种的一切目标。现有的检测器依赖于大量数据集 通用的目标检测器应该有两个能力:1、可以利用多种来…

C# 发送邮件

1.安装 NuGet 包 2.代码如下 SendMailUtil using MimeKit; using Srm.CMER.Application.Contracts.CmerInfo; namespace Srm.Mail { public class SendMailUtil { public async static Task<string> SendEmail(SendEmialDto sendEmialDto,List<strin…

WiFi模块在智能家居中的应用与优化

智能家居技术的迅速发展已经改变了我们对家庭的定义。WiFi模块作为智能设备连接的核心&#xff0c;扮演着连接和控制智能家居生态系统的关键角色。本文将深入研究WiFi模块在智能家居中的应用&#xff0c;同时探讨如何通过优化来提升其性能和用户体验。 1. 智能家居中WiFi模块的…

Premiere Pro 2024 v24.0

adobe Premiere Pro 2024 Mac版发布了吗&#xff1f;无论您是编辑社交媒体视频还是大电影&#xff0c;Premiere Pro 都可以帮助您借助工具精心创作有意义的故事。导入和编辑&#xff0c;添加效果&#xff0c;然后将素材导出到任何目标。无论您要创作什么内容&#xff0c;它都可…

微信支付更换证书最详细方法

6、在【商户平台】&#xff0c;输入操作密码&#xff0c;安全验证后生成证书串 7、在【商户平台】&#xff0c;复制证书串 8、在【证书工具】&#xff0c;粘贴证书串&#xff0c;点击下一步&#xff0c;申请证书成功 &#xff08;若提示"证书与本地公私钥不匹配&qu…

高清Logo素材无忧:这5个网站解决所有问题!

今天给大家分享几个素材网站&#xff0c;基本上可以下载各大企业的 Logo&#xff0c;而且还是矢量格式哦~ 即时设计 即时设计是一款国产免费的 Logo 在线设计制作工具&#xff0c;浏览器内打开即用&#xff0c;对于使用系统没有任何限制。在即时设计&#xff0c;你可以从 0 到…

Hive 解析 JSON 字符串数据的实现方式

文章目录 通过方法解析现实示例 通过序列化实现示例 通过方法解析现实 在 Hive 中提供了直接解析 JSON 字符串数据的方法 get_json_object(json_txt, path)&#xff0c;该方法参数解析如下&#xff1a; json_txt&#xff1a;顾名思义&#xff0c;就是 JSON 字符串&#xff1b;…

C++常用格式化输出

在C语言中可以用printf以一定的格式打印字符&#xff0c;C当然也可以。 输入输出及命名空间还不太了解的小伙伴可以看一看C入门讲解第一篇。  在C中&#xff0c;可以用流操作符&#xff08;stream manipulators&#xff09;控制数据的输出格式&#xff0c;这些流操作符定义在2…

RFID管理方案有效提升电力物资管理效率与资产安全

在电力行业&#xff0c;电力资产的管理是一项重要的任务&#xff0c;为了实现对电力资产的精细化管理、入出库监控管理、盘点管理和巡查管理等&#xff0c;电力公司多采用电力资产RFID管理系统&#xff0c;该系统能够实时监控出入库过程&#xff0c;有效防止出入库错误&#xf…
最新文章