当前位置: 首页 > news >正文

百度百科网站开发wordpress 原创

百度百科网站开发,wordpress 原创,网站开发公司企业,如何做好阿里巴巴企业网站建设上一篇我介绍了JWT的生成验证及流程内容#xff0c;相信大家也对JWT非常熟悉了#xff0c;今天将从一个小众的需求出发#xff0c;介绍如何强制令牌过期的思路和实现过程。.netcore项目实战交流群#xff08;637326624#xff09;#xff0c;有兴趣的朋友可以在群里交流讨… 上一篇我介绍了JWT的生成验证及流程内容相信大家也对JWT非常熟悉了今天将从一个小众的需求出发介绍如何强制令牌过期的思路和实现过程。.netcore项目实战交流群637326624有兴趣的朋友可以在群里交流讨论。一、前言众所周知IdentityServer4 默认支持两种类型的 Token一种是 Reference Token一种是 JWT Token 。前者的特点是 Token 的有效与否是由 Token 颁发服务集中化控制的颁发的时候会持久化 Token然后每次验证都需要将 Token 传递到颁发服务进行验证是一种中心化的验证方式。JWT Token的特点与前者相反每个资源服务不需要每次都要都去颁发服务进行验证 Token 的有效性验证上一篇也介绍了该 Token 由三部分组成其中最后一部分包含了一个签名是在颁发的时候采用非对称加密算法进行数据的签名保证了 Token 的不可篡改性校验时与颁发服务的交互仅仅是获取公钥用于验证签名且该公钥获取以后可以自己缓存持续使用不用再去交互获得除非数字证书发生变化。二、Reference Token的用法上一篇已经介绍了JWT Token的整个生成过程为了演示强制过期策略这里需要了解下Reference Token是如何生成和存储的这样可以帮助掌握IdentityServer4所有的工作方式。1、新增测试客户端由于我们已有数据库为了方便演示我直接使用SQL脚本新增。这里添加了认证类型为Reference Token客户端为clientref并分配了客户端授权和能访问的scope然后我们使用PostMan测试下客户端。如上图所示可以正确的返回access_token且有标记的过期时间。2、如何校验token的有效性IdentityServer4给已经提供了Token的校验地址http://xxxxxx/connect/introspect可以通过访问此地址来校验Token的有效性使用前需要了解传输的参数和校验方式。在授权篇开始时我介绍了IdentityServer4的源码剖析相信都掌握了看源码的方式这里就不详细介绍了。核心代码为IntrospectionEndpoint,标注出校验的核心代码,用到的几个校验方式已经注释出来了。有了上面的校验代码就可以很容易掌握使用的参数和校验的方式现在我们就分别演示JWT Token和Reference token两个校验方式及返回的值。首先需要新增资源端的授权记录因为校验时需要我们就以mpc_gateway为例新增授权记录为了方便演示直接使用SQL语句。首先我们测试刚才使用Reference token生成的access_token参数如下图所示。查看是否校验成功从返回的状态码和active结果判断如果为true校验成功如果为false或者401校验失败。我们直接从数据库里删除刚才授权的记录然后再次提交查看结果,返回结果校验失败。然后我们校验下Jwt Token同样的方式先生成jwt token,然后进行校验结果如下图所示。可以得到预期结果。三、强制过期的方式1、简易黑名单模式在每次有Token请求时资源服务器对请求的Token进行校验在校验有效性校验通过后再在黑名单里校验是否强制过期如果存在黑名单里返回授权过期提醒。资源服务器提示Token无效。注意由于每次请求都会校验Token的有效性因此黑名单最好使用比如Redis缓存进行保存。实现方式此种方式只需要重写Token验证方式即可实现。优点实现简单改造少。缺点1、不好维护黑名单列表2、对认证服务器请求压力太大2、策略黑名单模式建议黑名单有一个最大的弊端是每次请求都需要对服务器进行访问会对服务器端造成很大的请求压力而实际请求数据中99%都是正常访问对于可疑的请求我们才需要进行服务器端验证所以我们要在客户端校验出可疑的请求再提交到服务器校验可以在Claim里增加客户端IP信息当请求的客户端IP和Token里的客户端IP不一致时我们标记为可疑Token这时候再发起Token校验请求校验Token是否过期后续流程和简易黑名单模式完成一致。实现方式此种方式需要增加Token生成的Claim增加自定义的ip的Claim字段然后再重写验证方式。优点可以有效的减少服务器端压力缺点不好维护黑名单列表3、强化白名单模式通常不管使用客户端、密码、混合模式等方式登录都可以获取到有效的Token这样会造成签发的不同Token可以重复使用且很难把这些历史的Token手工加入黑名单里防止被其他人利用。那如何保证一个客户端同一时间点只有一个有效Token呢我们只需要把最新的Token加入白名单然后验证时直接验证白名单未命中白名单校验失败。校验时使用策略黑名单模式满足条件再请求验证为了减轻认证服务器的压力可以根据需求在本地缓存一定时间比如10分钟。实现方式此种方式需要重写Token生成方式重写自定义验证方式。优点服务器端请求不频繁验证块自动管理黑名单。缺点实现起来比较改造的东西较多综上分析后为了网关的功能全面和性能建议采用强化白名单模式来实现强制过期策略。四、强制过期的实现1.增加白名单功能为了增加强制过期功能我们需要在配置文件里标记是否开启此功能默认设置为不开启。然后重写Token生成策略增加白名单功能并使用Redis存储白名单。白名单的存储的Key格式为clientIdsubamr详细实现代码如下。然后定一个通用缓存方法默认使用Redis实现。然后重新注入下ITokenResponseGenerator实现。现在我们来测试下生成Token查看Redis里是否生成了白名单Reference Token生成客户端模式生成密码模式生成从结果中可以看出来无论那种认证方式都可以生成白名单且只保留最新的报名单记录。2.改造校验接口来适配白名单校验前面介绍了认证原理后实现校验非常简单只需要重写下IIntrospectionRequestValidator接口即可增加白名单校验策略详细实现代码如下。然后把接口重新注入即可实现白名单的校验功能。只要几句代码就完成了功能校验现在可以使用PostMan测试白名单功能。首先使用刚生成的Token测试可以正确的返回结果。紧接着我从新生成Token然后再次请求结果如下图所示。发现校验失败提示Token已经失效和我们预期的结果完全一致。现在获取的Token只有最新的是白名单其他的有效信息自动加入认定为黑名单如果想要强制token失效只要删除或修改Redis值即可。有了这个认证结果现在只需要在认证策略里增加合理的校验规则即可比如5分钟请求一次验证或者使用ip策略发起校验等这里就比较简单了就不一一实现了如果在使用中遇到问题可以联系我。五、总结与思考本篇我介绍了IdentityServer4里Token认证的接口及实现过程然后介绍强制有效Token过期的实现思路并使用了白名单模式实现了强制过期策略。但是这种实现方式不一定是非常合理的实现方式也希望有更好实现的朋友批评指正并告知本人。实际生产环境中如果使用JWT Token建议还是使用Token颁发的过期策略来强制Token过期比如对安全要求较高的设置几分钟或者几十分钟过期等避免Token泄漏造成的安全问题。至于单机登录其实只要开启强制过期策略就基本实现了因为只要最新的登录会自动把之前的登录Token强制失效如果再配合signalr强制下线即可。项目源代码地址https://github.com/jinyancao/Czar.IdentityServer4
http://www.zqtcl.cn/news/639101/

