IdentityServer4-客户端的授权模式原理分析(三)

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

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

Client为第三方客户端;

Authorization server为授权服务器;

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

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

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


 

Resource Owner Password Credentials模式

640?wx_fmt=png

 

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

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模式

640?wx_fmt=png

 

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模式

640?wx_fmt=png

 

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支持hybridauthorization codedevice flow 和 resource owner password flows等模式 。


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

相关文章:

  • 从Client应用场景介绍IdentityServer4(一)

  • IdentityServer4-EF动态配置Client和对Claims授权(二)

  • 基于IdentityServer4 实现.NET Core的认证授权

  • IdentityServer4与ocelot实现认证与客户端统一入口

  • 使用Dapper持久化IdentityServer4

原文地址: https://www.cnblogs.com/FireworksEasyCool/p/10142321.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【做题记录】[NOIP2011 提高组] 观光公交

P1315 [NOIP2011 提高组] 观光公交 我们想在 \(k\) 次加速每一次都取当前最优的方案加速。 考虑怎样计算对于每一条边如果在当前情况下使用加速器能够使答案减少的大小。 如果当前到达某个点时已经有人在等待了,那么加速这个点以前的边能够让这个点下车的人距离减少…

[2019 牛客CSP-S提高组赛前集训营4题解] 复读数组(数论)+ 路径计数机(数上DP)+ 排列计数机(线段树+二项式定理)

文章目录T1:复读数组题目题解代码实现T2:路径计数机题目题解代码实现T3:排列计数机题目题解CODET1:复读数组 题目 有一个长为nk的数组,它是由长为n的数组A1,A2,…,An重复k次得到的。 定义这个数组的一个区间的权值为…

模板:(多重)哈希

前言 还在为不想写双哈希又怕哈希冲突挂掉发愁吗? 来这里,满足你的一切梦想! 哈希还有模板? 其实就是把相关的函数和数组打包到一个结构体里 但是针心方便啊!!! 如果想双哈希的话,定…

CF1183H Subsequences (hard version)

题意: 长度为n的字符串S,现在要找出k个不同的子序列,使得这些序列的总价值最低 一个序列的价值等于删去的字符长度(空串也算子序列) 1≤n≤100,1≤k≤1012 题解: 一看就是dp,我们先想想串a可…

P7888-「MCOI-06」Distinct Subsequences【dp】

正题 题目大意 给出一个长度为nnn的字符串aaa,求它的所有子序列的本质不同子序列个数。 1≤n≤1061\leq n\leq 10^61≤n≤106 解题思路 考虑每个子序列产生的贡献,为了防止算重我们一个只统计走子序列自动机上的边的子序列,也就是说对于TTT…

微软携手 Docker 打造 CNAB,分布式应用来了!

微软中国MSDN 前天Microsoft Connect(); 2018发布的众多最新科技,都让全球开发者惊艳不已。其中一项最令开发者瞩目并迫不及待——微软联合Docker发布了云本地应用捆绑包(Cloud Native Application Bundle,以下简称CNAB)&#xff…

9.4 模拟

前言 175分 60100150 T3和T4做的不好 T4没有理解题目的意思…qwq T3暴力似乎挂了… 但T1和T2还是不戳的 T1打表找规律的方法也许更为有效 考场 先看题。 药丸。。 T3、4甚至根本没有看懂… T1和T2也感觉挺玄乎的 有一种爆零的预感 8:10 先看T1 推了推似乎还是有…

P4135 作诗

P4135 作诗 题意: 给定 n 个不大于 c 的正整数 a1…an 和 m 组询问,每次问 [l,r] 中有多少个数出现正偶数次。 对于每次询问: 设上一个询问的答案为 ans(第一个询问时 ans0),令L(lans)mod n1,…

[C++]试一试结构体struct node的构造函数

可直接点击跳转到构造函数处结构体概念定义结构体定义结构体及结构体变量结构体变量的特点成员调用成员函数调用结构体的构造函数Upd1Upd2Upd3结构体概念 在实际问题中,一组数据往往具有不同的数据类型。 例如:人口大普查时,需要记录每一个人…

CSP-S 2021 退役记

