文章目录
OAuth2.0协议原理
OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取部分用户数据。
OAuth2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0。2012年10月,OAuth 2.0协议正式发布为RFC 6749 (Request For Comments 互联网标准文件,按编号排列)。
特点
- OAuth 的核心就是向第三方应用颁发令牌
- 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的资源。
OAuth2.0是流行的授权机制,用于授权第三方应用访问用户数据。文章介绍了OAuth2.0的基本流程、四种授权模式、安全漏洞(如access_token未绑定用户、CSRF和redirect_url授权劫持)及其防御策略。强调了令牌的安全性和生命周期管理,以及在实际应用中的安全注意事项。
最低0.47元/天 解锁文章

9282

被折叠的 条评论
为什么被折叠?



