keycloak介绍:docker版本使用示例与用户登录超时时间设置

28 篇文章 2 订阅
9 篇文章 0 订阅

keycloak介绍

  • Keycloak是一款由Red Hat开源社区开发的开放源代码的身份和访问管理解决方案,它提供了安全的单点登录(SSO)、多因素身份验证、社交登录和基于角色的访问控制等功能
  • Keycloak基于OAuth 2.0OpenID Connect协议,并支持SAML 2.0,可与多种身份验证和授权方案集成,如LDAPActive Directory、数据库等
  • Keycloak提供了RESTful API,可与其他应用程序集成,以实现强大的身份验证和访问控制功能
  • Keycloak还提供了灵活的自定义主题和登录表单,以便根据特定的品牌和样式要求进行定制化。它还提供了分布式架构和高可用性,可适应各种规模的企业级应用程序。
  • 由于其丰富的功能和灵活的可扩展性,Keycloak已成为开源社区中最受欢迎的身份和访问管理解决方案之一

keycloak的docker版本安装使用

  • 我们的平台项目使用的是Spring Cloud微服务架构,权限验证选择的就是keycloak
  • keycloak使用很方便,我们可以下载适合自己系统的Keycloak安装包并解压,然后启动Keycloak服务器即可
  • 也可以使用docker版本部署启动,我们采用的就是这种方式
  • 如果已有镜像可以直接docker run命令启动keycloak;或者有镜像tar压缩包,可以docker load装载进来再使用
  • 如果没有,也没关系,我们可以很方便的从互联网获取
  • 使用docker search keycloak搜索相关镜像,如下图所示,然后直接用第一个
    在这里插入图片描述
  • 使用docker pull jboss/keycloak下载镜像,默认最新版本,也可以指定版本号
    在这里插入图片描述
  • 现在就可以docker run或者使用docker-compose启用服务了,下面给出一个docker-compose配置
  keycloak:
    image: jboss/keycloak:16.1.0 
    container_name: keycloak
    command:
      [
        '-b',
        '0.0.0.0',
        '-Dkeycloak.migration.action=import',
        '-Dkeycloak.migration.provider=dir',
        '-Dkeycloak.migration.dir=/opt/jboss/keycloak/realm-config',
        '-Dkeycloak.migration.strategy=IGNORE_EXISTING',
        '-Djboss.socket.binding.port-offset=1000',
        '-Dkeycloak.profile.feature.upload_scripts=enabled',
      ]
    volumes:
      - /etc/localtime:/etc/localtime
    depends_on:
      - postgresql
    environment:
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=admin
      - DB_VENDOR=postgres
      - DB_ADDR=postgresql:5432
      - DB_DATABASE=keycloak
      - DB_USER=postgres
      - DB_PASSWORD=xxxxxxx
      - TZ=Asia/Shanghai
    ports:
      - 9080:9080
    restart: always
  • keycloak服务启动起来后,我们的应用程序可以加上相关配置,后面的认证权限管理,就走keycloak

操作界面

  • keycloak作为一款成熟的身份认证解决方案,它自带一套操作界面,而且操作起来也很简单
  • 使用ip:9080 可以访问keycloak操作界面,登录后可进行操作,配置样式、操作时间等
    在这里插入图片描述
  • 登录后的界面是这样的
    在这里插入图片描述

超时时间设置

  • 登录超时时间是我们平台系统需要关注的一个指标,这个牵涉到信息安全问题
  • 超时时间设置,我们可以根据需要自定义设置。如果不自定义设置,使用默认超时时间也是可以的,keycloak的默认超时时间也比较合理
  • 对于自定义超时时间设置,我们主要关注两个指标,SSO会话空闲时间SSO会话最长时间
  • SSO会话空闲时间(ssoSessionIdleTimeout):设置会话在过期之前可以空闲的时间长度,当会话过期时 Token 和浏览器会话都会被设置为无效 (保活,操作则继续延迟有效期,默认半小时,如果半小时不操作,则会失效,需要重新登录)
  • SSO会话最长时间(ssoSessionMaxLife):会话的最大时间长度,当会话过期时 Token 和浏览器会话都会被设置为无效(最长时间,登录后允许的最长时间,默认10小时,超出后token失效,需要重新登录)
  • 修改这两个参数,就可以控制登录时间
    在这里插入图片描述
  • 这个设置,我们可以直接在keycloak自带的管理界面上操作,选择Tokens选项卡,就可以看到这2个选项,设置保存即可
  • 亲测有效,有需要的可以试一试
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
设置用户登录超时时间可以通过以下步骤来实现: 1. 在登录系统中使用JavaScript编写代码来监测用户的活动。可以使用定时器来定期检查用户的最后活动时间,比如鼠标移动事件、键盘按键事件或者页面滚动事件等。如果用户在一定时间内没有进行任何活动,就认为用户已经超时。 2. 一旦检测到用户超时,可以触发自动退出登录的操作。这可以通过调用退出登录的接口或者执行一些清理操作来实现。 3. 在后端服务器中,可以设置会话过期时间。会话过期时间是指用户在一段时间内没有活动时会话自动失效的时间。可以在服务器端的配置文件或者代码中设置会话过期时间,比如使用Keycloakdocker版本,可以在操作界面中设置超时时间。 引用中提到了Keycloakdocker版本可以设置超时时间,可以参考相关的文档或者操作界面来进行设置。 另外,还可以在负载均衡器中设置TCP连接的超时时间,比如在弹性负载均衡中,可以设置创建TCP连接的超时时间为300s。如果超过这个时间,弹性负载均衡会向客户端和服务端发送RST断开连接。这个超时时间是固定的,用户不能自行设置。如果选择了源IP算法,还需要注意在客户后端服务安全策略中是否放通了相应的网段,比如100.125.0.0/16网段。这可以确保后端云服务器的健康检查状态正常,如果异常,流量可以切换到其他后端云服务器。 综上所述,设置用户登录超时时间可以通过前端JavaScript和后端服务器的会话过期时间设置来实现,还可以在负载均衡器中设置TCP连接的超时时间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [keycloak介绍docker版本使用示例用户登录超时时间设置](https://blog.csdn.net/u010882234/article/details/130675333)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [thinkphp5.0-php登录超时检测功能的类](https://download.csdn.net/download/chendongpu/85264642)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [服务器设置网络连接超时时间设置](https://blog.csdn.net/weixin_39611765/article/details/119469992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚持是一种态度

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值