OAuth2.0

  OAuth2.0是OAuth协议的下一个版本,但不向后兼容OAuth1.0。OAuth2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机提供专门的认证流程。web

  OAuth(开放受权)是个开放标准,容许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片、视频、联系人列表),而无需将用户名和密码提供给第三方应用。浏览器

认证和受权流程服务器

  在认证和受权的过程当中涉及的三方:网站

  一、服务提供方,用户使用服务提供方来存储受保护的资源,如照片、视频、联系人列表。编码

  二、用户,存认在服务提供方的受保护的资源的拥有者。操作系统

  三、客户端(第三方应用),要访问服务提供方资源的第三方应用,一般是网站,如提供照片打印服务的网站。在认证过程以前,客户端要向服务提供者申请客户端标识。代理

  使用OAuth进行认证和受权的过程以下所求:视频

  一、用户访问客户端的网站,想操做用户存放在服务提供方的资源。blog

  二、客户端向服务提供方请求一个临时令牌。排序

  三、服务提供方验证客户端的身份后,授予一个临时令牌。

  四、客户端得到临时令牌后,将用户引导至服务提供方的受权页面请求用户受权。在这个过程当中将临时令牌和客户端的架设链接发送给服务提供方。

  五、用户在服务提供方的网页上输入用户名和密码,而后受权该客户端访问所请求的资源。

  六、受权成功后,服务提供方引导用户返回客户端的网页。

  七、客户端根据临时令牌从服务提供方那里获取访问令牌(Access Token)。

  八、服务提供方根据临时令牌和用户的受权状况授予客户端访问令牌。

  九、客户端使用获取的访问令牌(Access Token)访问存放在服务提供方上的受保护的资源。

OAuth2.0新特性:

  6种全新的流程:

  一、User-Agent Flow – 客户端运行于用户代理内(典型如web浏览器)。
  二、Web Server Flow – 客户端是web服务器程序的一部分,经过http request接入,这是OAuth 1.0提供的流程的简化版本。
  三、Device Flow – 适用于客户端在受限设备上执行操做,可是终端用户单独接入另外一台电脑或者设备的浏览器
  四、Username and Password Flow – 这个流程的应用场景是,用户信任客户端处理身份凭据,可是仍然不但愿客户端储存他们的用户名和密码,这个流程仅在用户高度信任客户端时才适用。
  五、Client Credentials Flow – 客户端适用它的身份凭据去获取access token,这个流程支持2-legged OAuth的场景。
  六、Assertion Flow – 客户端用assertion去换取access token,好比SAML assertion。
  能够经过使用以上的多种流程实现Native应用程序对OAuth的支持(程序运行于桌面操做系统或移动折本)

  签名简化:

  对于签名的支持,签名机制大大简化,不须要特殊的解析处理,编码和对参数进行排序。使用一个secret替代先的两个secret。

  短时间token和长效的身份凭据

  原先的OAuth,会发行一个有效期很是长的token(典型的是一年有效期或者无有效期限制),在OAuth2.0中,Server将发行一个短有效期的access token和长生命期的refresh token。这将容许客户端无需用户再次操做而获取一个新的access token,而且也限制了access token的有效期。

  角色分开:

  OAuth2.0将分为两个角色:

  Authorization Server负责获取用户的受权而且发布token。

  Resourece负责处理API calls。

相关文章
相关标签/搜索