OAuth2.0
OAuth2.0是OAuth协议的下一个版本,但不向后兼容OAuth1.0。OAuth2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机提供专门的认证流程。
OAuth(开放授权)是个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片、视频、联系人列表),而无需将用户名和密码提供给第三方应用。
认证和授权流程
在认证和授权的过程中涉及的三方:
1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片、视频、联系人列表。
2、用户,存认在服务提供方的受保护的资源的拥有者。
3、客户端(第三方应用),要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。
使用OAuth进行认证和授权的过程如下所求:
1、用户访问客户端的网站,想操作用户存放在服务提供方的资源。
2、客户端向服务提供方请求一个临时令牌。
3、服务提供方验证客户端的身份后,授予一个临时令牌。
4、客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的架设连接发送给服务提供方。
5、用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
6、授权成功后,服务提供方引导用户返回客户端的网页。
7、客户端根据临时令牌从服务提供方那里获取访问令牌(Access Token)。
8、服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
9、客户端使用获取的访问令牌(Access Token)访问存放在服务提供方上的受保护的资源。

OAuth2.0新特性:
6种全新的流程:
1、User-Agent Flow – 客户端运行于用户代理内(典型如web浏览器)。
2、Web Server Flow – 客户端是web服务器程序的一部分,通过http request接入,这是OAuth 1.0提供的流程的简化版本。
3、Device Flow – 适用于客户端在受限设备上执行操作,但是终端用户单独接入另一台电脑或者设备的浏览器
4、Username and Password Flow – 这个流程的应用场景是,用户信任客户端处理身份凭据,但是仍然不希望客户端储存他们的用户名和密码,这个流程仅在用户高度信任客户端时才适用。
5、Client Credentials Flow – 客户端适用它的身份凭据去获取access token,这个流程支持2-legged OAuth的场景。
6、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。
posted on 2014-03-01 23:19 AngelLee2009 阅读(308) 评论(0) 收藏 举报
浙公网安备 33010602011771号