OAuth协议

背景

随着互联网的深入发展,互联网巨头逐渐积累了海量的用户和数据。对于平台级应用而言,用户需求多种多样,变化万千,独立应付不免分身乏术。因此,将数据以接口的形式下放给众多的第三方开发者,第三方开发者经过二次开发,满足用户的独特需求。同时,平台型应用吸引了第三方开发者和用户,在大平台周围形成了一个良好的生态环境。

OAuth

OAuth介绍

OAuth协议旨在为用户资源的授权访问提供一个安全,开放的标准。平台商通过OAuth协议,提示用户对第三方软件厂商(ISV)进行授权,使得第三方软件厂商能够使用平台商的部分数据,对外提供服务。

                                                  

与以往的授权方式不同,OAuth协议并不需要触及用户的账户信息(用户名和密码),通过不同类型的token,便可以让平台商完成针对第三方应用的用户信息访问授权。

正是由于OAuth协议平衡了ISV,平台商,用户三者间的诉求,很多大型互联网企业,如Google,Facebook,Microsoft等,都通过OAuth协议对外开放了其所拥有的海量数据,繁荣了整个互联网生态圈。也使得OAuth协议正逐渐成为开放资源授权的标准协议。

OAuth授权过程

OAuth的最新版本是OAuth2.0.核心思想是将资源做权限分级和隔离。ISV引导用户在平台端登录,完成授权,获得授权后ISV可以在一定时间段内访问用户的私有数据。整个过程中用户可以取消授权。

要获得OAuth协议授权,首先需要第三方开发者向平台商申请应用ID,即appId,对自己的APP进行注册。之后整个OAuth授权过程涵盖了三个角色:普通用户(consumer),第三方应用(ISV),平台商(platform)。包含了如下几个步骤:

1.用户对ISV应用进行访问,发起请求

2.ISV应用收到请求后,使用appId向平台请求request token

3.平台返回request token给ISV应用

4.ISV应用重定向到平台授权页面(页面url包括requesttoken,ISV回调链接和appId),引导用户登录

5.用户在平台授权页面进行登录,并且完成授权

6.平台通过ISV提供的回调链接,返回accesstoken给ISV应用

7.ISV应用通过access token取得用户授权的数据,返回给用户

通常情况下,OAuth协议在进行协议授权和数据传输时,包含的都是敏感度较高的内容。为了确保通信安全,一般会使用摘要认证,签名认证和Https等技术。

OAuth授权是一个相对复杂的过程,整体架构涵盖了系统设计的方方面面。不仅包括认证过程,还要解决开发者入驻,权限粒度控制,token生成和校验,分布式session,公私钥管理等问题。

随着开源社区的发展,一大批开源的OAuth库如雨后春笋版涌现。详情可以参考:

https://oauth.net/2/

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值