从Client应用场景介绍IdentityServer4(三)

原文:从Client应用场景介绍IdentityServer4(三)

在学习其他应用场景前,需要了解几个客户端的授权模式。首先了解下本节使用的几个名词

Resource Owner:资源拥有者,文中称“user”;

Client为第三方客户端;

Authorization server为授权服务器;

redirection URI:简单理解为取数据的地址;

User Agent:用户代理,本文中就是指浏览器;

这里把访问资源服务器简单理解成取数据。


Resource Owner Password Credentials模式

下面以我自己的理解加上对话的形式来简要说明。

User:Client,这是我的redirection URI,user ID和Password,你去帮我拿些数据吧。

Client:好的,没问题!(转向Authorization server)Authorization server,这是user的user ID和Password,我要去拿user需要的数据。

Authorization server:给的user ID和Password正确,给你access token和refresh token,去拿数据吧。


authorization code模式

User:Client,这是我的redirection URI,你去帮我拿些数据吧,但是我不会提供账号密码。

Client:这样啊,那我们找Authorization server吧,让它来当中间人。

Authorization server(很负责任):User,你是要让Client帮你拿数据吗。

User:是啊,这是我的redirection URI。

Authorization server:Client,给你个授权码authorization code,你拿着authorization code和user给你redirection URI给我验证吧。

Client:好,这是authorization code和user给我redirection URI,我要去拿数据了。

Authorization server:可以,验证没问题了,给你个access token和refresh token,你去拿数据吧。


Implicit模式

User:Client,这是我的redirection URI,你去帮我拿些数据吧,但是我不会提供账号密码。

Client:这样啊,那我们还是找Authorization server吧,让它来当中间人。

Authorization server:User,你是要让Client帮你拿数据吗。

User:是啊,这是我的redirection URI。

Authorization server:(浏览器登场)浏览器,这是user的redirection URI和access token的碎片,你来帮他搞吧。

浏览器(很委屈):只给access token的碎片弄不了啊,我还是问redirection URI怎样才能把这些碎片拼完整吧。

redirection URI的老大(资源服务器):给你个网页,里面有方法把access token的碎片拼起来。

浏览器:Client,access token拼好了,你用access token去拿数据吧。

Implicit模式通过user的浏览器成功拿到了access token,相对于authorization code模式,省去了授权码部分。

而密码模式,需要user提供账号和密码进行验证。倘若user的账号密码可以让Client获取到,可以使用密码模式,但要确保Client不被黑了。


Hybrid模式:

Hybrid模式是结合了Implicit模式和authorization code模式。以下是我对Hybrid模式的理解,如有不对的地方,欢迎指正!

User通过身份认证后,ID token和类似授权码authorization code等信息被传输到浏览器,Client通过浏览器获取到authorization code,然后从Authorization server获取到access token和refresh token。



最后说下refresh token

获取到access token后,它是默认有效时间为3600秒/1小时,可以在new Client的AccessTokenLifetime进行设置。一般情况下,access token失效后,用户需要重新授权,Client才能拿到新的access token。但有了refresh token后,Client检测到access token失效后,可直接向Authorization server申请新的access token。当然,refresh token也是有有效期的。

AbsoluteRefreshTokenLifetime的默认有效期为2592000秒/30天。SlidingRefreshTokenLifetime的默认有效期为1296000秒/15天。

refresh token支持hybrid,authorization code,device flow 和 resource owner password flows等模式 。



本节图片转自阮一峰的网络日志:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

以上是个人对客户端的授权模式的理解,如有不对的地方,欢迎指正

原文地址:https://www.cnblogs.com/lonelyxmas/p/10182332.html

时间: 2024-08-29 11:59:54

从Client应用场景介绍IdentityServer4(三)的相关文章

MTOM文件的续传功能(三) Client 端程序介绍

使用WSE 3.0 MTOM的技术,让Web Service也可以传文件,而且传输更有效率,这篇将带到Client端的部分说明. 上一篇写了MTOM Server端的部分,这次要写的就是Client端的程序要怎么跟Server交互,也就是最后一篇,废话不多说,马上进入正题,Client端的程序跟Server端一样,要用WSE的Configuration Tool来设定,而Web Service是存在Web.Config,那Client端的WinForm就是存在app.config ?xml ve

Memcache应用场景介绍

