目录

一、Oauth2基本概念

1、定义

2、场景带入

1、外卖场景

2、互联网场景

3、令牌与密码

二、Oauth2的角色定义

三、Oauth2认证方式

1、Oauth2四种认证方式

2、授权码方式

1、概念:

2、步骤:

3、隐藏式方式

1、概念:

2、步骤:

4、密码式方式

1、概念:

2、步骤:

5、凭证式方式

1、步骤

四、Oauth2与JWT的区别

1、JWT机制

1、定义:

2、JWT的组成部分:

3、JWT解决的问题:

​                 4、适用的场景:

5、不适用的场景:

2、Oauth2机制


一、Oauth2基本概念

1、定义

Oauth2是目前最流行的授权机制,用来授权第三方应用,获取用户数据

2、场景带入

1、外卖场景

一户人家住在一个大型居住小区,小区有门禁系统,进入小区需要输入密码,这户人家经常性点外卖,必须让外卖人员进入到小区,如果把密码告诉外卖人员,这样的话,他就和户主拥有了一样的权限,这样安全隐患太大,给了外面人员密码之后,为了安全,必须要进行修改密码,这就很麻烦。

这时候Oauth2就诞生了,外卖人员的职责只是送货,没必要知道小区密码

Oauth2的实现步骤:

1、在门禁系统密码输入器下面,增加一个按钮,叫做“获取授权”,快递员需要首先按这个按钮,去申请授权

2、按下按钮之后,户主的手机就会弹出对话框,有人正在请求授权,系统会显示,该快递员的姓名,工号,和所属的快递公司,户主确认请求属实之后,就点击按钮,告诉门禁系统,户主给与他进入小区的权力

3、门禁系统得到我的确认后吗,向快递员显示一个进去小区的令牌,只在短时间内有效

4、快递员向门禁系统输入令牌,进去小区

2、互联网场景

把以上场景放置到互联网中,就是Oauth2的设计

1、首先,居住小区就是存储用户数据的网络服务,比如微信存储了我的好友信息,获取这些信息,就必须经过微信的"门禁系统"

2、其次,快递员就是第三方应用,想要穿过门禁系统进入小区

3、最后,户主同意第三方应用进入小区,获取户主数据

简单的说,Oauth2就是一种授权机制,数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据,系统从而会产生一个短期的令牌用来代替密码,供第三方应用使用。

3、令牌与密码

令牌和密码的作用是一样的,都可以进入系统,但是有以下三点差异:

1、令牌是短期的,到期就会自动失效,用户自己无法进行修改,但是密码一般长期有效,用户不修改,就不会发生变化

2、令牌可以被所有者立即撤销,会立即失效,但是密码不会

3、令牌有权限范围,比如只能进入小区的几单元就进几单元。

二、Oauth2的角色定义

          Oauth2有四种角色,一个是客户端,一个是资源所有者,一个是授权服务器,还有一个是资源服务器

以上述外卖场景为例,

外卖人员----->客户端

户主----->资源所有者

保安----->授权服务器

小区----->资源服务器

 

三、Oauth2认证方式

        1、Oauth2四种认证方式

 注意:

不管是哪一种授权方式,第三方应用申请令牌之前,都必须先到系统备案,说明自己的身份,然后拿到两个身份的识别码,客户端和客户端密钥,这是防止密钥被滥用,没有备案过的第三方的应用,是不会拿到令牌的

        2、授权码方式 

                 1、概念:

授权方式:第三方应用先申请一个授权码,然后再用改码获取令牌

                 2、步骤:

1、A网站提供一个链接,用户点击之后跳转到B网站,授权用户数据给A网站使用

2、用户跳转后,B网站会要求用户进行登录,然后询问是否同意给与A网站授权,用户表示同意,这时B网站就会跳回到redirect_uri参数指定路径,跳转时,会传回一个授权码。

3、A网站拿到授权码之后,就可以在后端向B网站请求令牌

4、B网站收到请求后,就会颁发令牌,具体做法是向redirect_uri指定地址,发送一个Json数据


        3、隐藏式方式 

                 1、概念:

                 2、步骤:

1、A网站提供一个链接,用户点击之后跳转到B网站,授权用户数据给A网站使用

2、用户跳转到B网站,登录后同意给与A网站授权,这时,B网站就会跳回redirect_uri

参数指定跳转网址,并把令牌作为URL参数传给A网站

       4、密码式方式 

                 1、概念:

                 2、步骤:

1、A网站要求用户提供B网站的用户名和密码,拿到之后,A直接向B请求令牌

2、B网验证身份通过后,直接给出令牌(注意:这是不需要跳转)

        5、凭证式方式 

                 1、步骤

1、A应用在命令行向B发送请求

2、B网站验证通过以后,直接返回令牌

这种方式给出的令牌,是针对第三方应用的,而不是针对用户的,即有可能多个用户共享一个令牌

四、Oauth2与JWT的区别

        1、JWT机制

1、定义:

2、JWT的组成部分:

3、JWT解决的问题:

                 4、适用的场景:

一次性的身份认证,api的鉴权

5、不适用的场景:

具体的JWT知识自己博客也有写到,可以进行参考:

JWT介绍_I Want To IT Master的博客-CSDN博客

2、Oauth2机制

上面已对Oauth2机制进行讲解,需要进行对比,只需将两个事务列出来,然后就一目了然

