重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
协议框架:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网页空间、营销软件、网站建设、华宁网站维护、网站推广。简介:
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“方法。