OAuth 2.0文档翻译(第一章)

OAuth 2.0 授权框架

概要

OAuth 2.0授权框架使得第三方应用获得有限的http服务,也代表了用户(资源拥有者)通过策划一个批准通信在用户和http服务之间,或者运行第三方应用代表自身获得权限。这个说明文档取代了在RFC 5849描述的过时的OAuth 1.0协议。

这份备忘录的地位

这是一个互联网标准跟踪文档。

这份文档是IETF(Internet Engineering Task Force:互联网工程任务小组)的作品。代表了IETF团队的一致意见。接受了公共的审查并且被IESG(Internet Engineering Steering Group:互联网工程指导小组)批准发布。互联网标准更加详细信息可在Section 2 of RFC 5741获取。

第一章:介绍

在传统的client—server认证模型中,client在server端使用resource owner 的证书认证然后请求protected resource。为了使得第三方应用能访问protected resource,resource owner 和第三方分享了它的证书,但是这也产生了一些弊端:

1.第三方应用被要求存储resource owner 的证书以便将来使用,(证书)通常是明文密码。

2.服务器被要求不顾在密码方面的固有的安全缺陷,而去支持密码授权。

3.第三方应用获得过多的用户权限,使得resource owner 无法限制时长(证书有效时间)或访问一个被限制的资源子集。

4.resource owner 没办法撤销对某一个应用的访问权限必须通过改变用户账号的密码才能实现,但这样也会撤销对其他应用的访问权限。(大概的意思是第三方账号和密码对于所有的第三方应用都是通用的,不可能只限制某一个应用)

5.任何一个第三方应用被破解,用户密码以及相关的数据都会泄露。

OAuth 2.0 通过引入授权层和把客户端角色从用户中分离出来解决这个问题。在OAuth 2.0中,client请求访问被source owner控制、寄管在resource server上的资源。并且本分配了一系列不同的证书。

代替使用resource owner的证书访问protected resources,client获取一个access token(任务令牌)——一个指明了特定的范围,生命周期和其他的访问属性的字符串。access token是经resource owner同意,由authorization server分配给第三方client的。client使用access token访问被resource server 托管的资源。

例如,一个终端用户(resource owner)可以授权一个printing service(client)访问存于photo sharing service(resource server)上的protected photo,而不用把他的用户名和密码告诉printing service。相反,他可以通过一个被photo sharing service(authorization server)信任的server直接认证,server 给printing service分配一个特定授权证书(access token)。

这份文档是为使用HTTP设计的。([RFC2616]).OAuth 协议的使用暂不支持HTTP协议之外的其他协议。

OAuth 1.0协议,被作为一份报告文档发布,是一个小且特殊的团队努力的结果。这份标准追踪说明文档是建立在OAuth 1.0部署的经验以及额外的使用案例和源于更广泛的IETF(Internet Engineering Task Force:互联网工程任务小组)扩展性要求。

OAuth 2.0协议并不向后兼容OAuth 1.0协议。这两个版本共存于互联网上,而且实现可能会选择二者都支持。然而,这篇文档意在表明新的实现支持OAuth 2.0,而OAuth 1.0仅支持已经存在的实现上。OAuth 2.0和OAuth 1.0在具体的实现细节上只有很少是相同的。熟悉OAuth 1.0实现的用户无须设想OAuth 2.0是其结构和细节。

时间: 2024-08-02 15:12:24

OAuth 2.0文档翻译(第一章)的相关文章

NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译

NHibernate.3.0.Cookbook第一章第六节Handling versioning and concurrency的翻译 第一章第二节Mapping a class with XML第一章第三节Creating class hierarchy mappings第一章第四节Mapping a one-to-many relationship第一章第五节Setting up a base entity class Handling versioning and concurrency

NHibernate.3.0.Cookbook第一章第五节Setting up a base entity class

Setting up a base entity class设置一个实体类的基类 在这节中,我将给你展示怎么样去为我们的实体类设置一个通用的基类. 准备工作 完成前面三节的任务 如何去做 1.在Entity.cs中,为我们的Entity类输入如下代码: public abstract class Entity<TId>{public virtual TId Id { get; protected set; }public override bool Equals(object obj){ret

实体框架6.0(Recipes)翻译系列 1 -----第一章 开始使用实体框架1

微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF版本更新太快,没人愿意去花时间翻译国外关于EF的书籍.使用Entity Framework开发已经有3年多了,但用得很肤浅,最近想深入学习,只好找来英文书<Entity Framework 6 Recipes>慢慢啃.首先需要说明的是,我英文不好,只是为了学习EF.把学习的过程写成博客,一是督促自

Async in C# 5.0(C#中的异步编程Async) 蜗牛翻译之第一章

p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提高下英文,用我拙劣的英文翻译一些重要的部分,纯属娱乐,简单分享,保持学习,谨记谦虚. 如果你觉得这件事儿没意义翻译的又差,尽情的踩吧.如果你觉得值得鼓励,感谢留下你的赞,祝各位爱技术的园友在今后每一次应该猛烈突破的时候,不选择知难而退.在每一次应该独立思考的时候,不选择随波逐流,应该全力以赴的时候,不选择尽力

《DirectX 9.0 3D游戏开发编程基础》 第一章 初始化Direct3D 读书笔记

REF设备 参考光栅设备,他能以软件计算方式完全支持Direct3D Api.借助Ref设备,可以在代码中使用那些不为当前硬件所支持的特性,并对这此特性进行测试. D3DDEVTYPE 在程序代码中,HAL设备用值D3DDEVTYPE_HAL来表示.该值是一个枚举变量.REF设备用D3DDEVTYPE_REF来表示.这种类型非常重要,你需要铭记,因为在创建设备的时候,我们必须指定使用哪种设备类型. COM(组件对象模型) 创建COM接口时不可以使用c++关键字new.此外使用完接口,应调用Rel

Cocos2d-x 3.0 红孩儿私人义务教育 - 第一章 熟人Cocos2d-x 3.0project

 Cocos2d-x 3.0 红孩儿私家必修 前言: 时光飞逝,每每看到博客上的回复和微博上的鼓舞,总会认为亏欠大家点什么.停下来太久.总是认为不太对劲,哈哈,时习之吧,望以此勉励大家. 红孩儿Cocos2d-x学习园地QQ群: 1群:249941957    2群:44208467    3群:20510049   4群:47870848 5群:283482361    6群:27317570    7群:28626734 第一章    初识Cocos2d-x 3.0project Coc

《从0到1》笔记 第一章 未来的挑战

第一章 未来的挑战----质疑现在,组建有新思想的小团体,实现垂直与深入创新 进步可以呈现两种形式.一种是水平进步,也称广泛进步,意思是照搬已取得成就的经验--直接从1跨度到n.水平进度相对较容易,它是从已有的,现成的出发.一种是垂直进步,也称深入进步,意思是要探索新的道路--从0到1的进步.垂直进步比较难,这需要尝试从未做过的事情. 如果你根据一台打字机造出了100台打字机,那就是水平进步.而如果你有一台打字机,但你又造出了一台文字处理机,这就是垂直进步. 在宏观上,全球化就是水平进步,它把某

谈谈基于OAuth 2.0的第三方认证 [中篇]

虽然我们在<上篇>分别讨论了4种预定义的Authorization Grant类型以及它们各自的适用场景的获取Access Token的方式,我想很多之前没有接触过OAuth 2.0的读者朋友们依然会有“不值所云” 之感,所以在介绍的内容中,我们将采用实例演示的方式对Implicit和Authorization Code这两种常用的Authorization Grant作深入介绍.本章着重介绍Implicit Authorization Grant. Implicit Authorizatio

C++ Primer快速学习 第一章 入门

很多人说C++Primer不适合于入门,本系列入门文章向大家证明了:这是一个谎言. 第一章 入门 本章介绍 C++ 的大部分基本要素:内置类型.库类型.类类型.变量.表 达式.语句和函数. 1.1. 编写简单的 C++ 程序 每个 C++ 程序都包含一个或多个 函数 ,而且必须有一个命名为 main.函数 由执行函数功能的语句序列组成.操作系统通过调用 main 函数来执行程序, main 函数则执行组成自己的语句并返回一个值给操作系统. 下面是一个简单的 main 函数,它不执行任何功能,只是