OAUTH协议介绍

OAUTH协议为用户资源的受权提供了一个安全的、开放而又简易的标准。与以往的受权方式不一样之处是OAUTH的受权不会使第三方触及到用户的账号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就能够申请得到该用户资源的受权,所以OAUTH是安全的。oAuth是Open Authorization的简写。html

特色
(1). 简单:无论是OAUTH服务提供者仍是应用开发者,都很易于理解与使用;
(2). 安全:没有涉及到用户密钥等信息,更安全更灵活;
(3). 开放:任何服务提供商均可以实现OAUTH,任何软件开发商均可以使用OAUTH;浏览器

三个URL
Request Token URL: 获取未受权的Request Token服务地址;
User Authorization URL: 获取用户受权的Request Token服务地址;
Access Token URL: 用受权的Request Token换取Access Token的服务地址;安全

版本
OAuth Core 1.0 版本发布于2007年12月4日,因为存在可被会话定向攻击(session fixation attack)的缘故,2009年6月24日发布了OAuth Core 1.0 Revision A 版本。最终在2010年4月,OAuth成为了RFC标准: RFC 5849: The OAuth 1.0 Protocol。服务器

OAuth 2.0的草案是在2010年5月初在IETF发布的。OAuth 2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。 OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。规范还在IETF OAuth工做组的开发中,按照Eran Hammer-Lahav的说法,OAuth于2010年底完成。session

 

OAuth 2.0介绍框架

OAuth(开放受权)是一个开放标准,容许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。Auth容许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。网站

在认证和受权的过程当中涉及的三方角色:
一、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
二、用户,存放在服务提供方的受保护的资源的拥有者。
三、客户端,要访问服务提供方资源的第三方应用,一般是网站,如提供照片打印服务的网站。在认证过程以前,客户端要向服务提供者申请客户端标识
受权过程:
用户向操做存放在服务提供方的资源。
用户登陆客户端向服务提供方请求一个临时令牌。
服务提供方验证客户端的身份后,授予一个临时令牌。
客户端得到临时令牌后,将用户引导至服务提供方的受权页面请求用户受权。在这个过程当中将临时令牌和客户端的回调链接发送给服务提供方。
用户在服务提供方的网页上输入用户名和密码,而后受权该客户端访问所请求的资源。
受权成功后,服务提供方引导用户返回客户端的网页。
客户端根据临时令牌从服务提供方那里获取访问令牌。
服务提供方根据临时令牌和用户的受权状况授予客户端访问令牌。
客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。spa

 

流程图:.net

【如下内容摘自OAuth2.0 规范中的流程说明】code

这里写图片描述

(A)用户打开客户端之后,客户端要求用户给予受权。 
(B)用户赞成给予客户端受权。 
(C)客户端使用上一步得到的受权,向认证服务器申请令牌。 
(D)认证服务器对客户端进行认证之后,确认无误,赞成发放令牌。 
(E)客户端使用令牌,向资源服务器申请获取资源。 
(F)资源服务器确认令牌无误,赞成向客户端开放资源。

 

客户端必须获得用户的受权(authorization grant),才能得到令牌(access token)。

OAuth 2.0定义了四种受权方式。

  • 受权码模式(authorization code)【是功能最完整、流程最严密的受权模式。它的特色就是经过客户端的后台服务器,与”服务提供商”的认证服务器进行互动】
  • 简化模式(implicit)【不经过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过了”受权码”这个步骤,所以得名。全部步骤在浏览器中完成,令牌对访问者是可见的,且客户端不须要认证。】
  • 密码模式(resource owner password credentials)【用户向客户端提供本身的用户名和密码。客户端使用这些信息,向”服务商提供商”索要受权。 】通常不用
  • 客户端模式(client credentials)【指客户端以本身的名义,而不是以用户的名义,向”服务提供商”进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。】

 

参考网址:https://www.cnblogs.com/flashsun/p/7424071.htmlhttps://blog.csdn.net/iceiceicpc/article/details/75012385https://blog.csdn.net/jing12062011/article/details/78147306

相关文章
相关标签/搜索