相关文章:

  • 定制型网站建设wordpress md风格
  • 网站建设与推广的实训报告万网会员中心登录入口
  • 做网站如何推销电子商务类型的网站
  • 部署个人网站经典广告推广词
  • 海口模板建站定制南宁品牌网站设计公司
  • 江西网站设计方案网站通栏广告代码
  • 外包网站建设公司网站建设公司的销售好做吗
  • lol做任务领头像网站营销型网站重要特点是?
  • 设计师35岁后的出路嘉兴做网站优化的公司
  • 网站首页包含的内容网站网站注册
  • 企业网站改版建议北京市在建工程项目查询
  • 广州通和通信建设有限公司网站myeclipse怎么做网页
  • 最好的做网站公司有哪些泰安人才网官网登录
  • 怎么用wordpress修改网站源码辽宁省营商环境建设局网站
  • 做网站数据库怎么做wordpress video主题
  • 田园综合体建设网站梧州网站建设有哪些
  • 公司做网站的流程茂名网站建设公司
  • 徐州专业网站建设公司wordpress tag找不到
  • 网站互动推广织梦网站主页代码在后台怎么改
  • 福永自适应网站建设微信小程序功能开发
  • 制作一个动态企业网站狠狠做最新网站
  • 手机建立一个免费网站网页设计师培训方法
  • 广州工信部网站查询wordpress mysql类
  • 销售网站内容设计书籍管理网站建设需求文档
  • 韩国网站如何切换中文域名如何备案教程
  • 网站维护的基本概念二维码生成器使用方法
  • 公司网站建设模块简介搭建自己的网站需要什么
  • 想做个网站怎么做给国外网站做流量
  • 长春建站培训班免备案虚拟空间
  • 做面包的公司网站alexa世界排名查询