OAuth2

简介: OAuth2

一、OAuth2概述

  • OAuth2是一个开放标准/开发协议,允许第三方应用访问该用户在某一网站存储的资源(头像、照片、视频)
  • 并且不需要将用户的账号和密码给第三方应用,而是通过token的方式实现访问,比如常见的qq登录、微博登录、github登录等
  • OAuth2是OAuth1.0协议下一版本,但是不兼容OAuth1.0
  • security 对OAuth2也是有非常好的支持,后面会介绍Spring Security OAuth2
  • OAuth2支持不同的授权模式,每种模式适用于不同的场景

二、OAuth2四种授权模式

1、四种授权模式概述

OAuth2有以下四种授权模式,每种授权模式应用于不同的互联网场景

  • 授权码模式
  • 简化模式
  • 密码模式
  • 客户端模式

四种授权模式的流程基本都一致的如下,只是个别步骤有所差异

A:客户端需要给用户授权

B:用户同意授权

C:客户端使用上面的授权向认证服务器获取令牌

D:认证服务器确认授权正确 下发令牌

E:客户端使用令牌访问认证服务器上的资源

F:资源服务器确认令牌正确,下发资源

2、授权码模式(重要)

常见的第三方登录(qq登录、github登录)基本都是用这种授权模式

这种也是使用最多、最完全、流程步骤最多的一种授权模式,流程如下

A:用户访问第三方应用,第三方应用通过浏览器访问认证服务器

B:用户选择是否授权

C:选择授权之后 ,认证服务器将用户导向客户端事先指定的重定向URL(redirection url),同时附上一个授权码

D:客户端收到授权码,附上上面的 重定向URL 向认证服务器申请令牌,此操作是在客户端的后端服务器完成,对用户不可见

E:认证服务器核对了授权码和重定向url之后,确认正确,下发访问令牌和更新令牌

3、简化模式

和授权码模式相比,跳过了用户授权(不需要用户授权了)直接在浏览器中想认证服务器申请令牌,令牌对访问者是可见的,且客户端不需要认证

流程如下

注意:这种模式在spring security oatuh2是没有实现的

4、密码模式

用户向客户端提供自己的账户和密码,客户端用这些信息去认证服务器索要授权。通常是用户高度信任的客户端使用这种模式认证

5、客户端模式

用户将账号和密码给客户端,客户端拿着账户和密码去认证服务器进行认证,流程如下



相关文章
|
存储 安全 Java
OAuth2.0
OAuth2.0
279 0
|
1月前
|
存储 安全 小程序
认识OAuth2.0
认识OAuth2.0
47 0
认识OAuth2.0
|
JSON 安全 Cloud Native
什么是单点登录?什么又是 OAuth2.0?
什么是单点登录?什么又是 OAuth2.0?
177 0
|
存储 安全 数据安全/隐私保护
OAuth2.0与OAuth1.0你了解了吗?
OAuth2.0与OAuth1.0你了解了吗?
|
安全 JavaScript 前端开发
详解OAuth2.0
1.概述 OAUTH,Open Authorization,开放授权协议,为用户资源的授权提供了一个安全的、开放而又简易的标准。目的是让第三方对用户的数据只有有限访问权,而无法触及到用户的核心信息。 例如,在第三方网站上使用微信或者QQ作为账号进行登录,就是使用的oauth协议,只返回给第三方诸如用户名、头像等信息,而不会返回给第三方秘密等核心数据。 OAuth最初由Twitter的开发人员提出,后来成为了一个互联网标准,并得到了广泛应用。OAuth2.0是OAuth协议的第二个版本,是一种更加安全、可扩展、功能更加完备的授权协议。目前我们说OAuth一般指的就是OAuth 2.0。
1847 1
|
存储 JavaScript 前端开发
带你全面了解 OAuth2.0
最开始接触 OAuth2.0 的时候,经常将它和 SSO单点登录搞混。后来因为工作需要,在项目中实现了一套SSO,通过对SSO的逐渐了解,也把它和OAuth2.0区分开了。所以当时自己也整理了一篇文章《SSO单点登录原理及实现方式》 最近需要经常和各大电商平台进行对接,所以又和OAuth2.0重逢了。因此这里再次对OAuth2.0的原理及实现方式进行一个梳理,希望通过这套教程能够帮到大家。对于技术类的文章,这引言是有点过长了。好了下面我们进入正题。
664 0
|
安全 应用服务中间件 API
JWT和OAuth2.0
JWT是一种认证协议,提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。SSO私钥加密token。应用端公钥解密token。 OAuth2.0是一种授权框架,提供了一套详细的授权机制(指导)。用户或应用可以通过公开的或私有的设置,授权第三方应用访问特定资源。
214 0
JWT和OAuth2.0
|
存储 安全 Java
OAuth2.0介绍|学习笔记
快速学习 OAuth2.0介绍
OAuth2.0介绍|学习笔记
|
存储 数据库 数据安全/隐私保护
OAuth2介绍 | 学习笔记
快速学习 OAuth2介绍
OAuth2介绍 | 学习笔记
|
安全 程序员 数据安全/隐私保护
浅谈OAuth2.0
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。OAuth不是一个认证协议,这点不要搞混。