Keycloak基于OAuth 2.0、Open ID Connect、JSON Web Token(JWT)和SAML 2.0规范,为浏览器应用和RESTful Web Service提供SSO和IDM集成。
keycloak最新的版本为3.3.0
首先安装数据库,假设使用的为postgres,容器名为postgres
下载docker镜像
docker pull jboss/keycloak:3.3.0.Final
然后通过以下命令创建容器:
docker run --name keycloak -d -p 443:443 -p 9990:9990 -p 8080:8080 \
--link postgres:postgres -e POSTGRES_DATABASE=keycloak \
-e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=keycloakxxxx \
-e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime \
--restart=always jboss/keycloak:3.3.0.Final
其中指定了数据库,时区等参数。
这样创建出来的应该可以使用了。如果你想使用中文界面可以通过Realm Settings的Themes开启[Internationalization Enabled](*每个realm单独设置)
如图
这时,在登录画面已经支持了,另外用户还需要另配一个。要不然登录后还是英文界面。
以上是修改配置,改完后,重新登录,一切正常的话。后面的也就不用看了。
如果不小心乱码了,可以能过以下的调整,让它回复正常。
1.把docker里面的keycloak文件复制出来,
docker cp keycloak:/opt/jboss/keycloak/ /data/
2.赋与权限
chown 1000:1000 /data/keycloak -R
3.删除原来的容器
docker stop keycloak
docker rm keycloak
4.重新创建
docker run --name keycloak -d -p 443:443 -p 9990:9990 -p 8080:8080 \
--link postgres:postgres -e POSTGRES_DATABASE=keycloak \
-e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=keycloakxxxx \
-e TZ=Asia/Shanghai \
--privileged=true \
-v /etc/localtime:/etc/localtime \
-v /data/keycloak:/opt/jboss/keycloak \
--restart=always jboss/keycloak:3.3.0.Final
5.然后把/data/keycloak/themes/base下面的properties文件改一下就好。这个用过java的都知道,我是直接在eclipse里创建了一个空properties文件,然后往里面粘,自动就转好了。
最终效果图