角色:

OAuth2.0为用户和应用定义了如下角色:

资源拥有者、资源服务器、客户端应用、授权服务器

资源拥有者:拥有共享数据的人或应用,比如Facebook的用户就是

资源拥有者,但资源拥有者也可以是一个应用

资源服务器:托管资源的服务器。比如Facebook

客户端应用:请求访问存储在资源服务器资源的应用。资源被资源拥有者所

拥有。客户端应用可以是一个请求访问用户Facebook账号的第三方游戏

授权服务器:授权客户端应用能够访问资源拥有者所拥有的资源。授权服务器和资源

服务器可以是同一个服务器,但不是必须的,如果这二个服务器是分开的,OAuth2.0

没有讨论二个服务器应该如何通信,这是由资源、授权服务器自行决定的

客户端类型:

保密、公有

保密的客户端能够对外部保持客户端密码保密。该客户端密码是由授权

服务器分配给客户端应用的。为了避免欺骗,该密码是授权服务器用来

识别客户端的。例如一个保密的客户端可以是web应用,除了管理员,没有

任何人能够访问服务器和看到该密码。

公有的客户端不能使客户端密码保密。比如移动手机应用或桌面应用汇将

密码嵌入在内部。这样的应用可能被破解,并且泄露密码。

客户端配置:

web应用、用户代理、原生

web应用:运行在web服务器内的应用,实际上,web应用一般由浏览器和服务端

组成。如果web应用需要访问资源服务器(Facebook账号),然后客户端密码被保存

在服务器上,因此密码是保密的。

用户代理: 用户代理应用比如运行在浏览器上的JavaScript应用,浏览器

是用户代理,用户代理应用可以保存在web服务器上,但应用程序只运行一次

下载的用户代理。

原生应用:比如桌面应用或移动手机应用。

授权:

客户端标识,客户端秘钥和重定向URI:

在客户端应用能请求访问资源服务器的资源之前,客户端应用程序

必须先在资源服务器相关联的授权服务器中进行注册。注册一个一次性

的任务。一旦注册了,除非客户端注册被取消了,注册将持续有效。注册

后客户端应用将由授权服务器分配客户端标识和秘钥。在授权服务器上,

客户端标识和秘钥是唯一标识客户端应用的,如果客户端应用注册了多个授权

带我去,每一个授权 服务器将 发出唯一的标识给该客户端应用。无论什么时候客户端

应用,想要访问同样资源服务器上的资源,都需要通过发送客户端标识和秘钥到授权服务器

来验证自己。在注册过程中,客户端应用也注册了一个重定向URI,当资源拥有者授权给客户 应用时,该重定向URI会被使用。当资源拥有者成功的通过授权服务器给客户端应用时,

资源拥有者被重定向回客户端应用,再跳转到该重定向URI

授权批准类型:

授权码、契约、资源拥有者秘钥证书、客户端证书

授权码:资源拥有者访问客户端应用,客户端应用告诉用户通过授权

服务器Facebook来登录到客户端应用。 为了通过授权服务器登录,用户

通过客户端被重定向到授权服务器。客户端应用发送它的客户端标识给授权服务器

那么授权服务器就知道哪个应用尝试访问守保护的资源。当被重定向回客户端应用时

授权服务器发送给用户特定的重定向URI,即客户端已经提前与授权服务器注册。随着

重定向,授权服务器发送一个代表授权的授权码。 当在客户端应用的重定向被URI被访问时,

客户端应用直接连接授权服务器,客户端应用发送授权码,客户端标识及秘钥,如果客户端

应用能接受这些值,那么授权服务器返回一个访问令牌。 现在客户端应用就可以用该访问

令牌请求资源服务器的资源了,该访问令牌可作为客户端授权和授权访问资源。

契约: 契约授权类似授权码授权,除了用户完成授权后,访问令牌返回给客户端

应用外。当用户代理被重定向到重定向URI,访问令牌因此被返回。这意味着访问

令牌可以被用户的代理访问,或者在契约授权过程中参与的原生应用。访问令牌在

web服务器上不上安全存储的。 进一步说,客户端应用可以只发送它的客户端标识给

授权服务器。如果客户也发送它的秘钥,那么客户端秘钥将不得不保存在用户代理或原生

应用里,那将使它很容易被破解。 契约授权大多数用在用户代理或原生应用中。用户代理

或原生应用将收到授权服务器的访问令牌

资源拥有者秘钥证书: 资源拥有者证书授权方法通过客户端应用访问资源

拥有者证书来工作。比如用户可以在客户端应用输入他的Facebook用户名

及秘钥(证书) 该客户端应用就可以用用户名和秘钥访问用户在Facebook的资源

客户端证书: 客户端证书授权对应客户端需要在资源服务器访问资源或调用函数的情形

使用,与特定的资源拥有者无关

OAuth_2的更多相关文章

随机推荐

  1. 第二节:链接mongodb服务器

    查看mongodb的使用说明 版本是3.6.0 options 选项 指的是用户名和密码 address 数据库地址  数据库格式是 ip:端口/数据库 192.168.0.5:999/foo 链接本 ...

  2. List和Tuple的中的method对比

  3. tuple unpacking

    拆开Tuple lax_coordinates = (33.9425, -118.408056) latitude, longitude = lax_coordinates # tuple unpac ...

  4. 2019 GNTC 阿里云参会分享:开放、弹性的阿里云网络NFV平台

    作为全球规模最大的网络技术盛会之一,GNTC全球网络技术大会是网络技术发展的重要风向标,包含战略规划.产业方向.技术趋势.应用创新等皆汇集于此.而作为云服务商代表,阿里云再度受邀以顶级钻石合作伙伴之名 ...

  5. ES6转ES5环境搭配

    1.初始化项目 在项目根目录创建 package.json 文件 npm init //或者 npm init -y 2.安装babel-cli脚手架 npm install babel-cli -- ...

  6. 暑期训练 CF套题

    CodeForces 327A 题意:有n个数,都是0或1,然后必须执行一次操作,翻转一个区间,里面的数0变1,1变0,求最多1的数量 思路:最开始我写的最大字段和,后面好像写搓了,然后我又改成暴力, ...

  7. [CSP-S模拟测试]:Set(随机化)

    题目描述 你手上有$N$个非负整数,你需要在这些数中找出一个非空子集,使得它的元素之和能被$N$整除.如果有多组合法方案,输出任意一组即可.注意:请使用高效的输入输出方式避免输入输出耗时过大. 输入格 ...

  8. <HTTP权威指南>记录 ---- 网络爬虫

    网络爬虫 网络爬虫(web crawler)能够在无需人类干预的情况下自动进行一系列Web事务处理的软件程序.很多爬虫会从一个Web站点逛到另一个Web站点,获取内容,跟踪超链,并对它们找到的数据进行 ...

  9. 2.2寸(14PIN)TFT液晶屏STM32 SPI 控制

    屏幕如图所示,共14个IO口(也可能只有13个),控制屏幕的有9个IO口 详细版介绍见:http://www.ciast.net/post/20151112.html 反面IO口图: 连接通过SPI方 ...

  10. Microsoft Office Excel

    解除合并,并复制原始值到每一个解除合并后的单元格 对齐方式 -> 合并后居中 -> 取消单元格合并 编辑 -> 查找和选择 -> 定位条件 -> 空值 输入=然后按↑选择 ...