打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
OAuth2.0简介

为什么要有2.0版本?

前面的文章说了OAuth1.0,怎么又突然冒出一个2.0呢?我查阅了一些文档,主要是这些原因:

1. 签名算法太复杂

还记得1.0里面需要对一堆必须的参数排序,编码,然后用secret去签名吧

2. 获取token的方式单一

就一种方式

3. 性能和可伸缩性比较差

由于验证和受保护资源都在一台服务器上。(这个。。。感觉有点牵强,应该也可以分离的)

2.0的改进

针对以上问题,2.0做了以下改进:

1. 角色分离

将认证服务器和资源服务器分开,功能更加清晰,性能和可伸缩性也更好。

2. 去除签名

对,任何签名都不需要了。但必须使用HTTPS安全通道。

3. 多种获取token的方式

a) 认证码授权(Authorization Code Grant

1.0的简化版,客户端需要引导用户跳转到授权服务器提供的授权页面,用户输入密码,同意授权,授权服务器返回给客户端认证码,客户端用认证码去验证服务器换取访问码(Access Token)。

流程图,用新浪的:

b) 隐式授权(Implicit Grant)

客户端javascript获得资源的一种方式,一次请求即直接获取token。

c) 用户密码对授权(Resource Owner Password Credentials Grant)

用户在完全信任第三方客户端的情况下,把密码提供给客户端,客户端到认证服务器一次性换取访问码(Access Token)。

还有其他的一些方式了,具体可参考RFC。

4. 访问码(Access Token)过期

2.0里,访问码(Access Token)会有过期时间,但过期之后,客户端可以它换取新的访问码(Access Token),这样设计被认为安全。

总结

2.0版本的OAuth还处于draft阶段,但是有很多公司已经采用了,比如:google, facebook, linkin等,国内比如:新浪微博,腾讯微博。

看来大家还是比较看好的,可能确实1.0太复杂了吧。

参考文章:

1. Introducing OAuth 2.0

2. The OAuth 2.0 Authorization Protocol draft-ietf-oauth-v2-23

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
OAuth 2.0
Spring Cloud(6):保护微服务(Security)
图文并茂,带你梳理一下 OAuth2.0 概念和授权流程
Oauth2详解
第 87 天:Python Web开发 OAuth2.0 简介
为什么 OAuth 里除了 Access Token 之外,还需要 Refresh Token?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服