OAUTH2.0理解

OAUTH2

OAuth2.0 是一个开放受权协议,经常使用于第三方服务的认证,其之于1.0更为简单,且更安全。api

基础概念

将服务上的用户数据安全的开放给第三方应用,其有两部分组成:安全

  • 受权服务:用户对应用的受权及Token发放
  • 资源服务:应用鉴权后的服务资源Api响应

受权模式

  • 受权码受权模式(authorization code grant)
    经过受权码的跳转工做流来签发Token,这是目前微信公众号等各大开放平台服务中经常使用的方案
  • 简化受权模式(implicit grant)
    相似于受权码受权模式,可是简化掉了受权码交换的操做
  • 密码受权模式(password grant)
    密码受权模式方便于第一方客户端(手机应用等)直接经过帐号密码来交换Token,不用像第三方客户端那样经过受权码跳转
  • 客户端凭据受权模式(client credentials grant)
    该模式并不是Auth的第三方受权解决方案
    这里不存在用户角色,而是应用服务利用本身的客户端身份直接向认证服务器提请受权
    认证服务器须要保存应用的Client ID、Client Secret等身份信息
    经常使用于服务化架构系统中微服务间的api通讯

受权码受权模式

角色
整个流程中有四种角色:服务器

  • 资源拥有者(Resource Owner)
  • 资源服务器(Resource Server)
  • 受权服务器(Authorization Server)
  • 客户端(Client)

受权流程微信

  1. 客户端应用引导用户到受权服务页面
  2. 用户登陆并受权客户端应用获取某个Scope域中的用户资源信息
  3. 客户端应用得到一个受权码
  4. 客户端应用经过受权码向受权服务器请求access token
  5. 客户端应用经过access token向资源服务器请求Scope域中的资源信息
相关文章
相关标签/搜索