身份认证系统 OAuth2的四种模式

OAuth2标准为了应对不同的场景,设计了四种不同的标准模式。

1、授权码模式

授权码模式是四种模式中最繁琐也是最安全的一种模式。

client向资源服务器请求资源,被重定向到授权服务器(AuthorizationServer)

浏览器向资源拥有者索要授权,之后将用户授权发送给授权服务器

授权服务器将授权码(AuthorizationCode)转经浏览器发送给client

client拿着授权码向授权服务器索要访问令牌

授权服务器返回Access     Token和Refresh Token给cilent

这种模式是四种模式中最安全的一种模式。一般用于client是Web服务器端应用或第三方的原生App调用资源服务的时候。因为在这种模式中AccessToken不会经过浏览器或移动端的App,而是直接从服务端去交换,这样就最大限度的减小了AccessToken泄漏的风险。

2、简化模式

简化模式相对于授权码模式省略了,提供授权码,然后通过服务端发送授权码换取AccessToken的过程。

client请求资源被浏览器转发至授权服务器

浏览器向资源拥有者索要授权,之后将用户授权发送给授权服务器

授权服务器将AccessToken以Hash的形式存放在重定向uri的fargment中发送给浏览器

浏览器访问重定向URI

资源服务器返回一个脚本,用以解析Hash中的AccessToken

浏览器将Access Token解析出来

将解析出的Access Token发送给client

一般简化模式用于没有服务器端的第三方单页面应用,因为没有服务器端就无法使用授权码模式。

3、密码模式

密码模式是用户直接将自己的用户名密码交给client,client用用户的用户名密码直接换取AccessToken。

用户将认证密码发送给client

client拿着用户的密码向授权服务器请求Access Token

授权服务器将Access Token和Refresh Token发送给client

这种模式十分简单,但是却意味着直接将用户敏感信息泄漏给了client,因此这就说明这种模式只能用于client是我们自己开发的情况下。因此密码模式一般用于我们自己开发的,第一方原生App或第一方单页面应用。

4、客户端模式

这是一种最简单的模式,只要client请求,我们就将AccessToken发送给它。

client向授权服务器发送自己的身份信息,并请求AccessToken

确认client信息无误后,将AccessToken发送给client

这种模式是最方便但最不安全的模式。因此这就要求我们对client完全的信任,而client本身也是安全的。因此这种模式一般用来提供给我们完全信任的服务器端服务。在这个过程中不需要用户的参与。

我们来总结一下四种模式的应用场景:

1、授权码模式:第三方Web服务器端应用与第三方原生App

2、简化模式:第三方单页面应用

3、密码模式:第一方单页应用与第一方原生App

4、客户端模式:没有用户参与的,完全信任的服务器端服务

原文地址:https://www.cnblogs.com/yanglang/p/12234487.html

时间: 2024-08-01 20:34:19

身份认证系统 OAuth2的四种模式的相关文章

Activity生命周期+四种模式——枯燥重要(五)

Activity生命周期+四种模式 了解android系统的四大组件 掌握Activity的生命周期 LogCat的使用 Android系统有四个重要的组件,分别是 Activity Service BroadcastReceiver ContentProvider Activity是Android程序的呈现层,显示可视化的用户 界面,并接收与用户交互所产生的界面事件 Android应用程序可以包含一个或多个Activity,一般在 程序启动后会呈现一个Activity,用于提示用户程序已经 正

ThinkPHP教程_PHP框架之ThinkPHP(二)【URL路径访问与模块控制器、URL四种模式、PATHINFO的两种模式、模板与控制器之间的关系】

一.URL路径访问与模块控制器 URL 模块(控制器) 动作(方法) 即以上三者之间的关系URL:http://127.0.0.1/projectName/index.php/模块/动作 1.ThinkPHP规定,两点 ·第一.所有的主入口文件默认访问index控制器(模块) ·第二.所有的控制器默认执行index方法(动作) 特别强调一下,以上两点是独立的!也就是说"所有的主入口文件默认访问index控制器,并执行默认执行index方法"是不准确的 那么,http://127.0.0

