官网:https://identityserver4.readthedocs.io/en/latest/quickstarts/2_interactive_aspnetcore.html
官网例子:https://github.com/IdentityServer/IdentityServer4/tree/main/samples/Quickstarts
is4,我的理解是,独立的用户认证授权框架,为多个不同系统,提供一个公共的认证授权服务,a系统,b系统,c系统都 在 is4服务器上“注册得有策略” ,其中密匙什么的,只有a、b、c系统与is4服务器是知道的,用户访问各人的系统时, 需要先到is4服务器去获得认证,获得了令牌后,带入头部,bearer认证,然后再去访问a b c的后端api。因为 a b c分别与is4之间是信任的,当 a的前端带带着头部认证进入a的后端api后,a系统后端就会验证这个头部是否是is4给的token,如果是伪造的就不行。当然应该不用每次都先要访问is4服务,肯定是可以设置token过期时间的,过期后,再去请求is4服务。其关键就在于,a b c 在 is4 上注册的认证策略,也不叫什么注册,就是互相通个气,几个关键文字只有a b c与is4服务器知道就行了,背后的加密算法,最后算出来的token,只有得到is4的一些关键信息之后才能解析成功。官网的例子里,没有在api端写密匙,而是给的一个is4服务的url地址,应该是api在验证token时,还去请求了这个url的;按我的感觉,直接写上is4上给出的密匙,验证token的时候,不再去访问那个url地址应该是可行的吧,就想JWT认证类似。
或者这个url地址是映射到某个在a服务器的文件的,如果文件存在,就不去访问is4服务器了,然后,token的认证就靠这个文件,依稀记得官网上是提了一下这个文件的。
来个官网的图,就更清楚了。

a b c 系统之间还能通过is4实现互相登陆,只需要其中一个系统中有注册的用户,比如a系统,在is4上获得了认证后,就可以在 b c系统上登陆了,b c 系统缺少的用户的信息可以通过token传送,实现的时候,就把is4上的用户身份信息保存在各自的系统。设计系统的时候,感觉可以把 a b c 系统 公用的用户信息设计到is4的服务器上。

jwt认证和is4 .net core 也有一套接口,jwt和is4分别实现了这样的接口,所以看.net core的代码 这两个东西代码都相似。

最后,我联想到 https协议的加密,网站管理人员在ca机构注册了,给你发个密匙,生成一个公共证书。也是靠个证书,和私匙完成加密的。我浏览器请求网址时,首次访问,会提示安装证书,安装后,访问你的网站,其内容就加密了,我服务器的私匙就可以解密这些信息,也只能是这个密匙能解密。

