一、介绍
登录及身份认证是现代 web 应用最基本的功能之一,随着企业的发展各种 web 平台系统应运而生,然而每个都有自己独立的身份认证系统。用户使用不同的系统往往需要多次登录,还要维护多个系统的账号密码。
此时我们希望有一套 SSO(Single-Sign On) 服务可以统合多个平台系统对用户的登录及身份认证进行统一的管理,提升用户同时使用多个平台的体验,做到一次登录,多系统访问,Keycloak 正是为此种场景而生的。
keycloak 是一款为现代应用系统和服务提供开源的鉴权和授权访问控制管理的开源软件。它提供了单点登录(SSO)功能,基于标准协议并提供对 OpenID Connect、OAuth 2.0 和 SAML 的支持。
二、安装部署
1、二进制包
注意,需要确保已安装 OpenJDK 11 或更高版本。
安装:
wget https://github.com/keycloak/keycloak/releases/download/18.0.0/keycloak-18.0.0.zip
unzip keycloak-18.0.0.zip -d /usr/local/
ln -s /usr/local/keycloak-18.0.0 /usr/local/keycloak
启动:
[root@test01 ~]# export KEYCLOAK_ADMIN=admin
[root@test01 ~]# export KEYCLOAK_ADMIN_PASSWORD=admin
[root@test01 ~]# nohup /usr/local/keycloak/bin/kc.sh start-dev &
[root@test01 ~]# jps
22818 QuarkusEntryPoint
注册 systemd:
[root@test01 ~]# cat /usr/lib/systemd/system/keycloak.service
[Unit]
Description=keycloak.servie
After=network.target
[Service]
Type=simple
Environment="KEYCLOAK_ADMIN=admin"
Environment="KEYCLOAK_ADMIN_PASSWORD=admin"
ExecStart=/usr/local/keycloak/bin/kc.sh start-dev
PrivateTmp=true
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@test01 ~]# systemctl daemon-reload
[root@test01 ~]# systemctl start keycloak
2、docker
docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:18.0.0 start-dev
此时请访问 IP:8080,然后点击管理控制台,使用之前创建的用户名和密码登录即可。
三、设置
1、中文设置
选择 master 域,在右侧页面选择 Themes,设置如下:
保存后登出,在 Keycloak 的登录页面会显示语言切换项,选择中文简体,登录 Keycloak 即可。