首页 > 其他分享 >keycloak~token配置相关说明

keycloak~token配置相关说明

时间:2024-10-23 08:50:27浏览次数:1  
标签:配置 用户 会话 token Session 设置 keycloak 空闲 客户端

会话有效期

在 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选项,如图

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

标签:配置,用户,会话,token,Session,设置,keycloak,空闲,客户端
From: https://www.cnblogs.com/lori/p/18494333

相关文章

  • 通过命令行修改nacos配置文件
    通过命令行修改nacos配置文件1、介绍nacos-cli是一个命令行工具,用来代替nacos的图形界面操作。下载地址:GitHub-szpinc/nacos-cli:用终端命令行的方式操作nacos2、安装进入页面之后,下载对应的文件,上传到服务器上,授予执行权限,放到Linux执行文件bin目录,/usr/local/bin和/u......
  • 前后端实现双Token无感刷新用户认证
    前后端实现双Token无感刷新用户认证本文记录了使用双Token机制实现用户认证的具体步骤,前端使用的Vue,后端使用SpringSecurity和JWT双Token分别指的是AccessToken和RefreshTokenAccessToken:每次请求需要携带AccessToken访问后端数据,有效期短,减少AccessToken泄露带来的风险Refres......
  • Vite配置打包分类文件
    概述vite默认的打包输出目录是dist/assets/目录,所有的js、css、img等资源都会默认输出到该目录下,文件名默认是[name].[hash:8].[filename]。对于小型项目来说,采用默认配置无伤大雅,但是如果工程比较大,就可以考虑将打包后的文件分类存放在不同目录下。具体配置vite是基于......
  • 【深入浅出玩转FPGA】之FPGA配置模式
    FPGA配置模式XilinxUltraScaleFPGA有7种配置模式,由模式输入引脚M[2:0]决定。主串配置模式从串配置模式主并配置模式(8位或16位)从并配置模式(8位、16位或32位)主SPI配置模式主BPI配置模式JTAG/边界扫描配置模式1、主,即配置时钟CCLK由FPGA提供;从,即配置时钟CCLK由外部控制器提......
  • 保姆级 | MySQL的安装配置教程(非常详细)
    一、下载Mysql从官网下载MySQL,这里我选用的是Mysql8.0.34版本   二、安装Mysql下载完成后直接双击进行安装,打开后的页面如下所示:“DeveloperDefault”是开发者默认“Serveronly”仅作为服务器安装“Clientonly”仅作为客户端安装“Full”是完整安装“Custom”......
  • 两句话讲清楚wsl+docker+python开发环境配置
    两句话讲清楚wsl+docker+python开发环境配置目录两句话讲清楚wsl+docker+python开发环境配置写在前面解决方案写在前面背景:win10下wsl+docker整好了之后,还要做什么,windows下载的东西怎么到docker容器里面?win->wsl->容器怎么传好使?准备先配置:wsl+docker,教程我独立出来了doc......
  • Pycharm 的常用配置及快捷键,看这一篇就够了!
    在使用Pycharm编写代码时,掌握一些有必要的配置和快捷键操作,可以让我们的工作少走很多弯路~ 本篇文章我们会讲到:Pycharm设置主题设置菜单栏&代码字体、大小设置背景图修改注释颜色设置代码模版pycharm如何汉化pycharm常用快捷键一、Pycharm设置主题1、点击左上角的Fil......
  • Linux系统上使用nmcli命令配置各种网络
    目录一、配置NetworkManager接管网络(选)安装Network-Manager并启动netplan管理网络的系统ifupdown管理网络的系统二、nmcli的相关配置(后置参数均可缩写)有线网络配置使用nmcli添加一个网卡并配置静态ip地址激活/关闭网卡使用nmcli修改一个网卡的地址使用nmcli添加一个网卡......
  • 关于spring.cloud.nacos.config.import配置不生效问题
    从SpringCloudAlibaba2.2.0.RELEASE版本开始,spring.cloud.nacos.config.import被废弃,取而代之的是spring.cloud.nacos.config.extension-configs。spring:application:name:gateway-servicecloud:nacos:discovery:server-addr:127.0.0.......
  • docker配置镜像源
    docker镜像源,亲测有效,无效过来打我!编辑/etc/docker/daemon.json文件命令:vi/etc/docker/daemon.json内容:{"registry-mirrors":["https://docker.m.daocloud.io","https://noohub.ru","https://huecker.io","https......