• OAUTH中的腿,2-legged 与 3-legged 的差別
    时间:2012-04-09   作者:佚名   出处:互联网

    OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。

    在认证和授权的过程中涉及的三方包括:

    1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
    2、用户,存放在服务提供方的受保护的资源的拥有者。
    3、客户端,要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

    使用OAuth进行认证和授权的过程如下所示:

    1、用户访问客户端的网站,想操作用户存放在服务提供方的资源。
    2、客户端向服务提供方请求一个临时令牌。
    3、服务提供方验证客户端的身份后,授予一个临时令牌。
    4、客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
    5、用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
    6、授权成功后,服务提供方引导用户返回客户端的网页。
    7、客户端根据临时令牌从服务提供方那里获取访问令牌。
    8、服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
    9、客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。

    三条腿的OAuth(3-Legged OAuth),这也是OAuth的标准版本。这里所谓的“三条腿”,指的是授权过程中涉及前面提到的三种角色,也就是:客户端,服务提供方,用户。不过有些情况下,不需要用户的参与,此时就产生了一个变体,被称作两条腿的OAuth(2-Legged OAuth),一般来说,访问私有数据的应用需要三条腿的OAuth,访问公共数据的应用需要两条腿的OAuth。

    两条腿的OAuth和三条腿的OAuth相比,因为没有用户的参与,所以在流程中就不会涉及用户授权的环节,也就不需要使用Token,而主要是通 过Consumer Key和Consumer Secret来完成签名的,此时的Consumer Key和Consumer Secret基本等价于账号和密码的作用。

    网友留言/评论

    我要留言/评论

    相关文章

    6本值得一读的JavaScript英文电子书:Web开发行业是一个快节奏的行业。新趋势、技术和API不时出现,我们必须去学习。作为一名Web开发人员,我常认为这是我们责任的一部分,或者说我们需要把这个作为一种习惯,以坚持学习或给自我 升级,不能满足现状。我们是为了探索和发现更多的解决方案。
    怎样打造高性能的移动用户体验:在新家一点点安顿了下来,不过心里还是缺乏踏实的方向感;猫猫们也都有些瞻前顾后草木皆兵的样子,有待继续习惯;希望大家都好好的。话说眼前的这篇候选文章貌似已然有同行做过译文,不过正像 “关于BeForWeb”中所说的,我只挑那些我喜欢的 、对我自己有学习和收藏价值的内容来做译文,其他方面的因素和我没有半毛钱的关系。不多说,直接进入正题。
    程序员需要谨记的九大安全编码规则:历史已经证明,软件设计的缺陷一直是导致其漏洞被利用的最主要的罪魁祸首。安全专家发现,多数漏洞源自常见软件中相对有限的一些漏洞。软件开发者和设计者应当严格检查程序中的各种错误,尽量在软件部署之前就减少或清除其中的漏洞。
    25 个非常棒的 CSS3 菜单教程:本文收集了 25 个超棒的 CSS3 菜单教程,同时提供在线演示以及打包下载。
    百度统计流量研究院设计小结 - 可视化的快乐:百度统计流量研究院为了将数据更好的传达给用户,我们采用了动态数据可视化的方式(Interactive Infographic)。希望我们的设计能将用户带入到新鲜、愉悦的氛围之中。当然,我们在设计的过程中也体会到了可视化的快乐,并且希望与大家一同分享。
    jQuery 工具类库集锦:jQuery 是一个非常棒的类库,但是为了保证代码的干净以及代码的精简,它只提供最核心的功能。所以就有了很多其他的工具来丰富jQuery的功能。我在使用这些工具的时候发现我常常重复的编写一些代码,所以我就开始把它们整理到一个类库中。我把这些代码都包装成了jQuery的代码,但这并不是必须的,你也可以在其他JS类库中使用他们,或者单独使用。
    手机应用开发者需注意的20个事项:你想要成为手机开发者吗?你的目标可能是从应用商店中赚取大量金钱,也可能只是为了寻找新的挑战。无论你的目的是什么,当你设计应用时,可能需要考虑到代码层面之外的某些东西。
    产品经理应该如何写周报?:奋斗在互联网的每位同学,基本上都要写周报,更甚者还要写日报,但多少人打心底里觉得写的周报没有意义?只是为了写而写?今天,不妨从两个方面,简单说说,如何让周报真正的有意义和有效果。
    使用JSFL高效率做Flash:JSFL指Flash JavaScript,是JavaScript脚本文件,是用来扩展Flash IDE的重要工具。学会它、熟练使用它之后你会惊讶的发现,哇,原来可以这么高效率的做Flash啊!下面我们来看一看怎么使用JSFL。