文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

谈谈你对OAuth的理解,这道题你会了吗?

2024-12-01 15:23

关注

 1位工作5年的小伙伴被问到这样一道面试题,说谈谈你对OAuth的理解。当时,这位小伙伴感觉回答得不是很理想,希望我拍一期视频详细地介绍一下。

今天,我给大家讲一讲,我对这个问题的理解。

1、什么是 OAuth

OAuth是一个关于授权(Authorization)的开放技术标准,在全世界得到广泛应用,它本质上是一种协议,可以在不共享用户用户名和密码的前提下,实现将授权从应用程序另一个应用程序。如图所示:

咱们可以使用QQ或者微信直接登录京东APP,而无需在京东重新注册用户。相当于,用户可以在一个平台上登录,获得授权后,也可在另一平台上执行操作和查看数据。使用最为广泛的场景是SSO(单点登录)。

举个例子,有一位访客需要在房主不在家时进到房间里面,房主又不能把门锁密码告诉访客,而是给预先发给访客一张临时房卡,这张房卡刷一次就失效了。OAuth 的工作方式和这个场景非常类似,一个应用程序向另一个应用发送授权令牌来授予用户访问权限,而不是发送用户的密码。

2、OAuth的工作原理

我们知道,任何的身份认证,本质上都是基于对请求方的不信任产生的。而OAuth的出现,主要是解决多个应用之间的授权信任问题。在OAuth的交互过程中有四个参与角色,如图所示:

它们分别是:

  1. 资源所有者(Resource Owner):一般是指咱们自己。
  2. 客户端(Client):一般是指需要授权的应用,比如京东APP。
  3. 资源服务器(Resource Server):一般是指保存信息的服务器,比如QQ密码和微信密码的服务器。
  4. 授权服务器(Authorization Server):一般是指提API的服务器,比如QQ的Open API服务,微信的Open API服务。

一般情况下,资源服务器和认证服务器是同一个服务,这样更方便调用。OAuth的工作原理如图所示:

第1步:客户端向资源拥有者发送授权请求,一般资源拥有者的资源会存放在资源服务器。

第2步:客户端会收到资源服务器的授权许可。

第3步:客户端拿到许可之后,再向授权服务器发送一次验证,给客户端颁发一个Access Token访问令牌。

第4步:客户端拿到令牌之后,交给资源服务器。

第5步:资源服务器会将获取到的令牌传给认证服务器验证令牌的有效性。

第6步:资源服务器验证令牌通过之后,就会返回一个受保护的资源。

在我们看到的这个流程中,最重要的是第2步,也就是在第3步获取授权之前,客户端要先申请许可资源的内容,比如用户头像,用户昵称等等。也就是客户端向资源服务器申请授权的时候,需要填写以下授权所需的信息,分别是:应用名称、应用网站、重定向URI或者回调的URL(redirect_uri)、客户端标识client_id和客户端密钥client_secret。这些信息需要我们在 。

当然,OAuth一共设计了四种授权模式,分别是:

授权码模式(Authorization Code Grant)。

简化模式(Implicit Grant)。

密码模式(Resource Owner Password Credentials Grant)。

客户端模式(Client Credentials Grant)。

由于视频时长的限制,我这里就不详细介绍了。有兴趣的小伙伴可以在评论区回复666,我可以单独再拍摄一期视频专门讲解。

3、关于OAuth 2.0

OAuth 2.0 是 OAuth 的最新版本。OAuth 的首版于 2010 年发布。OAuth 2.0 于 2012 年发布,修复了 OAuth 1.0 中存在的若干漏洞。目前,大家基本上都只会使用OAuth2.0了。

好了,以上就是我对OAuth的理解。

来源:Tom弹架构内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