keycloak~关于session idle和session max的解释

这篇具有很好参考价值的文章主要介绍了keycloak~关于session idle和session max的解释。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

keycloak可以帮助我们实现这个功能:用户token每5分钟失效一次,失效后通过refresh_token来换新的token,而refresh_token每30天失效一次,但如果用户3天都没有任何操作(就是没有用refresh_token去换新的token),那么3天后也让refresh_token失效,用户需要从新去登录。

先说refresh_token过期时间的配置

领域设置->Tokens中,有四个选项用来控制refresh_token的超时时间

  • SSO Session Idle
  • SSO Session Max
  • Client Session Idle
  • Client Session Max

上面4个选项,Max Session和Client Session哪个大,refresh_token的过期时间就用哪个,如下配置中,它的过期时间就是30天;

keycloak~关于session idle和session max的解释

当refresh_token到期之后 ,session就失效了,而它并不会立即清楚,它会交给keycloak进行维护,而用户再进行刷新token时,会提示token是不活动的,在keycloak后台会话的客户端也被清空,表示令牌过期了,如下面两张图:

keycloak~关于session idle和session max的解释

keycloak~关于session idle和session max的解释

再说Session Idle和Session Max的作用

会话的空闲时间(Idle),是指在多长时间之内没有使用refresh_token进行刷新,这个会话(session_state)就过期,无法再直接用refresh_token去换新的token了,这时用户就需要重新回到登录页,完成新的认证;这主要针对长时间不操作的用户,kc需要让它重新完成用户名密码的确认。

注意:如何关注一下“记住我”这个功能,因为如果开启“记住我”功能之后,你的会话空闲时间等于“记住我空闲时间”,你的”sso session idle”配置将失效,如果记住我配置了最大时间和空闲时间,那么token的生成和校验都将使用记住我的时间,如图keycloak14.0.0.-services里AuthenticationManage.isSessionValid的源码。

keycloak~关于session idle和session max的解释

如下图配置了access_token有效期2分钟,refresh_token最长30天,会话空闲为7天;配置的作用为:用户每2分钟access_token会过期,然后用户通过refresh_token去换新的access_token,如果用户7天没有换token,这个会话就过期,如果会话已经产生了30天,则会话也过期,用户就会返回登录页,重新认证。

后台配置如下:
keycloak~关于session idle和session max的解释

最后,还需要修改源码:org.keycloak.protocol.oidc.TokenManager.refreshAccessToken()方法中的代码,将verifyRefreshToken方法参数中的checkExpiration改成false,来满足我们的要求,否则,你的session idle不起作用,因为refresh_token的超时时间用的是它,而开启这个checkExpiration之后,当session idle到期后,上面的isSessionValid都走不到,所以我们可以把它改成false,让会话过期的判断留给isSessionValid方法来做。

keycloak~关于session idle和session max的解释

有时,我们在google上找不到答案;有时,我们在chatgpt上也找不到答案;这时,不防看看它的源码,从源码中找答案!文章来源地址https://www.toymoban.com/news/detail-747513.html