写的比较草率,但的确是真实感受。 10.23 回寝室前敲了一个 dinic 板子,觉得不会考。。。 10.24 8:00 起床,还好今天宿管不在,可以起的晚一点。 吃了早饭来机房颓废。 10:00 似乎考前反而不知道该如何复习了,翻了翻以前…

Ybtoj-排列计数【矩阵乘法,分块幂】

正题 题目链接:http://noip.ybtoj.com.cn/contest/596/problem/1 题目大意 TTT组询问给出nnn求有多少个nnn的排列满足第一个是111并且相邻的差不超过222。 1≤T≤106,1≤n≤1091\leq T\leq 10^6,1\leq n\leq 10^91≤T≤106,1≤n≤109 解题思路 考虑一下如果我们要不断向前填满…

[多校联考-西南大学附中]切面包(线段树/概率与期望)+ Slow Path Finding Algorithm(拓扑排序/DP)+ 分数转化(数论)

文章目录T1:分数转换题目题解代码实现T2:Slow Path Finding Algorithm题目题解代码实现T3:切面包题目题解代码实现T1:分数转换 题目 Time limit: 1.5 seconds Memory limit: 512 megabytes 给定一个十进制小数,请你…

P3992 [BJOI2017]开车

P3992 [BJOI2017]开车 题意: 题解: 我们要先将问题转换 圈是车,x是加油站。红色部分为车移动的路线 数组a是车数量的前缀和 数组b是加油站的前缀和 而a[i]与b[i]的差的绝对值就是对应的红色路被走的次数 现在车发生位置移动,b数…

IdentityServer4-MVC+Hybrid实现Claims授权验证(四)

上节IdentityServer4-客户端的授权模式原理分析(三)以对话形式,大概说了几种客户端授权模式的原理,这节重点介绍Hybrid模式在MVC下的使用。且为实现IdentityServer4从数据库获取User进行验证,并对Claim进行权限设置打下…

9.05 模拟

文章目录前言考场复盘T2T4总结前言 290分 1003010060 整体来说还不错,没有挂分 但是T2应该可以拿到值域[1,000]的第二档写到60分的 一部分原因也是给T2的时间有点少 (十分钟) 本次第一次尝试了在考场上对拍 效果还是不错的,并不会…

李超线段树

李超线段树可以用来维护平面上的线段(但是要求 \(x\) 或 \(y\) 其中一维比较小,在 \(10^5\) 及以内)。 称一条线段能成为区间 \([l,r]\) 中的最优线段,当且仅当: 该线段的定义域完整覆盖了区间 \([l,r]\) ; 该线段在区间中点处最…

2021牛客OI赛前集训营-树数树【树上启发式合并,堆】

正题 题目链接:https://ac.nowcoder.com/acm/contest/20107/C 题目大意 给出nnn个点的一棵树,求一个最长的序列使得数字互不相同且相邻编号节点的都是祖孙关系。 1≤n≤105,1≤T≤51\leq n\leq 10^5,1\leq T\leq 51≤n≤105,1≤T≤5 解题思路 wx,iw_{x,i}wx,i​表…

漫谈何时从单体架构迁移到微服务?

面对微服务如火如荼的发展,很多人都在了解,学习希望能在自己的项目中帮得上忙,当你对微服务的庐山真面目有所了解后,接下来就是说服自己了,到底如何评估微服务,什么时候使用微服务,什么时间点最…

模版:线段树合并+线段树分裂

文章目录前言合并代码分裂代码前言 话说天下之树,分久必合,合久必分 合并 所谓合并,就是把两个树合并 以把B树合并到A树为例 如果A没有该节点,改成B的该节点返回 如果B没有该节点,直接返回 否则递归合并子树&#xff…

2021牛客OI赛前集训营-方格计数【计数,dp】

正题 题目链接:https://ac.nowcoder.com/acm/contest/20107/B 题目大意 给出一个whw\times hwh的网格图,然后要求在上面选出nnn个格点,使得它们在一条直线上且两两之间距离不小于ddd。 1≤T≤20,1≤w,h,d≤500,1≤n≤501\leq T\leq 20,1\leq w,h,d\leq…