首页 > 技术文章 > jenkins 集成 keycloak 认证

rongfengliang 2019-01-29 16:28 原文

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;">

推荐阅读