Keycloak部署及与Jenkins集成SSO配置
Jenkins 与 keycloak集成
搭建keycloak
运行keycloak服务
创建docker-compose.yaml文件,运行docker-compose up -d 拉起服务
version: '3'
networks:
keynet:
driver: bridge
services:
postgresql:
image: 'bitnami/postgresql:latest'
environment:
- POSTGRESQL_DATABASE=bitnami_keycloak
- POSTGRESQL_USERNAME=bn_keycloak
- POSTGRESQL_PASSWORD=passw@rd
networks:
- keynet
keycloak:
image: 'bitnami/keycloak:latest'
environment:
- KEYCLOAK_CREATE_ADMIN_USER=true
- KEYCLOAK_ADMIN_USER=user
- KEYCLOAK_ADMIN_PASSWORD=bitnami
- KEYCLOAK_MANAGEMENT_USER=manager
- KEYCLOAK_MANAGEMENT_PASSWORD=bitnami1
- KEYCLOAK_DATABASE_HOST=postgresql
- KEYCLOAK_DATABASE_PORT=5432
- KEYCLOAK_DATABASE_NAME=bitnami_keycloak
- KEYCLOAK_DATABASE_USER=bn_keycloak
- KEYCLOAK_DATABASE_PASSWORD=passw@rd
- KEYCLOAK_DATABASE_SCHEMA=public
- KEYCLOAK_HTTP_PORT=8080
- KEYCLOAK_BIND_ADDRESS=0.0.0.0
depends_on:
- postgresql
ports:
- 8080:8080
networks:
- keynet
keycloak 与 OpenLDAP集成
创建新的realm, 名为SSO
选中新建的SSO Realm, 然后点击User federation
-> Add new provider
-> LDAP
点击保存, 然后进入刚配置的provider, 点击右上角Action
-> Sync all users
同步所有用户。 同步完成即可在User的页签下, 使用通配符*
查询到导入的所有的用户。
keycloak与jenkins集成
keycloak 配置
创建点击Client
-> Create client
, clientid 填jenkins。按照下图填写client信息。
点击Client Scope
-> Create Client Scope
, Name
填写audience
, 其他默认。
点击新建的audience, 选择Mapper
-> Add Mapper
-> By Configuration
, 选择audience, 根据图片创建mapper。Included Client Audiencee 选择上面建的jenkins
点击Client
-> jenkins
-> Client Scopes
-> Add Client Scope
, 勾选上一步建的Client Scope
, 点击Add
选择Default
.
jenkins client页面选择Action
-> Download adapter config
, 把json字符串复制出来备用.
jenkins配置
建议先备份jenkins的配置文件, 以免keycloak配置错误导致的jenkins无法登陆。
jenkins 安装 Keycloak Authentication Plugin
插件,
点击Manage Jenkins
-> Configure Global Security
-> Security Realm
, 选择Keycloak Authentication Plugin
, 保存。
点击Manage Jenkins
-> Configure System
找到KeyCloak Json, 把上面导出的字符串贴进去。保存
注意!!!需要把导出json中的confidential-port和policy-enforcer 字段删掉, 否则jenkins会无法登陆
随后在新窗口打开jenkins, 即可重定向到keycloak登陆页面。