Spring:OAuth2.0

文章目录

  • 一、认证与授权
  • 二、OAuth2.0介绍

一、认证与授权

认证(Authentication)与授权(Authorization)在网络安全和系统管理中是两个重要的概念,它们各自有不同的作用和目标。

  • 认证是验证确认身份以授予对系统的访问权限的过程。它关注的是确认用户或系统是否是他们所声称的身份。在认证过程中,系统通常会要求用户提供一些凭据(如用户名和密码、指纹、面部识别等)来验证他们的身份。一旦用户通过了认证,系统就会认为他们是合法的用户,并允许他们访问系统资源。

  • 授权是确定用户或系统是否有权访问特定资源的过程。在授权过程中,系统会检查用户或系统的权限和角色,以确定他们是否有权访问请求的资源。授权通常是在认证之后进行的,因为它依赖于认证的结果来确定用户或系统的身份。授权可以基于各种因素,如用户的角色、职责、访问级别等,来限制用户对系统资源的访问。

简而言之,认证是验证用户或系统身份的过程,而授权是确定用户或系统是否有权访问资源的过程。两者都是系统安全的重要组成部分,但关注点和目标不同。

二、OAuth2.0介绍

OAuth 2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth 1.0)。它主要关注客户端开发者的简易性,并为Web应用、桌面应用、手机和智能家居设备提供专门的认证流程。OAuth 2.0的核心原理是通过授权访问令牌(Access Token)来实现身份验证和授权。

以下是OAuth 2.0的主要原理和流程

  • 注册应用程序:第三方应用程序需要在提供OAuth 2.0服务的身份提供商注册,并获得客户端ID(Client ID)和客户端密钥(Client Secret)。
  • 用户授权:当用户尝试访问第三方应用程序时,应用程序会向身份提供商发送授权请求,并重定向用户到身份提供商的登录页面。
  • 授权同意:一旦用户成功登录,身份提供商会提示用户授予第三方应用程序访问特定资源的权限。
  • 访问令牌颁发:一旦用户授权,身份提供商会颁发一个授权访问令牌给第三方应用程序。
  • 访问资源:第三方应用程序可以使用授权访问令牌来访问用户受保护的资源,通过将令牌发送给身份提供商进行验证。
  • 刷新令牌:访问令牌通常具有一定的有效期,过期后可以使用刷新令牌获取新的访问令牌。
    在这里插入图片描述

OAuth 2.0的优势在于它提供了更高的安全性,通过引入更为严格的证书验证和加密要求来提高数据传输的安全性。同时,它优化了授权流程,减少了用户在第三方网站登录时需要进行的交互操作,提高了用户体验。此外,OAuth 2.0还支持多种认证方式,为开发者提供了更多选择。

应用场景包括单点登录、授权登录、跨屏登录和扫码登录等。例如,单点登录允许用户在一个认证中心进行登录,然后在多个系统中使用相同的凭证进行访问;授权登录支持多认证源,如支付宝、微信等;跨屏登录允许用户在不同设备之间无缝切换;扫码登录则通过扫描二维码的方式进行授权登录。

总的来说,OAuth 2.0是一个广泛应用的授权协议,它为用户和开发者提供了更安全、更便捷的访问控制解决方案。

OAuth2.0包括以下角色

  • 客户端
    本身存储资源,需要通过资源拥有者的授权去请求资源服务器的资源,比如:Android客户端、Web客户端(浏览器端)、微信客户端等。
  • 资源拥有者
    通常为用户,也可以是应用程序,即该资源的拥有者。
  • 授权服务器(也称认证服务器)
    用于服务提供商对资源拥有的身份进行认证、对访问资源进行授权,认证成功后会给客户端发放令牌(access_token),作为客户端访问资源服务器的凭据。本例为微信认证的服务器。
  • 资源服务器
    存储资源的服务器,本例子为微信存储的用户信息。

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

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

相关文章

RAG解决方案:解决LLM大模型私域数据缺失问题

目前LLM大模型是一种预训练模型(训练完成后 信息就会截止),那么在获取最新数据和私域数据时候,LLM会有无法给出相关回答的问题。 那么RAG方案可以一定程度上解决这个问题。 用户搜索后,会先在检索系统中检索,然后再把问题和私域数…

夏天一到,手机越用越烫?怎样降低持久使用手机时的温度?

夏季来临,手机的温度也随着使用环境的温度升高变得更容易发热。 虽说属于正常的物理现象,但手机过热用起来还是不太舒服,还容易出现过热提醒,导致除“拨号”和“联系人”外,无法使用其它应用。 分享几个减少功耗的小技…

JAVA版本的ATM编程问题记录

前段时间用C语言写了个银行ATM系统,还写了一篇文章记录了一些,C语言的ATM文章。后来又用IDEA写了一个JAVA版本的银行ATM。有人就会问为啥浪费这个时间写ATM呢?🧐其实是我本科代码没学好,所以现在想利用比较熟悉的ATM系…

Spring Web MVC 快速入门

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 什么是Spring MVC? MVC模式介绍 ​编辑学习Spring MVC…

node.js对数据库mysql的连接与操作(增、删、改、查、五种SQL语法)

