`
ligf06
  • 浏览: 102864 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

OAuth协议简介

阅读更多

一、OAuth协议简介

OAuth授权在各社交网站中广泛使用,该协议使用户不需要直接向第三方应用提供用户名及密码,并且使一个账户在多个网站中使用成为可能,OAuth协议的细节描述可参考其官方网站:http://oauth.net

目前OAuth 1.0已经出了final version,即RFC ,OAuth 2.0也已在起草中。

这篇文章中,我想用比较通俗的语言来解释OAuth协议。

OAuth协议中包含了三个角色:
Service Provdier,即服务提供者,如新浪微博;
User,即普通用户,如新浪微博用户;
Consumer,即第三方应用,如本人开发的应用。

现有如下场景:User想利用Consumer来更新自己在Service Provider中的状态,但此时Service Provider并不信任Consumer,且User也不想把帐号和密码告诉Consumer,于是三者之间需要建立起信任关系。

Consumer首先要向Service Provider申请一对Consumer_Key和Consumer_Secret,以此取得Service Provider的信任。因为User是信任Service Provider的,所以User与Consumer间的信任关系需要借助Service Provider来建立。

Consumer用自己的Consumer_Key和Consumer_Secret向Service Provider请求到一对Request_Token和Request_Token_Secret,而后Consumer拿上这对RequestToken,领着User去见Service Provider。Service Provider见到自己发的RequestToken,便确认Consumer是值得信任的,于是把头转向User。如果Service Provider不记得User了,只要User向Service Provider提供用户名和密码,就能建立起信任关系。然后Service Provider对User说:“我很信任这个Consumer,你是不是也要信任他?”,若User确认,则Service Provider允许Consumer把User带回去,并发给Consumer一个Verifier.

回来以后,Consumer拿着RequestToken和Verifier又单独去找Service Provider,取回来一对Access_Token和Access_Token_Secret,并长期保存。

至此,三方信任关系就建立起来了,Consumer每次在Service Provider中更新User的状态时,只需要提供这对AccessToken,Service Provider便能确定此Consumer能代替User进行相应的操作。

在使用相关OAuth库进行开发时,所需要的关键字在以上场景中都有体现,包括:
Consumer_Key,   Consumer_Secret,   Request_Token,   Request_Token_Secret,   Verifier,   Access_Token,   Access_Token_Secret

OAuth授权流程图如下:

分享到:
评论

相关推荐

    OpenID与OAuth协议详解

    **OAuth协议** OAuth则是一种授权框架,允许第三方应用在用户许可的情况下访问其私有资源,如社交媒体数据或云存储文件,而无需获取用户的用户名和密码。 2.1 **OAuth简介** OAuth允许用户授权第三方应用访问他们...

    OAuth协议1.0版本中文版

    OAuth协议是一种开放标准,用于授权第三方应用访问用户在另一服务上的资源,而无需分享用户名和密码。OAuth1.0版本是这个协议的早期版本,它为互联网应用提供了一个安全、可扩展的框架,使得第三方开发者可以安全地...

    新浪微博OAuth授权的Java实现.pdf

    一、 OAuth协议简介 OAuth协议是一种广泛使用的授权协议,使用户不需要直接向第三方应用提供用户名及密码,且使一个账户在多个网站中使用成为可能。OAuth协议的细节描述可参考其官方网站:http://oauth.net目前...

    OAuth2.0协议中文版.pdf

    OAuth2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth1.0)。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用...

    OAuth协议的PHP库.zip

    OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、...

    cas3.5.0集成oauth2.0协议

    **OAuth2.0协议概述** OAuth2.0是一种授权框架,允许第三方应用在用户许可的情况下,访问特定资源。它主要用于安全地实现用户数据的共享,比如社交媒体登录、云存储服务等。OAuth2.0的核心是将用户的授权过程与实际...

    新浪微博OAuth授权

    #### OAuth协议简介 OAuth是一种开放标准协议,用于授权应用程序访问受保护资源(如用户的个人信息)而无需用户提供凭据(如用户名和密码)。它为客户端应用程序提供了一种安全的方法来访问资源服务器上的数据或...

    OAuth协议 - 基本流程

    博文链接:https://robustwang.iteye.com/blog/2399663

    OAuth2.0协议原理与实现

    ### OAuth2.0协议原理与实现 #### 一、OAuth2.0协议概述 OAuth2.0协议是一种广泛应用于第三方登录及授权的标准协议。相比于OAuth1.0版本,OAuth2.0进行了多方面的优化和改进,例如简化了授权流程、取消了Token的...

    OAuth协议安全分析.pdf

    OAuth协议安全分析.pdf

    OpenId与OAuth协议详解

    OpenID是一个开放式标准,它主要描述了在用户在分布式系统的认证方式以及提供了一套额外的服务系统允许用户方便...OAuth协议最初的出现是为了解决不同网站和其他互联网服务商访问受保护的资源这个普遍性问题而设计的。

    oauth2.0协议授权

    OAuth2.0是一种广泛使用的开放授权协议,它允许第三方应用在用户许可的情况下,访问特定的受保护资源。这个协议在互联网服务中起到了关键作用,尤其是涉及到用户数据安全和隐私的场景。下面将详细介绍OAuth2.0的核心...

    Twitter OAuth协议的PHP库.zip

     }OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如...

    Oauth2.0 协议 服务端 客户端 thinkphp5.0

    OAuth2.0是一种广泛使用的开放授权协议,它允许第三方应用在用户无需透露其登录凭证的情况下,获取有限的访问权限去操作用户的资源。这个协议的主要目的是为了解决API的安全访问问题,尤其是在社交媒体、云存储和...

    Ruby-OAuth2一个OAuth20协议的Ruby封装

    Ruby-OAuth2是Ruby编程语言中的一个库,用于实现OAuth 2.0协议。OAuth 2.0是一种授权框架,广泛应用于允许第三方应用安全地访问用户在其他服务上的数据,如Facebook、Google或Twitter,而无需获取用户的完整密码。...

    OAuth协议 介绍

    OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法...

    oauth2.0协议

    此框架取代并废弃了之前在RFC5849中描述的OAuth 1.0协议。OAuth 2.0协议的官方文档RFC 6749由D. Hardt编辑,发布于2012年10月,属于标准轨道类别。它代表了互联网工程任务力(Internet Engineering Task Force,简称...

Global site tag (gtag.js) - Google Analytics