jenkins 集成 keycloak 认证
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;">