OAuth2.0原理与攻击面

OAuth2.0是流行的授权机制,用于授权第三方应用访问用户数据。文章介绍了OAuth2.0的基本流程、四种授权模式、安全漏洞(如access_token未绑定用户、CSRF和redirect_url授权劫持)及其防御策略。强调了令牌的安全性和生命周期管理,以及在实际应用中的安全注意事项。
摘要由CSDN通过智能技术生成

OAuth2.0协议原理

OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取部分用户数据。

OAuth2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。2012年10月,OAuth 2.0协议正式发布为RFC 6749 (Request For Comments 互联网标准文件,按编号排列)。

特点

  1. OAuth 的核心就是向第三方应用颁发令牌
  2. OAuth 2.0 规定了四种获得令牌的流程。你可以选择最适合自己的那一种,向第三方应用颁发令牌

应用
统一认证登陆、第三方账号绑定登陆

令牌与密码

令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异。

(1)令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。

(2)令牌可以被数据所有者撤销,会立即失效。以上例而言,屋主可以随时取消快递员的令牌。密码一般不允许被他人撤销。

(3)令牌有权限范围(scope),比如只能进小区的二号门。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。

上面这些设计,保证了令牌既可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。这就是 OAuth 2.0 的优点。

注意,只要知道了令牌,就能进入系统。系统一般不会再次确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。 这也是为什么令牌的有效期,一般都设置得很短的原因。

OAuth的参与实体

至少有如下4个:

  • RO (resource owner): 资源所有者,即用户,对资源具有授权能力。
  • AS (authorization server):授权服务器,它认证RO的身份,为RO提供授权审批流程,并最终颁发授权令牌(Access Token)。
  • RS (resource server):资源服务器,它存储资源,并处理对资源的访问请求。AS与RS可以是同一个服务器。
  • Client: 第三方应用,它获得RO的授权后便可以去访问RO的资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值