如果你在当前这个阶段选择在互联网领域创业,那么你会发现,与十年之前相比,你所面临的机遇和能够利用的资源已经丰富得多了。互联网服务之间的整合已经成为必然趋势,许多服务提供商为了给自己的用户提供更好的服务,允许第三方通过调用“开放API”为用户提供更多应用;而且,以国外的google、facebook、twitter为首,有一些用户规模大、技术实力强的服务提供商,为第三方提供了一整套自成体系、纷繁复杂的“开放API”,成为真正的“开放平台”。
开放平台的核心问题在于用户验证和授权。对于服务提供商来说,一般不会希望第三方直接使用用户名和密码来验证用户身份,除非双方具有很强的信任关系。实际上,由于国内业界在开放授权问题上缺乏经验和共识,造成互联网公司之间很多的合作大费周章,甚至于中途夭折。这首先会造成用户享受不到更丰富和更安全的服务,而且从长远来看,会阻碍整个产业的整合和进步。
OAuth协议正是为了解决服务整合时“验证和授权”这一根本问题而生的。实际上,它是业内各大开放平台在尝试解决用户授权问题上的经验总结和知识结晶。
OAuth从1.0版本开始,中间经过很多次的论证、实践和修改,发展出了好几个版本,现在已经发展到2.0版本。所有的版本如下所示:
各个版本的大致关系:
OAuth在2007年10月完成1.0版本,之后直到2009年6月才为了解决一个安全问题而进行了一次修改,这就是1.0a版本。OAuth 1.0a在2010年4月正式成为RFC,在1.0a版本的基础上进行了一些勘误,这就是RFC5849。现在,如果你想实现OAuth 1.0协议,那么应该以RFC5849这个版本为准。
OAuth WRAP的全称是“OAuth Web Resource Authorization Profiles”,它的提出是为了对OAuth 1.0进行简化,解决OAuth 1.0实现困难的缺点。OAuth 2.0以OAuth WRAP协议为基础,以简化实现为原则,并对更多的接入形式予以支持,如按照官方的描述,OAuth 2.0能够同时支持“Web应用、桌面应用、移动终端、家庭设备”等等。注意OAuth 2.0与OAuth 1.0并不兼容,是一套全新的协议。
OAuth 2.0目前还不太稳定,从2010年4月到2010年7月,该协议已经发展出10个子版本,上面列出的参考链接是它的第10个版本,也是目前最新的版本。在这10个版本的变迁中,已经发生了非常多的变化,例如:最开始版本中最引人注意的是6个Flow(即User-Agent Flow、Web Server Flow、Device Flow、Username and Password Flow、Client Credentials Flow、Assertion Flow),用来适应各种授权环境,而最新版本中Flow的概念已经过时,而代之以整合之后的Profile概念;又如,Device Flow已经从第7个版本开始从主协议中拿掉,要单独成为另一个子协议。
OAuth 2.0目前由IETF的OAuth工作组进行推进,并受到Yahoo、Facebook、Microsoft等大公司的多方支持,由来自这些公司的技术专家进行修改和维护。相信,经过多年的发展,OAuth 2.0将成为未来开放平台领域标准的授权协议,并且随着技术发展,这将不仅仅是一个简单的协议,而会成为一个解决各种环境下授权问题的标准的协议族。
分享到:
相关推荐
赠送jar包:spring-security-oauth2-2.3.5.RELEASE.jar; 赠送原API文档:spring-security-oauth2-2.3.5.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-2.3.5.RELEASE-sources.jar; 赠送Maven依赖信息...
oauth中间件Gin-Gonic的OAuth 2.0授权服务器和授权中间件该库提供基于Gin-Gonic的OAuth 2.0授权服务器和可在资源服务器中使用的授权中间件dev oauth中间件Gin-Gonic的OAuth 2.0授权服务器和授权中间件该库提供了基于...
赠送jar包:spring-security-oauth2-autoconfigure-2.1.8.RELEASE.jar; 赠送原API文档:spring-security-oauth2-autoconfigure-2.1.8.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-autoconfigure-...
apache-oltu-oauth2-provider-demo, Apache Oltu提供程序服务器演示( Oauth 2.0 ) apache-oltu-oauth2-provider-demoApache Oltu提供程序服务器演示( Oauth 2.0 )对于基本OAuth2流程,请阅读以下内容: ...
赠送jar包:spring-security-oauth2-autoconfigure-2.1.8.RELEASE.jar; 赠送原API文档:spring-security-oauth2-autoconfigure-2.1.8.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-autoconfigure-...
赠送jar包:spring-security-oauth2-2.3.5.RELEASE.jar; 赠送原API文档:spring-security-oauth2-2.3.5.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-2.3.5.RELEASE-sources.jar; 赠送Maven依赖信息...
实现了OAuth 2.0定义了四种授权方式 授权码模式(authorization code): 先获取下次请求token的code,然后在带着code去请求token; 简化模式(implicit):直接请求token; 密码模式(resource owner password ...
Spring-Security-OAuth2.0,采用SpringBoot + SpringSecurityOAuth2,有完整的示例文档及调用示例,包括授权码模式(authorization code)、简化模式(implicit)、密码模式(password)、客户端模式(client_...
开放平台标准协议简介之RFC 6749-OAuth 2.0授权框架; The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource ...
前段时间做oauth2,一直没找到源码和想要的jar,后来找到了跟大家分享一下。压缩包中包括oauth2的jar包,源码,以及doc
实现了OAuth 2.0定义了四种授权方式授权码模式(authorization code): 先获取下次请求token的code,然后在带着code去请求token;简化模式(implicit):直接请求token;密码模式(resource owner password ...
RFC 6749 OAuth 2.0 授权框架 (正式版中文翻译,PDF)
python库。 资源全名:django-rest-framework-social-oauth2-1.0.1.tar.gz
spring-boot spring-security-oauth2 完整demo,可以使用微信的方式来获取token和查看资源,注意看代码中的备注
通过点击viewbutton获取用户openid,实现方式oauth2.0认证
OAuth2.0授权码模式.doc OAuth2.0授权码模式的文档,希望可以帮助学习者
spring-security-oauth-master, spring oauth2相关代码下载地址
springboot 集成oauth2.0服务器,基于oauth2.0授权码形式集成
spring-security-oauth2代码demo