前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >认证授权:通过案例学习OAuth2

认证授权:通过案例学习OAuth2

作者头像
Freedom123
发布2024-03-29 16:15:37
860
发布2024-03-29 16:15:37
举报
文章被收录于专栏:DevOpsDevOps

一.OAuth2的适用场景

举个栗子先。小明QQ*空间积攒了多年的照片,想挑选一些照片来打印出来。然后小明在找到一家提供在线打印并且包邮的网站(我们叫它PP*吧(Print Photo缩写 😂))。

那么现在问题来了,小明有两个方案来得到打印的服务。

  1. 在自己的QQ空间把想要打印的照片下载下来,然后提供给PP(直接发邮件给PP或者网盘共享给PP等等)。
  2. 把自己的QQ账号密码给PP,然后告诉PP我要打印哪些照片。

针对方案(1):小明要去下载这些照片,然后给PP,小明累觉不爱,,,

针对方案(2):小明交出去自己的QQ账号密码,还要告诉PP哪些需要打印,哪些不需要,小明觉得自己有些小秘密不想给PP看,,,

小明觉得很痛苦,那么有没有不给PP账号密码,不下载照片,自己选哪些要打印直接扔给PP去打印的办法呢?OAuth走了过来扔给小明一块肥皂.

二、OAuth2的四个角色

进入正题,在OAuth2的完整授权流程中有4个重要的角色参与进来:

  1. Resource Owner:资源拥有者,上面栗子中的小明
  2. Resource Server:资源服务器,上面栗子中的QQ空间,它是小明想要分享照片给PP的照片的提供方;
  3. Client:第三方应用客户端,上面栗子中的PP,代指任何可以消费资源服务器的第三方应用;
  4. Authorization Server :授权服务器,管理Resource Owner,Client和Resource Server的三角关系的中间层

其中Authorization server和Resource server可以是独立的服务提供商,也可以是在一起的,比如腾讯提供QQ空间作为资源服务器的同时也提供授权服务。

从这里可以看出,OAuth2在解决小明遇到的问题的过程中增加了一个Authorization server的角色。又印证了那句话,在计算机领域的所有问题都可以添加一个中间层来解决。

OAuth2解决问题的关键在于使用Authorization server提供一个访问凭据给Client,使得Client可以在不知道Resource owner在Resource server上的用户名和密码的情况下消费Resource owner的受保护资源。

三、OAuth2的授权流程

在上述的OAuth完整流程中,(A)->(B)->(C)->(D)是授权的过程(参与者有小明PPQQ空间Authorization server);(E)->(F)是消费资源的过程(参与者有PPQQ空间)。

  • (A)小明访问PPPPQQ空间发起授权请求;
  • (B)QQ空间接受PP的授权请求,并返回授权许可PP
  • (C)PP使用授权许可Authorization server发起请求**;**
  • (D)Authorization server验证PP的身份和授权许可,发送访问令牌PP
  • (E)PP访问令牌请求小明存储在QQ空间的照片;
  • (F)QQ空间根据访问令牌,返回小明的照片信息给PP

这其中比较重要的一个概念是访问令牌 ,它代表的信息是整个OAuth2的核心,也是ABCD这些步骤最终要得到的信息。

访问令牌是对PP可以在QQ空间访问小明的哪些信息这个完整权限的一个抽象,比如PP要访问小李在QQ空间的照片,那么就是另外一个访问令牌了。

访问令牌背后抽象的信息有哪些呢?如下3类信息。

  1. 客户端标识(比如PP);
  2. 用户标识(比如小明);
  3. 客户端能访问资源所有者的哪些资源以及其相应的权限。

有了这三类信息,那么资源服务器(Resouce Server)就可以区分出来是哪个第三方应用(Client)要访问哪个用户(Resource Owner)的哪些资源(以及有没有权限)。

其他

参考:https://blog.csdn.net/Persims/article/details/126517101

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.OAuth2的适用场景
  • 二、OAuth2的四个角色
  • 三、OAuth2的授权流程
  • 其他
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档