Oauth笔记

上周的工作有安全验证这一块,但不懂,只知道有几个关键字Oauth、secret-key 、token、签名等。今天就查下资料做笔记。

 

Oauth是什么

不依靠用户账号和密码就能获得访问资源权限

 

本质:一种开放的协议

作用:为用户资源的授权提供了一个安全的、开放而又简易的标准(不会使第三方触及到用户的帐号信息)。

特点: 
      简单:不管是OAUTH服务提供者还是应用开发者,都很易于理解与使用;

      安全:没有涉及到用户密钥等信息,更安全更灵活;

      开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH;

URL:

      Request Token URL: 获取未授权的Request Token服务地址; 
      User Authorization URL: 获取用户授权的Request Token服务地址; 
      Access Token URL: 用授权的Request Token换取Access Token的服务地址;

参数:

OAUTH_version: OAUTH的版本号

OAUTH_nonce: 随机生成的字符串

OAUTH_timestamp: 发起请求的时间戳(long类型)

OAUTH_signature_method: 请求串的签名方法(签名的方法有:HMAC-SHA1、RSA-SHA1与PLAINTEXT等三种)

OAUTH_signature: 用上面的签名方法对请求的签名

OAUTH_consumer_key: 使用者的ID,OAUTH服务的直接使用者是开发者开发出来的应用

OAUTH_consumer_secret:OAUTH_consumer_key对应的密钥

OAUTH_token:OAUTH进行到最后一步得到的一个“令牌”,通过此“令牌”请求,就可以去拥有资源的网站抓取任意有权限可以被抓取的资源

OAUTH_token_secret:OAUTH_token对应的私钥

授权流程:

     1. 获取未授权的Request Token 
     2. 获取用户授权的Request Token 
     3. 用授权的Request Token换取Access Token

案例:

     当服务B(打印服务)要访问用户的服务A(图片服务)时,通过OAUTH机制,服务B向服务A请求未经用户授权的Request Token后,服务A将引导用户在服务A的网站上登录,并询问用户是否将图片服务授权给服务B。用户同意后,服务B就可以访问用户在服务A上的图片服务。整个过程服务B没有触及到用户在服务A的帐号信息。

转载:http://www.cnblogs.com/lovesong/p/3602788.html

时间: 2024-11-03 01:34:03

Oauth笔记的相关文章

oAuth 2.0 笔记

OAuth 2.0规范于2012年发布,很多大型互联网公司(比如:微信.微博.支付宝)对外提供的SDK中,授权部分基本上都是按这个规范来实现的. OAuth 2.0提供了4种基本的标准授权流程,最为复杂的是Code(授权码)这种类型,流程图如下:(摘自RFC6749官方文档) 上图中有几个术语解释一下: Resource: 受保护的资源,比如:用户abc在微信上的用户资料(头像,朋友圈之类) Resource Owner:资源所有人,即:上面讲的用户abc Client:指第三方应用,比如:微信

在Nginx中增加对OAuth协议的支持的教程_nginx

我们使用Nginx的Lua中间件建立了OAuth2认证和授权层.如果你也有此打算,阅读下面的文档,实现自动化并获得收益. SeatGeek在过去几年中取得了发展,我们已经积累了不少针对各种任务的不同管理接口.我们通常为新的展示需求创建新模块,比如我们自己的博客.图表等.我们还定期开发内部工具来处理诸如部署.可视化操作及事件处理等事务.在处理这些事务中,我们使用了几个不同的接口来认证:     Github/Google Oauth     我们SeatGeek内部的用户系统     基本认证  

Windows 8.1 store app 开发笔记

原文:Windows 8.1 store app 开发笔记 零.简介 一切都要从博彦之星比赛说起.今年比赛的主题是使用Bing API(主要提到的有Bing Map API.Bing Translate API和Bing AD API)设计移动应用(Windows store app和Windows phone app).从7月初开始设计到现在,应用的功能已经基本完成,就差美工来给界面优化一下.下面是我设计的应用的功能和实现的方法, 一.BING MAP API 作为一个以Bing Map AP

APACHE安装笔记

apache|笔记 作者:车东 摘要: WEB应用容量规划:根据硬件配置和WEB应用的特点进行WEB服务的规划及一些简单的估算公式: APACHE安装过程:apache的通用的简化安装选项,方便以后的应用的模块化配置:修改 HARD_SERVER_LIMIT:vi /path/to/apache_src/src/include/httpd.h#define HARD_SERVER_LIMIT 2560 <===将原来的 HARD_SERVER_LIMIT 256 后面加个"0"a

JetSpeed学习笔记(一)

笔记 JetSpeed学习笔记(一) fuweilin 2005-4-7 前言 参加了公司的portal的兴趣小组,今天对portal进行学习.首先上网看了看一些portal的资料,对portal.portlet.portlet container以及JSR168等概念有个基本的了解.决定进一步实战的方式感受portal,于是学习JetSpeed.     1.  JetSpeed介绍JetSpeed是Apache组织开发的一个采用Java和XML的开放源代码的企业信息门户的实现.门户可以让终端

安装配置bugzilla笔记

因为自己在安装配置的时候走了些弯路,所以一方面自己提个醒,另一方面可以让有这方面需要的朋友做个参考 bugzilla是一个可以发布bug以及跟踪报告bug进展情况的开源软件,有关的官方文档可以查看:http://www.bugzilla.org/docs/ 本人是在RH9上安装配置成功bugzilla-2.18rc3的,事先也成功安装配置过2.16.7,后来发现在2.18中加入了图表的功能,觉得蛮有意思的,所以升级了一下.在安装前先确定自己机器上一些软件版本的情况:perl(5.6 or abo

Nutch 笔记(一):Quick Start

最近用到了nutch,目的是针对指定的一些网站抓取其内容,然后做分析用. nutch 笔记是我使用nutch过程一系列总结,写下自己的学习经过和大家一起分享,也希望能得到大家的指点 好了,废话少说,言归正传,第一篇:Quick Start,我们的目标是快速的能跑起来,能检索出我们想要的结果. 首先要明白nutch是什么? nutch是一个基于lucene的开源搜索引擎,它包括了所有你想要的东西,是一个完整的解决方案 . 一:安装JDK 如果你已经安装了JDK,并且已经设置了JAVA_HOME,那

Akka笔记之日志及测试

英文原文链接,译文链接,原文作者:Arun Manivannan ,译者:有孚 在前两篇笔记中(第一篇,第二篇),我们简单地介绍了一下Actor以及它的消息传递是如何工作的.在本篇中,我们将看下如何解决TeacherActor的日志打印及测试的问题. 简单回顾 前面我们的Actor是这样的: class TeacherActor extends Actor { val quotes = List( "Moderation is for cowards", "Anything

git笔记:通过给grunt-inline打tag看tag操作

晚上review了下grunt-inline的issues,看到有个兄弟pull request,修正了0.3.0版本的一个bug.于是就merge了下,然后发布了0.3.1版本(这里). npm publish后,突然想到一个问题,发布了这么多个版本了,但好像都没有打过tag,这个不利于版本回溯以及bug trace.svn版本管理里有tag的概念,git里八九不离十也有,虽然还没用过.就简单百度了下,打完tag后顺便做下笔记: 查看tag git tag 比如我在grunt-inline的项