OAuth 2.0

什么是oAuth

oAuth 协议为用户资源提供了一个安全的,开放而有简易的标准,与以往的授权方式不同,oAuth的授权不会使第三方触及用户的账号信息(如用户名和密码),因此oAuth是安全的.oAuth是Open Authorization

oAuth2协议中角色介绍

1)resource owner:资源拥有者  即用户

2) resource server:资源服务器  即存储用户数据的服务器,一般对外都以restful API的形式暴露用户数据,client 使用access token访问resource server的用户数据

3)client :客户端 即第三方应用

4)authorization server :授权服务器  用来鉴定第三方应用的合法性,并对用户登录  是否授权进行响应,向第三方应用颁发用户token 或者告知授权失败

 

 

oAuth 2使用场景介绍

目前,oAuth 2协议使用场景最多的是给第三方应用获取用户的信息,具体的业务流程如下

①: 在浏览器中,用户点击第三方应用按钮,由第三方应用发起请求,向平台发起授权请求

② : 平台接收第三方的应用请求后,浏览器跳转用户登录界面,请求用户进行登录

③:  用户在平台登录界面输入用户名和密码进行登录

④:  平台判断用户合法性,校验失败,在浏览器提示错误信息

⑤:  平台判断用户是否对第三方应用进行授权(不需要授权的情况有两种,a平台信任第三方应用,如公司内部,无需授权,默认给与用户数据  b,该用户之前已经给该应用受过权限,并且仍在有效期内)

⑥: 如需授权,平台跳转到授权界面,告知用户授予哪个第三方哪些数据

⑦: 用户授权后,将用户授权码回调第三方url

⑧:  第三方在获取用户授权码后,带着授权码访问平台的鉴权接口,请求用户的token

⑨:  平台在收到请求后,校验授权码的真实性,并返回用户token

⑩: 第三方应用使用用户token向平台请求用户数据接口.接口平台判断token的真实性,并向第三方返回用户数据

oAuth 2 核心功能说明

1  应用注册

  应用注册后,oAuth 2会下发应用的app_id 和app_secret,用来标记应用的唯一性,并且这两个参数将贯穿整个oAuth协议,用以对应用合法性进行校验,同时提供redirect_url,用来和平台进行异步交互,获取用户的令牌或者错误信息

2  授权/鉴权中心

  • 对用户的用户名和密码进行授权
  • 对第三方的app_id和app_secret进行鉴权
  • 展示授权界面,并对第三应用的授权进行响应
  • 对用户的授权码以及用户token的真实性进行鉴权

3 token 管理

  • 创建token 刷新token
  • 查询token详细信息
  • 校验token时效性

oAuth2体系结构

SSO介绍

什么是SSO

百科:SSO,英文名称Single Sign On 单点登录.SSO是在多个子应用系统中,用户只需登录一次就可以访问多有互相信任的应用系统,简单来说,SSO的出现的目的在于解决同一产品体系中,多应用共享用户的session,sso通过将用户登录信息映射到浏览器的cookie中,解决其他应用免登陆获取用户session的问题

 

 

  

 

posted on 2018-07-18 18:25  期待华丽转身  阅读(237)  评论(0编辑  收藏  举报