189 8069 5689

Oauth2解读-创新互联

OAuth 2.0相对于OAuth来说是一个革命性的协议。它主要致力于简化客户端开发的认证流程。目前使用OAuth2的范围不仅仅只有web应用,还包括了桌面应用,移动设备和智能家庭设备。OAuth2.0的协议基于OAuth WRAP提议和IETF的OAuth WG。Oauth2解读

协议框架:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网页空间、营销软件、网站建设、华宁网站维护、网站推广。

 简介:

 OAuth2.0框架使得第三方应用可以获得有限的接入另外一个HTTP 服务的权限,或者是资源拥有者和HTTP服务之间建立的关联,又或者是允许第三方的应用接入自身的权限。

 传统的OAuth模型是基于服务器-客户端模式。客户端利用资源拥有者的证书来向服务器请求特定资源。此时资源拥有者和第三方应用共享同一证书。当然,这种模型又很多缺陷:

 a.第三方应用需要存储资源拥有者的证书以便后续使用,但是这个证书一般是明文密码。

 b.服务器需要支持密码认证,

 c.第三方应用权限过大,可以访问用户所有资源。

 d.资源所有者在不取消所有第三方证书的情况下,不能取消某个第三方的证书,除非它改变该第三方应用的密码。

 e.为了不使用资源所有者的证书,客户端得到了另外一种替代的方案--一个字符串access-token,这个字符串代表了客户端所拥有的权限,生存周期和一些其他属性。access-token是由认证服务器发给第三方客户端的凭证,当然是经过资源拥有者所允许的。

 角色:

 在OAuth2.0中,主角有四个:

 资源拥有者(resource owner): 一般就是我们的用户自己。享有资源的所有权限。

 资源服务器(resource server): 资源存储的地方。

 客户端(client): 一般是我们的第三方应用,需要向资源服务器请求资源。

 认证服务器(authorization server): 这个一般是跟资源服务器一起,主要提供用户的接入认证,颁发证书。

 流程图:(摘自rfc6749)

+--------+ +---------------+ | |--(A)- Authorization Request ->| Resource | | | | Owner | | |<-(B)-- Authorization Grant ---| | | | +---------------+ | | | | +---------------+ | |--(C)-- Authorization Grant -->| Authorization | | Client | | Server | | |<-(D)----- Access Token -------| | | | +---------------+ | | | | +---------------+ | |--(E)----- Access Token ------>| Resource | | | | Server | | |<-(F)--- Protected Resource ---| | +--------+ +---------------+

 一。客户端注册流程

  客户端类型:

   可信的(confidential ):客户端可以获取到服务端的信任(即可以获取受限的资源)。

   公开的(public):客户端仅能获取到资源拥有者在服务器端的存在状态。

   其实说白了public公开的客户端,只用来说明用户在某个服务器上注册过。(例如,某些网站可以通过weibo来注册)。confidential客户端就可以获取到用户在服务器上的资源了。

   认证服务器可以支持客户端同时拥有可信和公开的身份,或者只支持一种方式(此时需要客户端分成两个不同的客户端来发出请求)。

  客户端标识符:

   认证服务器会颁发给客户端一个客户端标识符--一个唯一的包含客户端信息的字符串,

  客户端密码:

   客户端提交到认证服务器的client_id和client_secret应该被放置在请求消息体里面。

  授权端点:authorization endpoint

   这个端点的作用是与用户交互,并且获得服务器的承认。认证服务器必须首先验证用户的身份(如用户名密码登陆,cookie session等)。

   认证服务器必须支持“GET“和”POST“方法。


当前文章:Oauth2解读-创新互联
转载来于:http://cdxtjz.cn/article/cseccd.html

其他资讯