keycloak 是很不錯的sso 工具,當然也有Jenkins 的插件,我們可以使用jenkins 插件,方便用戶賬戶的管理
環境准別
- docker-compose
version: "3"
services:
jenkins:
image: jenkins/jenkins:lts-alpine
ports:
- "9090:8080"
volumes:
- "./app:/var/jenkins_home"
openresty:
build:
context: ./
dockerfile: ./Dockerfile
ports:
- "8090:80"
volumes:
- "./nginx_lua/:/opt/app/"
- "./nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf"
auth:
image: jboss/keycloak
ports:
- "8080:8080"
environment:
- "KEYCLOAK_USER=dalong"
- "KEYCLOAK_PASSWORD=dalongrong"
- "DB_VENDOR=postgres"
- "DB_ADDR=postgres"
- "DB_DATABASE=postgres"
- "DB_USER=postgres"
- "DB_PASSWORD=dalong"
- "PROXY_ADDRESS_FORWARDING=true"
postgres:
image: postgres:9.6
ports:
- "5432:5432"
environment:
- "POSTGRES_PASSWORD:dalong"
啟動&&測試
- 啟動
docker-compose up -d
-
配置jenkins
為了簡單,建議自己選擇插件,別使用推薦的
-
創建keycloak realm 以及client
realm 配置信息
client 配置: 注意root 因為不是通過war 拷貝 tomncat webapp 的方式,所以不用帶jenkins 路徑信息,同時使用了容器外部端口
添加用戶: 按照提示即可,注意需要修改下用戶的密碼
- 安裝 jenkins keycloak 插件
- 啟動keycloak 認證
- 配置jenkins keycloak
注意是從系統設置處添加,注意配置的時候需要修改localhost 為 auth (docker-compose 的service 名稱),如下
- 登陸測試
打開 http://localhost:9090 ,跳轉的登陸界面,輸入用戶密碼(從keycloak 處創建的)
登陸界面如下:
參考資料
https://github.com/keycloak/jenkins-keycloak-plugin
https://github.com/rongfengliang/keycloak-openresty-openidc
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">