我对IdentityServer4的初步了解的更多相关文章

  1. 从壹开始 [ Id4 ] 之一║ 授权服务器 IdentityServer4 开篇讲&计划书

    前言 哈喽大家周四好!时间过的很快,现在已经是三月份了,我的 IdentityServer4 教程也拖了一定的时间了,正好最近有精力学新东西了,主要中间被小伙伴要求写一个管理后台,目前1.0已经上线( ...

  2. .net core 3.0 搭建 IdentityServer4 验证服务器

    叙述 最近在搞 IdentityServer4  API接口认证部分,由于之前没有接触过 IdentityServer4 于是在网上一顿搜搜搜,由于自己技术水平也有限,看了好几篇文章才搞懂,想通过博客 ...

  3. IdentityServer4系列 | 资源密码凭证模式

    一.前言 从上一篇关于客户端凭证模式中,我们通过创建一个认证授权访问服务,定义一个API和要访问它的客户端,客户端通过IdentityServer上请求访问令牌,并使用它来控制访问API.其中,我们也 ...

  4. IdentityServer4系列 | 快速搭建简易项目

    一 .前言 从上一篇关于 常见术语说明中,主要是对IdentityServer4的说明,以及其中涉及常见的术语的表述说明,包括对身份认证服务器.用户.客户端.资源以及各个令牌等进行对比区别说明. 而在 ...

  5. IdentityServer4 之Client Credentials走起来

    前言 API裸奔是绝对不允许滴,之前专门针对这块分享了jwt的解决方案(WebApi接口裸奔有风险):那如果是微服务,又怎么解决呢?每一个服务都加认证授权也可以解决问题,只是显得认证授权这块冗余,重复 ...

  6. IdentityServer4之Authorization Code(授权码)相对更安全

    前言 接着授权模式聊,这次说说Authorization Code(授权码)模式,熟悉的微博接入.微信接入.QQ接入都是这种方式(这里说的是oauth2.0的授权码模式),从用户体验上来看,交互方式和 ...

  7. 移动端之Android开发的几种方式的初步体验

    目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...

  8. IdentityServer4 使用OpenID Connect添加用户身份验证

    使用IdentityServer4 实现OpenID Connect服务端,添加用户身份验证.客户端调用,实现授权. IdentityServer4 目前已更新至1.0 版,在之前的文章中有所介绍.I ...

  9. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  10. Android自定义View初步

    经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...

随机推荐

  1. 使用Python-psycopg访问postgres、openGauss、MogDB

    摘要 Psycopg 是一种用于执行 SQL 语句的 PythonAPI,可以为 PostgreSQL.GaussDB 数据库提供统一访问接口,应用程序可基于它进行数据操作.Psycopg2 是对 l ...

  2. Redis Stack功能介绍及redis-om-dotnet使用示例

    为了简化开发人员对较新的 Redis 模块及其提供的功能的体验,同时简化支持其功能的文档和客户端.以帮助开发人员从开始使用 Redis 的那一刻起,就能充分提高工作效率.Redis Stack诞生了. ...

  3. BZOJ 4403序列统计

    假设存在一个满足条件的长度为i的不下降序列(显然是一定存在的)那么只需要从中选出i个数即可 (不必在意选出具体数的大小,可以把满足条件的序列写下来,选几个数感受一下). 但是$n \choose m ...

  4. 英语 one day

    前言 I do not know if it work,but just go. 内容 1.quote vt:摘要,引用 n:引语 He quote a passage from the presid ...

  5. 力扣35(java&python)-搜索插入位置(简单)

    题目: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使用时间复杂度为 O(log n) 的算法. 示例 1: 输入: ...

  6. Koordinator v0.7: 为任务调度领域注入新活力

    简介: 在这个版本中着重建设了机器学习.大数据场景需要的任务调度能力,例如 Coscheduling.ElasticQuota 和精细化的 GPU 共享调度能力.并在调度问题诊断分析方面得到了增强,重 ...

  7. 记一次 JMeter 压测 HTTPS 性能问题

    ​简介:在使用 JMeter 压测时,发现同一后端服务,在单机 500 并发下,HTTP 和 HTTPS 协议压测 RT 差距非常大.同时观测后端服务各监控指标水位都很低,因此怀疑性能瓶颈在 JMet ...

  8. 技术干货 | 深度解构 Android 应用面临紧急发版时的救星方案:mPaaS 热修复——DexPatch

    简介: 关于 Android 热修复方案--DexPatch 的介绍与使用说明 方案介绍 为了解决 Native 模块上线后的问题,mPaaS 提供了热修复功能,实现不发布客户端 apk 场景下的热修 ...

  9. 带你体验云原生场景下 Serverless 应用编程模型

    ​简介: 阿里云 Knative 基于 ASK 之上,在完全兼容社区 Knaitve 的同时对 FC.ECI 工作负载进行统一应用编排,支持事件驱动.自动弹性,为您提供统一的 Serverless 应 ...

  10. [Linux] IP 地址配置, 网络地址配置文件

    # 查看与配置网络状态命令 $ ifconfig # 临时设置 eth0 网卡的 IP 地址与子网掩码,netmask 可以省略 $ ifconfig eth0 192.168.0.100 netma ...