keycloak介绍
- Keycloak是一款由Red Hat开源社区开发的开放源代码的身份和访问管理解决方案,它提供了安全的单点登录(SSO)、多因素身份验证、社交登录和基于角色的访问控制等功能
- Keycloak基于OAuth 2.0和OpenID Connect协议,并支持SAML 2.0,可与多种身份验证和授权方案集成,如LDAP、Active Directory、数据库等
- Keycloak提供了RESTful API,可与其他应用程序集成,以实现强大的身份验证和访问控制功能
- Keycloak还提供了灵活的自定义主题和登录表单,以便根据特定的品牌和样式要求进行定制化。它还提供了分布式架构和高可用性,可适应各种规模的企业级应用程序。
- 由于其丰富的功能和灵活的可扩展性,Keycloak已成为开源社区中最受欢迎的身份和访问管理解决方案之一
docker版本使用
- keycloak使用很方便,我们可以选择直接使用docker版本
- 如果已有镜像可以直接
docker run
命令启动;或者有镜像tar压缩包,可以装载进来再使用 - 如果没有,可以从互联网获取。先搜索
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
超时时间设置
- 使用
ip:9080
可以访问keycloak操作界面,登录后可进行操作,配置样式、操作时间等
- 超时时间设置,可能是我们会用的一个功能。如果不自定义设置,使用默认超时时间也可以
- SSO会话空闲时间(ssoSessionIdleTimeout):设置会话在过期之前可以空闲的时间长度,当会话过期时 Token 和浏览器会话都会被设置为无效 (保活,操作则继续延迟有效期,默认半小时,如果半小时不操作,则会失效,需要重新登录)
- SSO会话最长时间(ssoSessionMaxLife):会话的最大时间长度,当会话过期时 Token 和浏览器会话都会被设置为无效(最长时间,登录后允许的最长时间,默认10小时,超出后token失效,需要重新登录)
- 修改这两个参数,就可以控制登录时间