今天的知识就分享到这了,希望能够帮助到你!

前言技术之Oauth2全方面介绍相关推荐

  1. 阿里技术解密:全链路压测体系建设方案的思考与实践

    在阿里淘宝 双11 的过程中,长期以来都是在生产环节做全链路压测的,通过实践我们发现在生产环境中做压测,实际上会和一个 IT 组织的结构.成熟度.流程等紧密相关,所以我们把全链路压测从简单的制作范围内 ...

  2. winr8文件服务器,技术讨论 | Windows全版本提权之Win10系列解析

    原标题:技术讨论 | Windows全版本提权之Win10系列解析 一. 背景介绍 2018 年 8 月 27 日,境外安全研究人员 SandboxEscaper 在其个人主页上披露了影响 Windo ...

  3. BSN开放联盟链巡礼——文昌链的技术、架构、应用介绍

    作为引领新一轮信息技术革命的关键技术之一,近些年来,区块链逐渐走进人们的视野.我国已将区块链产业上升为国策,利用区块链赋能各行各业,乃至促进我国治理体系和治理能力现代化. 伴随着市场的不断成熟,法规的 ...

  4. 腾讯AI Lab语音技术中心应用与研究介绍

    "CCF语音对话与听觉专业组走进企业系列活动"第十期之"走进腾讯"研讨会于上周六圆满闭幕,本次研讨会由上海交通大学钱彦旻副教授主持,并邀请到四位专家介绍腾讯语音 ...

  5. 中科大计算机科学技术导师周,中国科技大学计算机科学与技术学院导师教师师资介绍简介-王超...

    中国科技大学计算机科学与技术学院导师教师师资介绍简介-王超本站小编 Free考研考试/2021-04-24 电 话:** E - Mail:cswang@ustc.edu.cn 个人主页:http:/ ...

  6. 学会linux需要哪些技术,运维安全需要掌握哪些技术呢?linux基础知识学习

    随着IT技术和业务的发展,以及各式各样安全漏洞的涌现,运维与安全这两个专业日渐交融,各企业对于运维安全的重视程度越来越高.安全和运维是业务稳定运行的保障.运维安全的发展前景是非常广阔的,吸引了许多人开 ...

  7. RNA-seq技术之转录组从头组装介绍

    RNA-seq技术之转录组从头组装介绍 转载2016-05-31 17:07:39 1.何为转录组组装 说起转录组组装,不得不先说新一代测序技术(next generation sequencing) ...

  8. 《 百度大脑AI技术成果白皮书》,介绍百度大脑5.0,附48页PDF下载

    来源:专知 [导读]百度大脑是百度AI集大成者,自2010年起开始积累基础能力,2019年升级为5.0,成为软硬件一体的AI大生产平台.百度发布< 百度大脑AI技术成果白皮书>,详细介绍了 ...

  9. Apollo进阶课程⑭ | Apollo自动定位技术——三维几何变换和坐标系介绍

    目录 1.三维几何变换---旋转 2.三维几何变换----平移 2.1刚体的位置和朝向 3. 坐标系 3.1 ECI地心惯性坐标系 3.2 ECFF地心地固坐标系 3.3当地水平坐标系 3.4 UTM ...

最新文章

  1. 挂在windows2003下的硬盘分区文件系统被系统识别为RAW,如何恢复至NTFS
  2. java 运行class 传参_JAVA 不同Class传值问题
  3. 腾飞答不忘初心的三个问题
  4. 【转】ABP源码分析四十六:ABP ZERO中的Ldap模块
  5. 提高数据库查询速度的几个思路
  6. linux sudo 配置文件,linux sudo使用和sudoers配置详解
  7. 图像仿射变换python实现
  8. limbo镜像linux下载,Limbowin10镜像下载|Limbo模拟器win10镜像 可上网版下载_最火手机站...
  9. Opencv中convertTo函数
  10. 跨境支付产品:现钞与现汇
  11. Mac上如何更改AirDrop名称呢
  12. 中国(西部)云计算中心投产,将成西部规模最大数据中心
  13. Hive综合应用案例——用户学历查询
  14. 荣耀上线“荣耀亲选”对标有品,小米要当心了!
  15. 金融壹账通重磅发布Gamma O开放平台,AnyChat携手共创开放银行新生态
  16. 唐伯虎点秋香中的一段对白!
  17. 人类对人工智能的看法有哪些
  18. 针对 华为 荣耀5X root(有bootloader锁)---【亲测刷机】
  19. mysql数据库安全模式开启_mysql 数据库安全模式
  20. AI图像大师(安卓)

热门文章

  1. 【spark系列10】spark logicalPlan Statistics (逻辑计划阶段的统计信息)
  2. iOS 面试题--转自唐巧
  3. 【学习总结】Apsara Clouder云计算技能认证:云服务器基础运维与管理+思维导图
  4. man帮助手册中英文设置
  5. 高品质免费字体集锦:25款英文艺术字体下载
  6. 1060显卡用什么软件测试,科技 篇七:有了它,GTX1060竟变智商检测卡!
  7. 将王者荣耀头像设置成和微信头像不一样
  8. cocos2dx3.X shader使图片置灰
  9. 58页大数据资源平台建设可行性研究方案(附下载)
  10. excel导入mysql 截断_Excel导入数据库时出现的文本截断问题解决方案