专栏首页用户4352451的专栏OAuth2.0认证和授权机制

OAuth2.0认证和授权机制

Auth2.0

什么是Auth2.0?

  1. OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。

授权(authorization)的开放网络标准的流程?

  1. 看下面流程图:

(A)用户打开客户端以后,客户端要求用户给予授权。

(B)用户同意给予客户端授权。

(C)客户端使用上一步获得的授权,向认证服务器申请令牌。

(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。

(E)客户端使用令牌,向资源服务器申请获取资源。

(F)资源服务器确认令牌无误,同意向客户端开放资源。 这么一个过程 2. 看到上面的流程,我们大概都有一个疑问,就是用户同意授权后这个步骤是如何授权的?怎么就算授权成功,通过什么东西去向认证服务器申请令牌?

  • Auth2.0中在这个步骤有4种模式(客户端的授权模式)?
    1. 授权码模式(authorization code)
    2. 简化模式(implicit)
    3. 密码模式(resource owner password credentials)
    4. 客户端模式(client credentials)
  1. 授权码模式(authorization code)
  • 如上图
  1. 用户先在第三方服务点击请求登录,且通过了1,2,3的步骤(这个步骤就等于去访问认证权限服务的门槛)
  2. A用户在进行登录授权的时候发送请求给认证服务器,此时需要附上参数 APPID(你需要登录的第三方服务在认证服务器上维护的ID),redirection URI(第三方服务的地址)…等。
  3. B步骤是认证服务器跳转到需要用户去确认授权的页面,得到用户的意见。
  4. C用户同意授权,反馈给认证服务器
  5. D认证服务器将之前得到的,redirection URI+ code去请求第三方服务的地址,如果用户没有同意的话,就只会,redirection URI地址则会登录失败
  6. E CODE码通过第三方的客户端发送给后台服务,后台服务使用CODE+APPID+appSecret去请求认证服务器拿到令牌AccessToken。认证结束
  7. 上面的这种请求方式是从第三方应用开始(例如:通过微信号登录CSDN) 还有就是直接在resource Owner(用户服务)开始登录 如通过将第三方应用嵌入到微信公众平台上如下图
  1. 其他模式就不在这个赘述 想了解可以点击这里
  2. 从上面看下来Outh2.0 的最终目的是什么呢?
  • 首先我们需要知道两点:
  1. 用户授权信息在授权服务器中是有记录的,当用户第一次授权给相应的第三方应用后,不需要进行再次授权
  2. 每个用户在资源服务器中都有一个唯一的ID,第三方应用可以将其存储起来并与本地用户系统一一对应起来
  3. 如微信公众号的大三方应用就是为了拿微信用户的唯一标识openId来和第三方应用的用户表关联起来或者创建用户。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • StringBuffer StringBulider String的区别

    补充: (1) String的创建机理 由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常...

    居士
  • 以正确姿势理解区块链技术?

    今天在看了一个视频《全球区块链全球生态技术大会》中的腾讯云通过区块链技术实现了一个针对于企业服务的Tbaas区块链基础服务平台。(视频地址:https://ti...

    居士
  • Redis的线程I/O模型

    居士
  • 微信微博都在使用的OAuth2是什么原理

    现在开放平台非常流行,例如微信开放平台、微博开放平台等,开放平台都涉及用户授权问题,OAuth2就是目前的主流授权解决方案 OAuth2是什么 OAuth(...

    dys
  • PHP制作百度站内搜索绿色通道的网页列表数据文件

    用过百度站内搜索的朋友,都知道前不久推出了一个绿色收录通道,改善站内搜索的时效性和覆盖率,说明如下: 站内搜索结果数太少?最新的页面搜不到?您可以在本页面提交数...

    张戈
  • 你可能不知道的setInterval的坑

    之前印象中一直记得setInterval有一些坑,但是一直不是很清楚那些坑是什么。今天去摸索了下之后,决定来做个记录以免自己忘记,也希望让更多人了解到这个坑。

    嘿嘿嘿
  • 一分钟学会Linux用户管理

    wuweixiang
  • 涨姿势:如何让你的Google账户更安全

    如果你使用Gmail作为你主要的电子邮件,或者长期依赖于谷歌提供的服务,再或者你是“Google脑残粉”……那么这篇文章就值得你来读读。本文将指导你重新审视并重...

    FB客服
  • 特朗普炮轰:Google一下,净说我坏话!

    用谷歌搜“特朗普新闻”,结果只显示CNN这些“假新闻媒体”的观点或报道,而共和党、保守派以及“公平媒体”被拒之门外。

    新智元
  • Unity可编程渲染管线系列(十)细节层次(交叉淡化几何体)

    这是涵盖Unity的可脚本化渲染管道的教程系列的第十期。它增加了对交叉过渡LOD组和着色器变体剥离的支持。

    放牛的星星

扫码关注云+社区

领取腾讯云代金券