会话有效期

在 Keycloak 中,"SSO Session Idle" 和 "SSO Session Max" 是用于配置单点登录(SSO)会话的两个参数。这两个参数影响用户在系统中的会话过期和最大有效时间。

  1. SSO Session Idle(单点登录会话空闲时间):

    • 定义: 表示用户在系统中没有活动的时间阈值。如果用户在这段时间内没有与系统进行交互,那么他们的单点登录会话就被视为处于空闲状态。

    • 实际意义: 当用户登录后,在一段时间内没有进行任何操作,系统会认为用户不再活跃,这时候可以选择在一定的时间后自动注销用户,以提高安全性。例如,设置为 30 分钟,如果用户在 30 分钟内没有任何操作,他们的会话将被认为是空闲的,可以选择要求用户重新验证身份。

  2. SSO Session Max(单点登录会话最大时间):

    • 定义: 表示用户单点登录会话的最大有效时间。即使用户一直在系统中活跃,当达到此时间阈值后,他们的会话也会被强制注销。

    • 实际意义: 即使用户一直在系统中活跃,为了安全和资源管理的目的,可以设置一个最大时间,超过这个时间后,用户将被强制重新登录,以确保他们的身份验证状态是最新的。例如,设置为 8 小时,用户的会话将在 8 小时后过期,需要重新登录。

这两个参数通常与安全性和用户体验的平衡相关。设置得太短可能导致用户频繁需要重新登录,而设置得太长可能增加安全风险。具体的设置应该根据你的应用程序的安全需求和用户行为来确定。

Client Session有效期

"Client Session Idle" 和 "Client Session Max" 是 Keycloak 中用于配置客户端会话的两个参数。这两个参数影响与客户端相关的会话过期和最大有效时间。

  1. Client Session Idle(客户端会话空闲时间):

    • 定义: 表示用户与特定客户端之间没有活动的时间阈值。如果用户在这段时间内没有与特定客户端进行交互,那么与该客户端关联的会话就被视为处于空闲状态。

    • 实际意义: 当用户与特定客户端建立了会话后,在一段时间内没有与该客户端进行任何操作,系统会认为用户与该客户端的会话是空闲的。这可以用于自动注销与客户端的会话,以提高安全性。

  2. Client Session Max(客户端会话最大时间):

    • 定义: 表示用户与特定客户端的会话的最大有效时间。即使用户一直在与特定客户端进行交互,当达到此时间阈值后,与该客户端关联的会话也会被强制注销。

    • 实际意义: 即使用户与特定客户端一直在活跃,为了安全和资源管理的目的,可以设置一个最大时间,超过这个时间后,与该客户端关联的会话将被强制结束,用户可能需要重新进行身份验证。

这两个参数通常与客户端相关的会话管理和安全性相关。设置得太短可能导致用户频繁需要重新进行身份验证,而设置得太长可能增加安全风险。具体的设置应该根据你的应用程序的安全需求和用户行为来确定。

会话有效期谁小用谁

在 Keycloak 中,会话的有效期确实是由这些参数中的最小值决定的。换句话说,如果设置了 "SSO Session Idle"、"SSO Session Max"、"Client Session Idle" 和 "Client Session Max",则会话将在这些参数中的最小值所定义的时间段内过期。

这种行为是为了确保会话的有效期在所有相关配置中都被严格限制,以提供更加精确的控制。这也意味着无论是整体的单点登录会话有效期还是与特定客户端关联的会话有效期,都将受到最小值的限制。

空闲会话

空闲时间这块,keycloak14.0.0有些bug,这块我进行了源码调整,当session max和session idle不同时,用户在session idle时间内不操作,用户会话也会超时。

在Keycloak中,有四个与空闲会话(Idle Session)相关的设置参数。它们的作用和关系如下:

  1. Offline Session Idle(领域设置):这是Keycloak的领域设置中的一个参数,用于定义空闲会话的超时时间。当用户在一段时间内没有与Keycloak进行任何交互时,会话会被视为处于空闲状态。默认情况下,该参数设置为30天。

  2. Offline Session Max Limited(领域设置):这是Keycloak的领域设置中的一个参数,用于定义空闲会话的最大持续时间。该参数定义了会话的最长持续时间,从会话开始到会话终止的时间段,以秒为单位。超过这个时间段后,会话将被标记为过期,并将被销毁。默认情况下,该参数也设置为30天。

  3. Offline Session Max(领域设置):这是Keycloak的客户端设置中的一个参数,用于定义特定客户端的空闲会话的最大持续时间。每个客户端可以具有自己的空闲会话最大持续时间,以使具有不同需求的客户端具有不同的会话时间。默认情况下,它继承自领域的 "Offline Session Max Limited" 值。

  4. Client Offline Session Idle(客户端设置):这是Keycloak的客户端设置中的一个参数,用于定义特定客户端的空闲会话的超时时间。每个客户端可以具有自己的空闲会话超时时间,以使具有不同需求的客户端具有不同的会话时间。默认情况下,它继承自领域的 "Offline Session Idle" 值。

这些参数共同用于控制空闲会话的超时和最大持续时间。"Offline Session Idle" 和 "Client Offline Session Idle" 确定了用户在没有与Keycloak进行任何交互时,会话被认为是空闲的时间。而 "Offline Session Max Limited" 和 "Offline Session Max" 确定了会话可以持续的最长时间。如果会话超过这个时间段,它将被销毁。

请注意,领域设置中的参数适用于整个领域(realm),而客户端设置中的参数适用于特定的客户端。通过为每个客户端设置不同的值,您可以针对不同的客户端应用程序调整会话时间。