辛星笔记云计算第四篇即云的四种模式

虽然从技术或者架构角度看,云计算比较单一,但是在实际情况下,为了适应用户不同的需求,它会演变为不同的模式.在NIST(National  Institue  of  Standards  and  Technology,美国国家标准技术研究院)的名为"The  NIST Definition  of  Cloud Computing"的关于云计算概念的文档中,定义了云的四种模式,分别是:公有云.私有云.混合云和行业云. 公有云: (1)公有云是现在最主流也是最受欢迎的云计算模式.它是一

oracle数据库的停止(四种模式)

数据库的停止(四种模式)1.正常停库:shutdown normal = shutdown普通用户的连接不允许建立等待查询结束等待事务结束产生检查点(数据同步)关闭联机日志和数据文件关闭控制文件关闭实例 2.事务级停库: shutdown transactional普通用户的连接不允许建立查询被终止等待事务结束产生检查点(数据同步)关闭联机日志和数据文件关闭控制文件关闭实例 3.立即停库: shutdown immediate (生产库最常用的停库方式)普通用户的连接不允许建立查询被终止事务被回

基于DDD + SD.Framework实现的统一身份认证系统

项目地址 http://git.oschina.net/lishilei0523/ShSoft.UAC 项目说明 本项目开发的目的有三: 1.作为一个使用SD.Framework框架开发的项目样板 2.探索基于ASP.NET MVC的前端架构 3.做一套统一身份认证系统 注意事项: 如果编译失败,请安装PostSharp-4.1.15.exe(项目根目录下或附件中有) 请先修改服务端AppService项目配置文件中连接字符串,数据库会自动生成 先运行服务端,再运行客户端 如果服务端运行失败,请

LACP和PAgP的四种模式

PAgP的四种模式 模式 含义 开启(on) 端口不进行协商,直接形成以太网通道:在这种模式下,对端必须也是on模式,以太网通道才能正常工作. 关闭(off) 阻止端口形成以太网通道 自动(auto) 在自动模式时,被动的监听,不主动发起协商,等待PAgP协商请求数据包,当出现请求时才进行以太网通道的协商. 企望(desirable) 这种模式主动发起请求对交换机进行以太网通道的协商. LACP的四种模式 模式 含义 开启(on) 端口不进行协商,直接形成以太网通道:在这种模式下,对端必须也是o

小知识:SPI四种模式区别【转】

转自:http://home.eeworld.com.cn/my/space-uid-80086-blogid-119198.html spi四种模式SPI的相位(CPHA)和极性(CPOL)分别可以为0或1,对应的4种组合构成了SPI的4种模式(mode) Mode 0 CPOL=0, CPHA=0 Mode 1 CPOL=0, CPHA=1Mode 2 CPOL=1, CPHA=0 Mode 3 CPOL=1, CPHA=1 时钟极性CPOL: 即SPI空闲时,时钟信号SCLK的电平(1:空

对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)

对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB) 一. AES对称加密: AES加密 分组 二. 分组密码的填充 分组密码的填充 e.g.: PKCS#5填充方式 三. 流密码:   四. 分组密码加密中的四种模式: 3.1 ECB模式 优点: 1.简单: 2.有利于并行计算: 3.误差不会被传送: 缺点: 1.不能隐藏明文的模式: 2.可能对明文进行主动攻击: 3.2 CBC模式: 优点: 1.不容易主动攻击,安全性好于ECB,适合传输长度长的报文,是SSL.IPSec的标准.

AES加密的四种模式详解

对称加密和分组加密中的四种模式(ECB.CBC.CFB.OFB) 一. AES对称加密:                                                       AES加密                          分组 二. 分组密码的填充                                                    分组密码的填充 e.g.: