关于OAuth2.0你要知道的事情

OAuth2.0

typora.jpg

简介

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0。主要用来解决用户授权及安全性的问题

##名词解释

  1. Third-party application: 第三方应用,即需要用户授权的应用程序。

  2. HTTP service: HTTP服务提供商,即存放用户资源的服务商家。

  3. Resource Owner: 资源所有者。

  4. User agent: 用户代理,一般就是浏览器。

  5. Authorization server: 认证服务器,服务厂商用来处理认证的服务器。

  6. Resource server: 资源服务器,存放资源的服务器。

Oauth2.0运行流程

typora.jpg

(A)用户打开客户端以后,客户端要求用户给予授权。

(B)用户同意给予客户端授权。

(C)客户端使用上一步获得的授权,向认证服务器申请令牌。

(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。

(E)客户端使用令牌,向资源服务器申请获取资源。

(F)资源服务器确认令牌无误,同意向客户端开放资源。

客户端的授权模式

在上面的授权访问资源步骤之中,怎么给客户授权是关键,OAuth2.0定义了四种授权方式。

  • 授权码模式:指的是第三方应用先申请一个授权码,然后再用该码获取令牌。

  • 隐藏式: 纯we b前端应用,允许直接向前端颁发令牌。

  • 密码式:允许用户把用户名和密码,直接告诉该应用。该应用就使用你的密码,申请令牌,这种方式称为”密码式”。

  • 凭证式:适用于没有前端的命令行应用,即在命令行下请求令牌。

    以上就是OAuth2.0的大致流程及关键步骤,详情见 阮一峰博客