docker安裝keycloak並整合ldap(ldap是外部公司提供而不是自己安裝的)
目前公司使用keycloak+ldap做單點登錄,在這裡記錄一下。
keycloak有自己的數據庫,也可以使用外部數據庫,我們使用的是mysql5.7
第一步 docker安裝mysql
1.拉取鏡像
docker pull mysql:latest
2.安裝
docker run --name mysql_aoh -p 3306:3306 --privileged=true \ -e MYSQL_ROOT_PASSWORD=123456 -d \ -v /mydata/mysql_aoh/data:/var/lib/mysql \ -v /mydata/mysql_aoh/mysql-files:/var/lib/mysql-files \ -v /mydata/mysql_aoh/conf/my.cnf:/etc/mysql/my.cnf \ mysql:5.7 --lower_case_table_names=1
3.創建keycloak數據庫
4.keycloak下創建一個用戶,賬號密碼都設置為keycloak
5.給keycloak用戶添加權限
選擇keycloak用戶,然後添加所有的權限
保存之後是這個樣子
第二步 docker安裝keycloak
1.創建網絡
docker network create keycloak-network
2.创建数据库,使用mysql5.7
如果存在数据库,则把数据库添加到网络keycloak-network。
docker network connect keycloak-network <mysql容器名称>
3.拉取keycloak像
docker pull jboss/keycloak:13.0.0
4.運行keycloak,端口號可自行修改,我這裡用的是10001
docker run -d --name keycloak \ --network keycloak-network \ -p 10001:8080 \ -e KEYCLOAK_USER=admin \ -e KEYCLOAK_PASSWORD=admin \ -e DB_VENDOR=mysql \ -e DB_ADDR=mysql_aoh \ -e DB_PORT=3306 \ -e DB_DATABASE=keycloak \ -e DB_USER=keycloak \ -e DB_PASSWORD=keycloak \ -e JDBC_PARAMS='connectTimeout=90&useSSL=false' \ -v /etc/localtime:/etc/localtime \ jboss/keycloak:13.0.0
運行的過程可以查看keycloak的日誌信息,假如有報錯,根據報錯進行修改
docker logs -f -t keycloak
5.修改數據庫表中的一條數據
假如以上沒有報錯,我們會發現數據庫中出現了許多表
update REALM set ssl_required='NONE' where id = 'master'
之後重啟keycloak
docker restart keycloak
等重啟完成之後,瀏覽器就可以訪問keycloak了。賬號和密碼都是admin
localhost:10001
可以自定義主題,在網上搜索一下有教程。本人不會。
keycloak集成ldap的話我參考的是
https://blog.csdn.net/qq_36382225/article/details/103974119