OAuth 2.0
Posted developerxiaofeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的问题
以上是关于OAuth 2.0的主要内容,如果未能解决你的问题,请参考以下文章
OAuth 2.0 极简教程 (The OAuth 2.0 Authorization Framework)
Spring-OAUTH2.0:调用 /oauth/token 时没有可用资源错误