OAuth2.0介绍

一、介绍

OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth1.0,即完全废弃了OAuth1.0。

比如简书使用微信登录大致认证流程如下:

简书使用微信登录认证流程

下图摘自 https://tools.ietf.org/html/rfc6749

OAuth2.0认证流程

OAuth2.0包括以下角色:
1、客户端
本身不存储资源,需要通过资源拥有者的授权去请求资源服务器的资源,比如:移动客户端、Web客户端、微信客户端等。
2、资源拥有者
通常为用户,也可以是应用程序,即该资源的拥有者。
3、授权服务器(认证服务器)
用于服务提供商对资源拥有者的身份进行认证,对访问资源进行授权,认证成功后会给客户端颁发令牌(access_token),作为客户端访问资源服务器的凭证。本例为微信的认证服务器。
4、资源服务器
存储资源的服务器,本例子为微信存储的用户信息。

现在还有一个问题,服务提供商能允许随便一个客户端就接入到它的授权服务器吗?答案是否定的,服务提供商会给准入的接入方一个身份,用于接入的凭证:
client_id:客户端标识
client_secret:客户端秘钥

因此,准确来说,授权服务器对两种OAuth2.0中的两个角色进行认证授权,分别是资源拥有者客户端

推荐阅读更多精彩内容