没有合适的资源?快使用搜索试试~ 我知道了~
oauth2.0中文译本.doc
4星 · 超过85%的资源 需积分: 9 29 下载量 193 浏览量
2011-07-28
16:46:12
上传
评论
收藏 352KB DOC 举报
温馨提示
试读
28页
OAuth 2.0很可能是下一代的“用户验证和授权”标准,目前在国内还没有很靠谱的技术资料。为了弘扬“开放精神”,让业内的人更容易理解“开放平台”相关技术,进而长远地促进国内开放平台领域的发展,笔者特意将OAuth 2.0协议翻译成中文
资源推荐
资源详情
资源评论
(一)背景知识
OAuth 2.0 很可能是下一代的“用户验证和授权”标准,目前在国内还没有很靠谱的技术资料 。
为了弘扬“开放精神”,让业内的人更容易理解“开放平台”相关技术,进而长远地促进国内开
放平台领域的发展,笔者特意将 OAuth 2.0 协议翻译成中文。
目前 OAuth 2.0 还没有最后定稿,最新的修改版是第 11 个版本,本文下面的翻译即基于这
个第 11 版本。原文见 http://tools.ietf.org/html/draft-ietf-oauth-v2-11。
关 于 OAuth 2.0 的 更 多 背 景 知 识 , 请 参 考 我 的 另 一 篇 文 章 :
http://itgeeker.com/mathml/readpaper?pid=65
(二)术语中英对照表
由于 OAuth 协议版本较多(1.0,1.0a,2.0 等),并且各个版本中的技术术语也各不相同,关
于英文技术术语与中文的对应关系,我们以 OAuth 2.0 的第 11 版本中的描述为准。
另外有一些情况,一些英文术语不容易找到普遍接受的汉语释义,翻译过来反而可能引起
误解,而英文术语本身可能更容易理解,因此就不考虑对这部分词汇做翻译了。比如,
“web service”、“ endpoint”、“ user-agent”、“ URI”、“ cookie”等,你只需要知道它是什么
就好了。
还有一些特别难于翻译的词汇,比如“profile”,这个词用在协议里,大概表示:协议功能的
某个剖面、子集、子视图或轮廓。如果翻译成“视图”,容易让人想到“ view”这个词,产生冲
突,最后,我在这里创造了一个新词汇:“子态”。
下面是整理出来的重要技术术语的中英对照表:
云计算 —— cloud computing
第三方 —— third-party
应用/程序 —— application
私有证书 —— credential
身份验证 —— authentication
授权 —— authorization
明文 —— clear-text
客户端 —— client {译者注:本文中的客户端与平常所说的“客户端”并不相同,是相对资源
服务器和授权服务器来说的,它可能指第三方应用的服务器程序或客户端程序}
服务器 —— server
资源拥有者 —— resource owner
受保护资源 —— protected resource
资源服务器 —— resource server
访问令牌 —— access token
授权服务器 —— authorization server
访问许可 —— access grant
实体 —— entity
签名 —— signature
刷新令牌 —— refresh token
作用域 —— scope
授权码 —— authorization code
标识符 —— identifier
密钥 —— secret
断言 —— assertion
原生程序 —— native application
子态 —— profile
同源策略 —— same-origin policy
回调 —— callback
自治的 —— autonomous
查询参数部分 —— query component
分段参数部分 —— fragment component
媒体类型 —— media type
厂商特性的 —— vendor-specific
增强型巴科斯范式 —— ABNF
互联网编号分配机构 —— IANA
互联网工程指导组 —— IESG
标准轨道 —— standards-track
(三)中文译本
1. 引言
随着分布式 web service 和云计算的使用越来越多,第三方应用需要能访问到一些服务器托
管资源。这些资源通常都是受保护的,并且要求使用资源拥有者的私有证书(典型的证书
是用户名和密码)进行身份验证。
在传统的基于客户端-服务器的身份验证模型中,客户端为了访问服务器的受保护资源,是
使用资源拥有者的私有证书来做身份验证的。为了让第三方应用能够访问受保护资源,资
源拥有者必需将他/她/它的私有证书透露给第三方。这引出了很多问题并存在很多局限性:
第三方应用需要用明文保存资源拥有者的私有证书(一般是密码),留作以后再次使用。
虽然密码验证会造成安全隐患,服务器仍然需要支持用密码做身份验证(对称的密码验
证)。
第三方应用对资源拥有者的受保护资源获得过多的使用权限,而资源拥有者没有能力限制
访问到某个资源子集,限制持续时间,或限制这些资源所能支持的访问方式。
资源拥有者无法在不影响所有第三方的前提下单独撤销某个第三方的访问权限,他/她/它只
能通过修改密码来回收所有权限。
OAuth 通过将客户端和资源拥有者的角色进行分离来解决这些问题。在 OAuth 中,客户端
(通常不是资源拥有者,而是代表资源拥有者来操作)提出请求来访问由资源拥有者控制
并由资源服务器托管的资源,然后得到与资源拥有者不同的一套私有证书。
客户端并不是直接使用资源拥有者的私有证书来访问受保护资源,而是得到一个访问令牌
——一个代表某一特定作用域、持续时间和其它属性的字符串{译者注:非常重要的一个概
念,英文叫 access token}。访问令牌由授权服务器在资源拥有者的授意下分发给第三方客
户端。客户端使用访问令牌来访问由资源服务器托管的受保护资源。
例如,一个 web 用户(资源拥有者)能够准许一个打印服务(客户端)访问她存储在另一
个照片共享服务(资源服务器)中的照片,而不用将她的用户名和密码透露给这个打印服
务。她在一个被该照片分享服务信任的身份验证服务(授权服务器)上完成验证,而这个
验证服务会将特定于委托服务的私有证书(令牌)分发给原打印服务。
基于资源服务器对安全的需求,访问令牌可以有不同的格式、结构和使用方式(例如密码
学特性)。访问令牌的属性和用以访问受保护资源的方式不在本规范的规定范围之内,而
是由相关的其它规范来定义。授权服务器和资源服务器之间的交互方式不在本规范的规定
范围之内。
1.1. 符号规范
这篇文档中的关键词“必须”、“一定不能”、“要求”、“会”、“不会”、“应该”、“不应该”、“建议”
“可以”、“可选的”,遵从[RFC2119]中的解释。
这篇文档使用出自[I-D.ietf-httpbis-p1-messaging]的增强型巴科斯范式(ABNF)标记法。另
外,介绍一些规则定义的出处:URI-Reference 出自[RFC3986];OWS、RWS 和 quoted-
string 出自[I-D.ietf-httpbis-p1-messaging]。
除非特别提到,否则所有协议参数的名字和值都是大小写敏感的。
1.2. 专业术语解释
受保护资源:能够使用 OAuth 请求获取的访问限制性资源。
资源服务器:能够接受和响应受保护资源请求的服务器。
客户端:获取授权和发送受保护资源请求的应用。
资源拥有者:能够对受保护资源进行访问许可控制的实体。
终端用户:起到资源拥有者角色的用户。
令牌:分发给客户端的代表访问授权的字符串。通常这个字符串对客户端来说是不透明的
令牌代表资源拥有者许可的访问作用域和持续时间,并由资源服务器和授权服务器强制保
证。这个令牌可以代表一个标识符,用于检索授权信息,或以一种可验证的方式自包含授
权信息(即一个包含数据和签名的令牌字符串)。令牌可能只代表纯粹的访问能力。而为
了让客户端使用令牌,也可能需要一些多余的特定验证证书。
访问令牌:被客户端用来代表资源拥有者发送验证请求的令牌。
刷新令牌:被客户端用来获取新的访问令牌的令牌,而不用资源拥有者的参与。
授权码:一个短期令牌,代表终端用户的授权。授权码用于获取一个访问令牌和一个刷新
令牌。
访问许可:用于描述中间形式的私有证书(如终端用户的密码或授权码)的一个通用词汇
代表资源拥有者的授权。客户端使用访问许可来获取访问令牌。通过将各种形式的访问许
可都交换成访问令牌,资源服务器只需要支持一种验证机制。
授权服务器:能够成功验证资源拥有者和获取授权,并在此之后分发令牌的服务器。授权
服务器可以和资源服务器是同一个服务器,也可以是不同的实体。单独一个授权服务器可
以为多个资源服务器分发令牌。
终端用户授权 endpoint:授权服务器上能够验证终端用户并获取授权的 HTTP endpoint。终
端用户授权 endpoint 在第 4 节详细描述。
令牌 endpoint :授 权服务器 上能够分 发令 牌和刷 新 过期 令 牌 的 HTTP endpoint 。令 牌
endpoint 在第 5 节详细描述。
客户端标识符:分发给客户端的唯一标识,用于客户端向授权服务器标识自己。客户端标
识符可以有一个对应的密钥。客户端标识符在第 3 节详细描述。
1.3. 概述
OAuth 为客户端提供了一种代表资源拥有者访问受保护资源的方法。在客户端访问受保护
资源之前,它必须先从资源拥有者获取授权(访问许可),然后用访问许可交换访问令牌
(代表许可的作用域、持续时间和其它属性)。客户端通过向资源服务器出示访问令牌来
访问受保护资源。
访问令牌提供了一个抽象层,将不同的授权结构(如用户名密码、断言)替换成资源服务
器可以理解的单一令牌。这种抽象使得分发短期有效的访问令牌成为可能,也使得资源服
务器不必理解多种多样的授权机制。
图 1: 抽象的协议流程
图 1 所示的抽象流程协议的总体架构,它包含下列步骤:
(A) 客户端从资源拥有者那里请求授权。授权请求能够直接发送给资源拥有者,或者间接
地通过授权服务器这样的中介,而后者更为可取。
(B) 客户端收到一个访问许可,它代表由资源服务器提供的授权。
(C) 客户端使用它自己的私有证书到授权服务器上验证,并出示访问许可,来请求一个访
问令牌。
(D) 授权服务器验证客户端私有证书和访问许可的有效性,如果验证通过则分发一个访问
令牌。
(E) 客户端通过出示访问令牌向资源服务器请求受保护资源。
(F) 资源服务器验证访问令牌的有效性,如果验证通过则响应这个资源请求。
1.4 访问许可
访问许可代表资源拥有者提供的授权。访问许可的类型取决于客户端使用的获取方式和授
权服务器所支持的方式。
1.4.1 授权码
授权码是通过将终端用户引导到授权服务器而获得的一种访问许可。授权服务器验证终端
用户,获得授权,然后向客户端分发一个授权码。因为终端用户只在授权服务器上进行验
剩余27页未读,继续阅读
资源评论
- soshawk2012-07-01不错,说的蛮清楚的
- jc1986512012-06-12不错,说的蛮清楚的,要是文档能带中英文就好了,有时候中文确实看不大明白
- heguo19812012-12-18翻译的有点乱,不过整体能达到要求。
c1g2y3cgy2011
- 粉丝: 1
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 二叉树7-1-1.cpp
- android 9.0 原生模拟器 签名文件
- 技术面试最后反问面试官的话 校招面试非技术问题有哪些 非技术问题如何回答.png
- NB-IOT-BC26全网通模块Altium+ CADENCE +PADS三种格式(原理图SCH+PCB封装库)文件.zip
- 基于微信小程序开发的校园失物招领系统源码毕业设计(优质项目源码).zip
- 词向量是一种将自然语言中的单词转换为数值向量的技术,它能够捕捉词义和上下文信息
- nmap与masscan的简单使用
- MyBatis动态SQL.pdf
- 基于stm32单片机protues仿真的温湿度控制系统设计(仿真图、源代码)
- 词向量:自然语言处理的基石
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功