oauth2.0在监控宝项目中的应用一例

原创 2015年07月10日 10:12:58
                                云智慧(北京)科技有限公司 邓超

说起oauth2.0,我相信很多人对其已经非常熟悉,并且已经应用在很多开放平台上,如新浪微博开放平台,腾讯微博开放平台等;下面我将我个人对于Oauth2的理解以及Oauth2在监控宝开放平台上的是如何运用的做一下简单的阐述,有说的不到位的地方还望指点。
一、什么是Oauth2.0
官方定义:
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源,而无需将用户名和密码提供给第三方应用。
OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站在特定的时段内访问特定的资源。这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。
OAuth 2.0是OAuth协议的下一版本,但不向下兼容OAuth 1.0。OAuth 2.0关注客户端开发者的简易性,同时为Web应用,桌面应用和手机,和起居室设备提供专门的认证流程。
个人理解:
Oauth2.0就是一个互联网标准协议(基于https) ,可以让用户来实现跨平台数据共享。
比如有2个平台A和B,在A平台上有一些数据资源,现在B平台想拿到A平台上的某些数据资源,如果此时A平台支持Oauth2协议,那么B平台就可以通过协议向A平台请求相应的数据资源应用的B平台上。
二、Oauth的认证过程
OAuth在”客户端”与”资源服务端”之间,设置了一个授权层(authorization layer)。其过程如图(来自RFC 6749 ):
这里写图片描述

(A)“客户端”向“资源所属者”发出授权请求
(B)“资源所属者”同意给“客户端”授权
(C)“客户端”获得授权后向“认证服务端”请求令牌
(D)“认证服务端”向“客户端”发放令牌(Access Token)
(E)“客户端”通过令牌向“资源服务端”请求资源
(F)“资源服务端”确认令牌无误,向“客户端”发放资源
从以上步骤可以看出,“客户端”想拿到资源,关键点在于“资源所属者”的授权,只有拿到了授权,才可以进行接下来的步骤。
三、Oauth2.0的授权模式
OAuth 2.0定义了四种授权方式:
 A、授权码模式(authorization code)
授权码模式(authorization code)的特点就是通过客户端的后台服务器,与”服务提供商”的认证服务器进行互动。

 B、简化模式(implicit)
简化模式(implicit grant type)不通过第三方应用程序的服务器,直接在 浏览器中向认证服务器申请令牌,跳过了”授权码”这个步骤。所有步骤在浏览器中 完成,令牌对访问者是可见的,且客户端不需要认证。

 C、密码模式(resource owner password credentials)
密码模式(Resource Owner Password Credentials Grant)中,用户向 客户端提供自己的用户名和密码。客户端使用这些信息,向”服务商提供商”索要授 权。

 D、客户端模式(client credentials
客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是 以用户的名义,向”服务提供商”进行认证。

四、Oauth2在监控宝API平台上的运用
 目前监控宝的API平台只对监控宝企业用户开发,而不对所有监控宝用户开发。基于这种情况,Oauth的密码授权模式比较适合(注:通过账号和密码,平台就可以认证是否为监控宝企业用户,从而来判断是否给予授权),所以我们果断采用了这种授权方式。

监控宝API平台简化了授权过程,平台将每一个企业账号当做一个客户端,并自动为其生成一个唯一的授权标识,所以每一个客户端可以直接向平台认证服务端请求令牌,然后通过令牌向平台资源服务端请求资源。如图(监控宝API平台认证过程):

这里写图片描述
关于监控宝API平台请具体参考:
http://www.jiankongbao.com/common/api_interface

关于作者:
邓超,云智慧软件开发工程师,2010年毕业于秦皇岛燕山大学,2012年初加入云智慧(北京)科技有限公司。目前主要负责监控宝产品架构的优化与研发。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

总结项目集成微博Oauth2.0

总结项目集成微博Oauth2.0从月初到今天15号项目中成功集成了微博授权认证,在此做个笔记,首先先说明下步骤   1、注册新浪微博   2、访问新浪微博开发平台http://open.weibo...

新浪、QQ OAuth2.0接口应用及简单DZ!NT登录整合

两家的API都比较简单的,最新的都是OAuth2.0标准的   申请地址:新浪微博 腾讯QQ   认证过程 用户授权返回authorization_code 用authorization_c...

【新浪微博项目】10新浪微博OAuth2.0授权过程

1.在导航栏输入:http://open.weibo.com/,然后单击移动应用。 2.跳转到微连接,单击立即接入 3.单击继续创建 4.填写相应的个人信息,然后提交 5.单击确定,向自...

php 获取gmail 联系人邮箱,应用oauth2.0验证

1.  创建应用 https://code.google.com/apis/console/ 设置相应的 应用名 转向URL地址 API Access下会得到 oauth2_client_...

WCF 项目应用连载[3] - 双向通信 实例管理与服务端监控

主题: 1) 本系列文章将以 创建一个轻量级的 Log 系统为例说明 WCF 在一个真实的项目中你最想看到的应用。。。。 2) 下面的所有内容围绕 Litelog(Lig)工程展开。并提供工程源代码...

项目实战:封装友盟,数据化监控应用

《从理论到实践,埋点专车费用明细模块》在简书首页、人人都是产品经理等各大媒体取得了不错的反响。正所谓授人以鱼不如授人以渔。今天我们从代码层面进行埋点实现,引入友盟并进行封装,然后视具体规划埋点,数据化...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)