oauth2

  1. 生词:

    1. 授权码模式(authorization code)
    2. 简化模式(implicit)
    3. 密码模式(resource owner password credentials)
    4. 客户端模式(client credentials)
  2. 问题:

    1. 分享目标:大致了解oauth的运行流程,及如何使用oauth(代码实现)。
    2. oauth是什么?
      1. oauth是目前最流行的一套授权机制标准。
    3. oauth的应用场景?
      1. 假设一个例子:

        1. 有一个在线读取pdf的网站。极速PDF在线阅读
        2. 我们想要在线阅读百度云存储的pdf文档,那么就需要让极速pdf来读取百度云存储的pdf,那么极速pdf是怎样获取到用户的授权呢?
        3. 传统的做法是我们将百度云账号密码告诉极速pdf,这样后者就可以进行读取pdf文档了
        4. 这样的做法会有几个严重的缺点
          1. 极速pdf为了后续的在线阅读服务可能会保存我们的百度云账号密码
          2. 极速pdf会读取我们百度云所有资料。
          3. 只有我们修改密码后才能控制极速pdf的权利,于此同时我们用的其他第三方应用也都失效了
        5. 这时由国外的几位大佬共同发起的,为API访问授权提供一套标准:Oauth
  3. oauth2.0 运行流程

    1. A:第三方请求用户获取授权

      B:用户同意授权

      C:第三方带着用户授权向认证服务器获取token

      D:认证服务器校验用户授权后,返回token

      E:带着token请求资源服务器

      F:资源服务器校验token 后返回所需资源

  4. 授权码模式(authorization code)

      1. 第三方服务跟用户索要授权
      2. 用户给予授权
      3. 浏览器拿着加密的用户信息和回调地址给认证服务器
      4. 认证服务器校验用户信息和回调地址后返回授权码。
      5. 第三方应用再根据授权码和回调地址请求认证服务器
      6. 认证服务器校验后返回token
  5. 简化模式(implicit grant type)

    1. 执行流程:
      1. 获取用户授权
      2. 将用户client信息和回调地址发送到认证服务器
      3. 认证服务器校验成功后返回重定向地址和token对象的哈希值
      4. 浏览器带着重定向地址向资源服务器发出请求
      5. 资源服务器返回一个页面,根据hash值获取token信息
  6. 密码模式(Resource Owner Password Credentials Grant)

    1. 执行流程
      1. 用户向客户端提供账号密码
      2. 客户端用账号密码请求认证服务器
      3. 认证服务器校验成功后返回token
  7. 客户端模式(Client Credentials Grant)

    1. 第三方服务带上client信息向认证服务器请求获取token
    2. 认证服务器校验client信息后返回token

oauth2学习的更多相关文章

  1. OAuth2学习及DotNetOpenAuth部分源码研究

    OAuth2学习及DotNetOpenAuth部分源码研究 在上篇文章中我研究了OpenId及DotNetOpenAuth的相关应用,这一篇继续研究OAuth2. 一.什么是OAuth2 OAuth是 ...

  2. OAuth2学习中的一些高频问题的QA

    关于OAuth2相信很多初学者都有一些疑问,胖哥将这些疑问一一收集了起来做成了QA,或许能帮助学习者. OAuth2相关的QA Q:OAuth2 的一些常用场景? A: OAuth2主要用于API授权 ...

  3. Spring Security OAuth2学习

    什么是 oAuth oAuth 协议为用户资源的授权提供了一个安全的.开放而又简易的标准.与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需 ...

  4. OAuth2学习笔记

    参考:https://aaronparecki.com/oauth-2-simplified/ 1.角色定义 应用程序(客户) 需要获取用户的账号信息,获得相关权限. API服务器 资源服务器就是AP ...

  5. 使用DotNetOpenAuth搭建OAuth2.0授权框架

    标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1.0. ...

  6. DotNetOpenAuth搭建OAuth2.0

    使用DotNetOpenAuth搭建OAuth2.0授权框架 标题还是一如既往的难取. 我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物 ...

  7. C#搭建Oauth2.0认证流程以及代码示例

    我认为对于一个普遍问题,必有对应的一个简洁优美的解决方案.当然这也许只是我的一厢情愿,因为根据宇宙法则,所有事物总归趋于混沌,而OAuth协议就是混沌中的产物,不管是1...0a还是2.,单看版本号就 ...

  8. java技术

    线程池的原理及实现:https://blog.csdn.net/hsuxu/article/details/8985931 Java高级工程师面试题总结及参考答案:https://www.cnblog ...

  9. OAuth2.0学习(1-12)开源的OAuth2.0项目和比较

    OAuth2.0学习(2-1)OAuth的开源项目   1.开源项目列表 http://www.oschina.net/project/tag/307/oauth?lang=19&sort=t ...

随机推荐

  1. 《STL源码剖析》——第五、六:关联容器与算法

    第五章.关联容器  5.0.关联容器 标准的STL关联式容器分为set(集合)和map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和multimap(多键映射表).这些容器的底层 ...

  2. golang的数据类型之整型类型

    数据类型: 整数 : int, int32, int64, uint, uint32, uint64 字符串 : string 布尔:bool 浮点:float32 float64 uint 表示无符 ...

  3. jvm学习(5) 对象的创建与结构

    上图表明:jvm虚拟机位于操作系统的堆中,并且,程序员写好的类加载到虚拟机执行的过程是:当一个classLoder启动的时候,classLoader的生存地点在jvm中的堆,然后它会去主机硬盘上将A. ...

  4. 如何学习 websocket ?

    如何学习 websocket ? 使用 HTML https://github.com/phoboslab/jsmpeg MPEG1 进行播放 https://w3c.github.io/media- ...

  5. 【freemarker】渲染列表一系列操作

    数据模型: public class AddressVo implements Serializable { private static final long serialVersionUID = ...

  6. C#设计模式:策略者模式(Stragety Pattern)

    一,什么是策略模式? 1,针对同一命令或行为,不同的策略做不同的动作. 2,比如针对一组算法,将每个算法封装到具有公共接口的独立的类中,从而使它们可以相互替换.策略模式使得算法可以在不影响到客户端的情 ...

  7. CLR 垃圾回收知识梳理

  8. 【转载】关于Maven项目build时出现No compiler is provided in this environment的处理

    参考地址;https://blog.csdn.net/lslk9898/article/details/73836745

  9. 2018-2-13-win10-uwp-分治法

    title author date CreateTime categories win10 uwp 分治法 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:2 ...

  10. 06.Linux-RedHat系统网卡服务连不上活跃连接路径变化

    问题:在新装的系统中,重启网卡的时候出现如下报错 [root@localhost ~]# service network restart 正在关闭接口 eth0: 设备状态:3 (断开连接) [确定] ...