oauth2 clientid作用_Oauth 2.0 授权机制

oauth2 clientid作用_Oauth 2.0 授权机制_第1张图片

在了解 Oauth 2.0 之前,我们先看一下令牌密码到底有什么关系,其实令牌(token)与密码(password)的作用是一样的,都可以进入系统,但是有三点差异:

  1. 令牌是短期的,到期会自动失效,且用户自己无法修改;密码一般长期有效,用户不修改,就不会发生变化。
  2. 令牌可以被数据的所有者撤销,会立即失效。
  3. 令牌有权限范围(scope)对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。

上面这些设计,保证了令牌既可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。这就是 OAuth 2.0 的优点。

但是需要注意:只要知道了令牌,就能进入系统。系统一般不会再次确认身份,所以令牌必须保密,泄漏令牌与泄漏密码的后果是一样的。这也是为什么令牌的有效期,一般都设置得很短的原因。

什么是Oauth 2.0

OAuth 2.0 是一种授权机制,主要用来颁发令牌(token).

OAuth 2.0 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。待资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去资源服务器请求数据。

  • RFC开放标准文件:https://tools.ietf.org/html/rfc6749

1. 应用场景

(1)第三方应用授权登录

在APP或者网页接入一些第三方应用时,时长需要用户登录另外一个合作平台,比如:QQ、微博、微信、Github、码云等授权登录。

下面以登录基于码云存储的图床案例进行分析:

  • 图床地址:http://image.kevinlu98.cn/
  • 码云授权第三方服务应用:https://gitee.com/oauth/applications

(2)原生APP 授权

app登录请求后台接口,为了安全认证,所有请求都带token信息,如果登录验证、请求后台数据。

(3)前后单分离单页面应用

前后端分离框架,前端请求后台数据,需要进行oauth2安全认证,比如使用vue、react后者h5开发的app。

2. 名词说明

  • 第三方应用:本文中又称"客户端"(client),比如打开知乎,使用第三方登录,选择qq登录,这时候知乎就是客户端。
  • HTTP service:HTTP服务提供商,简称"服务提供商",即上例的qq。
  • 资源所有者(Resource Owner):也就是登录用户
  • 用户代理(user agent):也就是浏览器
  • 认证服务(Authorization server):服务提供商专门用来处理认证的服务器
  • 资源服务器(Resou

你可能感兴趣的:(oauth2,clientid作用)