- OAuth 2.0 是什么?
OAuth 2.0是在2006年底创建的下一代OAuth协议。OAuth 2.0为客户端开发者开发Web应用,桌面端应用程序,移动应用及客厅设备提供特定的授权流程。该规范是IETF OAuth WG工作组下基于OAuth WRAP协议制定的。
2. OAuth 2.0 能做什么?
OAuth 2.0 授权框架允许第三方应用通过代表拥有编排批准交互的资源所有者和HTTP服务的资源或者通过允许第三方应用程序获得代表自己访问受限的HTTP服务。
3. OAuth 2.0有哪些角色?
资源拥有者(resource owner):能够授权访问被保护资源的一个实体。当它指的一个人时,就是称之为终端用户。
资源服务器(resource server):管理受保护资源的服务器。当使用访问令牌访问资源时,它决定是否接受该令牌并输出受保护的资源。
客户端(client):应用程序本身不存储任何受保护的资源,而是资源所有者授权通过后,使用它的授权访问受保护的资源,然后客户端把响应的数据展示/提交给服务器。使受保护的资源请求资源所有者的代表和授权。
授权服务器(authorization server):客户端成功验证资源所有者并获取授权后,授权服务器发放访问令牌给客户端。
4. OAuth 2.0授权流程
4.1 客户端向资源拥有者发起授权请求,这种授权请求可以直接向资源拥有者发起(如图),也可以间接通过授权服务器作为中介发起。
4.2 客户端接收授权许可,这是一个代表资源所有者的授权凭证。授权类型可以OAuth 2.0规范中四种的任意一种,也可以是扩展授权类型。授权类型取决于方法所使用的客户端请求授权和授权服务器所支持的类型。
4.3 客户端通过私有证书和授权许可请求授权服务器授权。
4.4 授权服务器对客户端进行验证。验证通过后,返回访问令牌。
4.5 客户端使用访问令牌向资源服务器请求受保护资源。
4.6 资源服务器验证令牌的有效性,验证成功后,下发受保护的资源。