登录超时

  • 如果用户在登录页,长时间停留(达到了后台配置的“登录超时”时间),不进行登录提交操作,会出现登录超时,请重新开始登录的提示,这时,页面自动刷新,用户重新提交登录请求即可。
  • 登录超时配置:领域设置---tokens选项,如图

对于一种开源框架和产品的学习,我们主要还是实践中去总结它,只有在实践中才能发现它的问题及那些“不为你知”的功能。

keycloak~token配置相关说明的更多相关文章

  1. Hibernate 系列 04 - Hibernate 配置相关的类

    引导目录: Hibernate 系列教程 目录 前言: 通过上一篇的增删改查小练习之后,咱们大概已经掌握了Hibernate的基本用法. 我们发现,在调用Hibernate API的过程中,虽然Hib ...

  2. linux网络配置相关命令、虚拟网络接口eth0:0

    网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...

  3. GBrowse配置相关资料

    GBrowse配置相关资料(形状.颜色.配置.gff3) http://gmod.org/wiki/Glyphs_and_Glyph_Optionshttp://gmod.org/wiki/GBrow ...

  4. memcached的基本命令(安装、卸载、启动、配置相关)

    memcached的基本命令(安装.卸载.启动.配置相关):-p 监听的端口 -l 连接的IP地址, 默认是本机  -d start 启动memcached服务 -d restart 重起memcac ...

  5. linux网络配置相关文件

    网络接口(interface)是网络硬件设备在操作系统中的表示方法,比如网卡在Linux操作系统中用ethX,是由0开始的正整数,比如eth0.eth1...... ethX.而普通猫和ADSL的接口 ...

  6. Tomcat 参数配置相关

    Tomcat参数配置相关 by:授客 QQ:1033553122 目的: 对Tomcat配置的点滴学习总结,主要目的在于分析Tomcat与性能相关的一些参数设置,以便性能调优时选择最优配置   环境: ...

  7. Nginx 参数配置相关

    Nginx参数配置相关 by:授客 QQ:1033553122 目的: 对Nginx配置的点滴学习总结,主要目的在于分析Nginx与性能相关的一些参数设置,以便性能调优时选择最优配置   环境: $ ...

  8. 【树莓派】服务配置相关3:基于Ubuntu Server的服务配置

    该文接续之前写过的两篇: [树莓派]服务配置相关 [树莓派]服务配置相关2:基于RPi Desktop的服务配置 这是我个人用来进行树莓派盒子安装配置的脚本,对于外部其他博友,可以部分参考,但不需要逐 ...

  9. 【树莓派】服务配置相关2:基于RPi Desktop的服务配置

    该文接续之前写过的一篇:[树莓派]服务配置相关. 这是我个人用来进行树莓派盒子安装配置的脚本,对于外部其他博友,可以部分参考,但不需要逐个引用. 现在有一定更新,部分按如下脚本来操作: step1: ...

  10. vue+element-ui路由配置相关

    vue+element-ui路由配置相关 转自:http://www.cnblogs.com/MonaSong/p/6703804.html vue-router2中说明了,子路由前面可以不加'/', ...

随机推荐

  1. MySQL8服务无法启动,服务没有报告任何错误

    MySQL8服务无法启动,服务没有报告任何错误 错误信息: 免安装版mysql-8.0.15-winx64.zip 按照教程来安装,解压,增加my.ini文件,修改文件内部的地址信息,配置环境变量pa ...

  2. 02-canvas注意点

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  3. Layui Upload 多文件上传访问多次接口问题解决

    Layui 多文件上传访问多次接口 点我访问 LayUI框架官网 话不多数直接看源码 文件地址: layui/modules/upload.js // 通过each循环文件列表 layui.each( ...

  4. RabbitMq高级特性之死信队列 通俗易懂 超详细 【内含案例】

    RabbitMq高级特性之死信队列 又称 死信交换机 DLX 介绍 当消息成为 Dead message 后,会重新发送到另一个交换机,这个交换机就是 DLX(死信交换机) 消息成为死信的情况公有三种 ...

  5. Linux中级——“驱动” 控制硬件必须学会的底层知识

    驱动认知 1. 什么是驱动 驱动就是对底层硬件设备的操作进行封装,并向上层提供函数接口. 设备分类: linux系统将设备分为3类:字符设备.块设备.网络设备. 字符设备:指只能一个字节一个字节读写的 ...

  6. 【CMake系列】09-cmake install

    本节我们来学习,cmake的安装,将我们构建的目标安装到指定位置,为了模拟一般情况,实现了 可执行文件.静态库.动态库的安装,以及一般的 file 安装.代码的安装 本专栏的实践代码全部放在 gith ...

  7. 使用 preloadRouteComponents 提升 Nuxt 应用的性能

    title: 使用 preloadRouteComponents 提升 Nuxt 应用的性能 date: 2024/8/19 updated: 2024/8/19 author: cmdragon e ...

  8. 工作常用SQL

    工作常用SQL Excel生成SQL 这个好用 ="insert into t_gk_mapping(id,gk_project_name,gk_project_code,main_proj ...

  9. ubuntu 安装psycopg2包

    psycopg2 库是 python 用来操作 postgreSQL 数据库的第三方库. 执行:pip3 install psycopg2==2.8.4 有可能会报错: Collecting psyc ...

  10. 【2019年第一篇总结】之Mac安装Python系列软件目录汇总

    1.第一步,安装Python环境 <[Mac + Python]苹果系统之安装Python3.6.x环境> 2.安装PyCharm并激活 <[转载][Pycharm编辑器破解步骤]之 ...