面临的问题 对于高并发高访问的Web应用程序来说,数据库存取瓶颈一直是个令人头疼的问题.特别当你的程序架构还是建立在单数据库模式,而一个数据池连接数峰 值已经达到500的时候,那你的程序运行离崩溃的边缘也不远了.很多小网站的开发人员一开始都将注意力放在了产品需求设计上,缺忽视了程序整体性能,可扩 展性等方面的考虑,结果眼看着访问量一天天网上爬,可突然发现有一天网站因为访问量过大而崩溃了,到时候哭都来不及.所以我们一定要未雨绸缪,在数据库还 没罢工前,想方设法给它减负,这也是这篇文章的主要议题.

23种设计模式介绍(三)---- 行为型模式

由于设计模式篇幅比较大,如果在一篇文章讲完所有的设计模式的话不利于阅读.于是我把它分为三篇文章 23种设计模式介绍(一)---- 创建型模式 23种设计模式介绍(二)---- 结构型模式 23种设计模式介绍(三)---- 行为型模式 设计模式都是比较抽象的概念,所以大家一定要确保看懂类图,而后再自己写代码加强记忆. 概述 行为型模式一共有11种: 模板方法模式(Template Method) 策略模式(Strategy) 命令模式(Command) 中介者模式(Mediator) 观察者模式(

Memcache应用场景介绍,说明

面临的问题 对于高并发高访问的Web应用程序来说,数据库存取瓶颈一直是个令人头疼的问题.特别当你的程序架构还是建立在单数据库模式,而一个数据池连接数峰 值已经达到500的时候,那你的程序运行离崩溃的边缘也不远了.很多小网站的开发人员一开始都将注意力放在了产品需求设计上,缺忽视了程序整体性能,可扩 展性等方面的考虑,结果眼看着访问量一天天网上爬,可突然发现有一天网站因为访问量过大而崩溃了,到时候哭都来不及.所以我们一定要未雨绸缪,在数据库还 没罢工前,想方设法给它减负,这也是这篇文章的主要议题.

消息中间件activemq的使用场景介绍(结合springboot的示例)

一.消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩和最终一致性架构.是大型分布式系统不可缺少的中间件. 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等. 二.消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景.异步处理,应用解耦,流量削锋和消息通讯四个场景.本篇使用ActiveMQ+SpringBoot来模拟这四个场景. 2.

Redis 中 5 种数据结构的使用场景介绍

这篇文章主要介绍了Redis中5种数据结构的使用场景介绍,本文对Redis中的5种数据类型String.Hash.List.Set.Sorted Set做了讲解,需要的朋友可以参考下 一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 redis 中一共有5种数据结构,那每种数据结构的使用场景都是什么呢? String——字符串 Hash——字典

Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析

关键词:蓝牙blueZ  A2DP.SINK.sink_connect.sink_disconnect.sink_suspend.sink_resume.sink_is_connected.sink_get_properties.AUDIO.DBUS版本号:基于android4.2之前版本号 bluez内核:linux/linux3.08系统:android/android4.1.3.4作者:xubin341719(欢迎转载.请注明作者.请尊重版权谢谢)欢迎指正错误.共同学习.共同进步!! 參考

grep过滤用法介绍(三)

grep过滤用法介绍(三) egrep是grep的扩展形式,grep能用的,egrep都能用 grep --color 'r\?o' 1.txt egrep --color 'r?o' 1.txt 这两式子相等,也就是说?或者+这样的特殊符号在egrep这里不需要脱义!,截图如下: grep -E==egrep egrep用法小结: 1. egrep --color 'root|nologin' 1.txt #head -n3 1.txt |egrep --color -n 'root|nolo

EMC产品分析介绍(三):备份领域的引领者DataDomain (1)

Contents 1.概述... 2.开创磁盘备份的新模式... 3.重复数据删除... 4.破解磁盘瓶颈点... 5.全局数据消重文件系统DDFS. 6.CPU-Centric存储系统... 7.数据无损体系结构... 8.备份与归档一体化... 9.高效的远程数据复制... 1.概述 长期以来备份存储领域被磁带所统治,其主要原因有两个方面.第一,磁带相对于磁盘介质而言,具有很好的价格优势:第二,备份存储主要是顺序写操作,只有在数据恢复的时候,才需要从磁带上读取数据.这两个特征就决定了磁带在数