前提:先在vscode终端下载安装mysql:npm install mysql -save 步骤总结: (1)建立与数据库的连接 (2)做出请求: 实际上就是操作mysql里的数据。增删改查 insert、delete、updata、select (3)通过回调函数获取结果 一、什么是SQ…

【Kubernetes集群一主二从安装教程】

文章目录 环境准备主机间做信任安装ansible工具 升级内核版本使用elrepo源升级内核查看最新版内核安装最新的内核版本设置系统默认内核设置默认内核为我们刚才升级的内核版本 初始化关闭防火墙关闭selinux关闭swap修改主机名修改hosts文件将桥接的IPv4流量传递到iptables的链配…

nlp课设 - 基于BERT 的情感分类

基于BERT 的情感分类 主要论文: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(双向Transformer 的预训练) 核心技术: Embedding 、Attention --> Transformer 任务简介、拟解决问题…

09 - 数据清洗案例

流程图 kettle 面板图片 操作步骤 1、订阅数据源(kafka consumer) 2、抽取字段并转换key(JSON input) 3、判断img字段是否有值,有的话进行url转base64(JavaScript 代码) // 获取输入字段的值 v…

流量分析利器arkime的学习之路(三)---结合Suricata攻击检测

1、基础 Arkime安装部分参考《流量分析利器arkime的学习之路(一)—安装部署》 在此基础上安装suricata软件并配置。 2、安装suricata yum install suricate 可能依赖的文件包括libyaml,PyYAML,这些可能在之前安装arkime或者其他…

面试二十四、继承多态

一、继承的本质和原理 组合(Composition): 组合是一种"有一个"的关系,表示一个类包含另一个类的对象作为其成员。这意味着一个类的对象包含另一个类的对象作为其一部分。组合关系通常表示强关联,被包含的对象…

Terrain —— Nodes

目录 Convert HeightField —— 转化高度场 HeightField —— 为地形创建初始高度场或遮罩场 HeightField Blur —— 模糊高度场或遮罩场 HeightField Clip —— 限制高度场的值 HeightField Combine Layers —— 将多个volume或VDB合并为一个新的volume或VDB HeightFiel…

我独自升级崛起怎么玩 我独自升级崛起游玩教程分享

《我独自升级:ARISE》是一款预计在 Android、iOS 和 PC 平台推出的动作 RPG,故事内容基于网络漫画版本改编,讲述世界各地出现「次元传送门」,而少部分人类觉醒了可以对抗传送门中怪物的「猎人」能力,玩家可以在故事模式…

【进程等待】是什么 | 为什么 | 怎么办 | wait阻塞等待

目录 进程等待是什么? 为什么要进程等待? 如何进程等待? wait 阻塞等待 进程等待是什么? 进程终止会把进程退出的数据(退出码和退出信号)存放到进程的PCB中保存下来,让父进程进行等待。…

【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率

会议名称:CoopIS CCF等级:CCF C类学术会议 类别:人机交互与普适计算 录用率:2023年接收率21% (21 regular 10 work-in-progress papers/100) AREA 5: HUMAN-CENTRIC SECURITY AND PRIVACY IN INFORMATION SYSTEMS Access Con…

Linux网站服务

1.概念:HTML:超级文本编辑语言 网页:使用HTML,PHP,JAVA语言格式书写的文件。 主页:网页中呈现用户的第一个界面。 网站:多个网页组合而成的一台网站服务器。 URL:统一资源定位符,访问网站的地址。 网站架构:LAMP: LinuxApacheMYSQLPHP(系统服务器程序数据管理…

OpenHarmony 实战开发 - 如何在源码中编译复杂应用(4.0-Release)

文档环境 开发环境:Windows 11 编译环境:Ubuntu 22.04 开发板型号:DAYU 200(RK3568) 系统版本:OpenHarmony-4.0-Release 功能简介 在 OpenHarmony 系统中预安装应用的 hap 包会随系统编译打包到镜像中&a…

使用电路仿真软件教学的优势分析

随着科技的飞速发展,电子工程领域对人才的需求与日俱增。为了满足这一需求,教育者们不断探索着更加高效、直观的教学方法。电路仿真软件的出现,为电子工程教学注入了新的活力,它以其独特的优势,成为现代电子工程教育中…

啸叫抑制器采用什么处理芯片?ES56031或PH56031

会议系统或卡拉OK最头疼的就是啸叫了吧,来看看啸叫抑制器采用什么芯片 四通道啸叫抑制器,采用了2个电路板,每个板子处理2路信号,每块电路板有2个卡侬输入插座,2个卡侬输出插座 ES56031S,该啸叫抑制器为4通道…

请大数据把我推荐给正在申请小程序地理位置接口的人

小程序地理位置接口有什么功能? 若提审后被驳回,理由是“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通,建议完成接口开通后或移除接口相关内容后再进行后续版本提审”,那么遇到这种情况&#x…

软件可靠度计算

软件的整体可靠度依据:若是单个就是当前部件的可靠度。若是多个部件,就需要多个部件的可靠度相乘。若是多个部件且有相同备份,那么计算公式更加不一样。 计算公式: 部件数:N 部件可靠度均为:R 单个部件的可…