quinnwencn / blog

Apache License 2.0
0 stars 0 forks source link

[Crypto] OAuth2.0 原理初探 #42

Open quinnwencn opened 3 weeks ago

quinnwencn commented 3 weeks ago

什么是OAuth 2.0

OAuth2.0是一个用于授权的开放标准协议,它提供了认证授权功能,资源拥有者(服务器)可以基于OAuth2.0有效管理第三方对资源的访问。OAuth2.0是OAuth(Open Authorization)的第二个版本,相比第一个版本,它提供了更好的有效性和用户体验。OAuth 1.0在2006年创立,主要解决了用户在使用第三方应用程序时不得不分享密码的问题,但是由于其使用的是签名密钥和令牌交换机制,过程比较复杂。在2012年,OAuth发布了第二个版本,也就是OAuth2.0,2.0版本简化了OAuth1.0的复杂性,采用了基于Bearer Token的授权模式。此外,OAuth2.0还提供了更为灵活的授权模式:授权码模式、隐式授权模式、资源所有者密码凭证模式和客户端凭证模式。

为什么要有OAuth

会有人有疑问,我们现在可以用TLS、密码认证等机制做授权保护,为什么还要有OAuth?在传统的CS(Client-Server)模型中,如果客户端要访问服务端的访问限制资源,那就必须要有服务端的凭证(Credentials)。如果有多个客户端,那么服务端就不得不和多个客户端共享访问凭证,同时也引入了一些安全隐患和限制: