OAuth认证 2.0
- 格式:doc
- 大小:97.50 KB
- 文档页数:4
OAuth 2.0 认证
全称
Open the Authentication 开放认证
OAUTH是一种开放的协议,为桌面程序或者基于B/S的web应用提供了一种
简单的,标准的方式去访问需要用户授权的API服务
OAUTH认证授权具有以下特点
1. 简单:不管是OAUTH服务提供者还是应用开发者,都很容易于理解与使用;
2. 安全:没有涉及到用户密钥等信息,更安全更灵活;
3. 开放:任何服务提供商都可以实现OAUTH,任何软件开发商都可以使用OAUTH
OAuth简史
2007年12月4日发布了OAuth Core 1.0:此版本的协议存在严重的安全漏洞
2009年6月24日发布了OAuth Core 1.0 Revision A:
此版本的协议修复了前一版本的安全漏洞,并成为RFC5849.
产生条件
如今很多网站的功能都强调彼此之间的交互,因此我们需要一种简单,标准的解决方案来安
全的完成应用的授权 ,于是OAuth应运而生.
角色
典型的OAuth应用通常包含三种角色
1. Consumer 消费方
2. Service Provider 服务提供方
3. User 用户
举例说明:
假设我们做了一个SNS(社交网络),它有一个功能,可以让会员把他们在Google上的联系
人导入到SNS上,那么此时的消费方就是SNS,而服务提供者则是Google。
条件
消费方如果想使用服务提供者的OAuth功能,通常需要先申请两样东西:
Consumer Key (消费者的关键,多指:账户)
OAUTH服务的直接使用者是开发者开发出来的应用。所以该参数值的获取一般是要去
OAUTH服务提供商处注册一个应用,再获取该应用的OAUTH_consumer_key
Consumer Secret (消费者秘密,多指:密码)
http://baike.baidu.com/view/3948029.htm 地址
流程
A:消费方请求Request Token (请求令牌)
B:服务提供者授权Request Token
C:消费方定向用户到服务提供者
D:获得用户授权后,服务提供者定向用户到消费方
E:消费方请求Access Token (访问令牌)
F:服务提供者授权Access Token
G:消费方访问受保护的资源
简单来说就是用Request Token换取Access Token的过程.
OAuth和OpenID的区别
OAuth关注的是authorization;而OpenID侧重的是authentication。从表面上
看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别:
authorization: n. 授权,认可;批准,委任
authentication: n. 证明;鉴定;证实
OAuth关注的是授权,即:“用户能做什么”;而OpenID关注的是证明,即:“用
户是谁”。
举例说明:
此类应用属于身份证明问题,本应该通过OpenID来实现,但因为错误的使用了OAuth,
从而带来安全隐患:设想一下用户只是在网站上发表了评论而已,但却赋予了网站随意操作
自己私有数据的权利!这就好比:快递员送包裹,为了证明收件人的身份,原本你只要给他
看一下身份证即可,可你却把防盗门钥匙都给他了!