到了这里,关于keycloak~关于session idle和session max的解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 练习实例希望这些例子可以帮助您

    以下是几个 Python 练习实例: 1. 打印 \\\"Hello, World!\\\"  ```python print(\\\"Hello, World!\\\") ``` 2. 计算两个数的和 ```python num1 = int(input(\\\"输入第一个数: \\\")) num2 = int(input(\\\"输入第二个数: \\\")) sum = num1 + num2 print(\\\"两个数的和为: \\\", sum) ``` 3. 判断一个数是奇数还是偶数 ```python num = int(input(\\\"输入一个整

    2024年02月02日
    浏览(35)
  • Copilot 可以帮助开发者解决哪些常见问题?

    GitHub Copilot是一个基于人工智能的代码自动生成工具,它可以通过学习其他开源项目和开发人员的代码,帮助程序开发人员快速编写新的源代码片段和算法。在使用 Copilot时,开发人员只需提供一些简单的信息和说明,Copilot就能为开发者生成高效和可读性较高的代码。那么

    2024年02月11日
    浏览(46)
  • 生产报工管理系统可以帮助企业解决哪些问题?

    阅读本文您将了解:1.企业在生产报工的痛点;2.生产报工管理系统有哪些功能;3.生产报工管理系统的价值。 随着时代的变迁和信息化技术的发展,市场对制造企业在产品价格、质量以及生产成本等方面提出了更高的要求,车间生产也逐渐向着实时化、透明化和可视化方向发

    2023年04月19日
    浏览(51)
  • 关键词采集工具可以帮助我们做那些方面的工作

    针对搜索引擎的采集工具可以帮助我们做那些方面的工作,至少从10个工作场景说明,并列举详细的使用场景 Msray-plus,是一款企业级综合性爬虫/采集软件。 支持亿级数据存储、导入、重复判断等。无需使用复杂的命令,提供本地WEB管理后台对软件进行相关操作,功能

    2023年04月15日
    浏览(44)
  • 工业企业能源管理平台,可以帮助企业解决哪些方面的能源问题?

    随着全球工业化进程的加快,工业企业在生产经营过程中消耗的能源也越来越庞大。能源成本的上升和环境保护的压力使得工业企业对能源管理的重要性有了深刻的认识。为了提高能源利用效率、降低能源消耗、减少环境污染,工业企业在能源管理方面迫切需要一套规范的能

    2024年01月17日
    浏览(48)
  • 服装加工ERP软件包含哪些模块?可以帮助企业处理什么难题

    服装的生产加工管理涉及分色分码、材料选购、车间算料、成本核算、接单报价、图纸设计、产品开发、库存盘点等诸多业务环节,而如何处理数据共享和流程之间的协作问题是很多服装加工企业面对的经营难题。 想要在激烈的市场竞争当中建立差异化的竞争优势,提升管理

    2024年01月22日
    浏览(45)
  • 还没搞懂重写和重载吗?这篇文章可以帮助你

    首先,会大致介绍一下什么叫做向上转型,方便后续的理解 提示:以下是本篇文章正文内容,下面案例可供参考 向上转型是Java的一个多态性的表现形式。指的是一个子类的对象赋值给父类类型的引用变量。换句话说,它是将一个对象转换为它的父类类型。 在上述示例中,

    2024年02月06日
    浏览(53)
  • 为什么删除Windows 11上的Bloatware可以帮助加快你的电脑速度

    如果你感觉你的电脑迟钝,彻底清除软件会有所帮助,而且这个过程对Windows用户来说越来越容易。 微软正在使删除以前难以删除的其他预装Windows应用程序成为可能。专家表示,这项新功能可能会改变用户的游戏规则。 科技公司Infatica的主管Vladimir Fomenko在接受Lifewire电子邮件

    2024年02月10日
    浏览(58)
  • 3ds max插件CG MAGIC中的室外功能可以高效出图吗?

    使用3ds Max高效出图秘诀有没有什么秘诀呢?如何做到快速出图呢? 3ds max插件CG MAGIC中的室外功能可以高效出图吗? CG MAGIC 是一款基于3DS max深入开发的智能辅助设计插件。 自从 CG Magic 专业版上线之后,小伙伴们对新功能诀窍掌握的还不是很好。 一起来快速浏览一下【室外、

    2024年02月09日
    浏览(42)
  • 2.关于 uiautomation.uiautomation 模块中 ListControl (列表控件)类的帮助信息

    class ListControl(Control)类。列表控件(控件) | ListControl(searchFromControl: uiautomation.uiautomation.Control = None, 列表控件(从控件搜索:UI自动化。UI自动化。控件=空值 searchDepth: int = 4294967295, searchInterval: float = 0.5, foundIndex: int = 1, 搜索深度:整数 = 4294967295,搜索间隔:浮点数 = 0.5,找到

    2024年01月19日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包