来自AI助手的总结
介绍Jenkins集成LDAP、GitLab和GitHub实现单点登录的配置方法

一、Ldap用户认证集成
1.1 安装Ldap服务 & 安装Ldap控制台
1.1 通过docker安装
1.1 Quick start
start.sh
#!/bin/bash -e
docker run -p 389:389 -p 636:636 --name ldap-service --hostname ldap-service --detach osixia/openldap:1.4.0
docker run --name phpldapadmin-service --hostname phpldapadmin-service -p 6443:443 --link ldap-service:ldap-host --env PHPLDAPADMIN_LDAP_HOSTS=ldap-host --detach osixia/phpldapadmin:0.9.0
PHPLDAP_IP=$(docker inspect -f "{{ .NetworkSettings.IPAddress }}" phpldapadmin-service)
echo "Go to: https://$PHPLDAP_IP"
echo "Login DN: cn=admin,dc=example,dc=org"
source start.sh
Go to: https://172.17.0.5
Login DN: cn=admin,dc=example,dc=org
Password: admin
- https://192.168.33.11:6443/
$ curl --insecure -I https://172.17.0.5
HTTP/1.1 200 OK
Date: Mon, 13 Jul 2020 17:09:45 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Cache-control: private
Set-Cookie: 5d89dac18813e15aa2f75788275e3588=lnfqfhbuvl0lqsgfmee2mqvhho; path=/
Strict-Transport-Security: max-age=15768000
Upgrade: h2,h2c
Connection: Upgrade
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Vary: User-Agent
Content-Type: text/html; charset="UTF-8"
$ curl ldap://192.168.33.11:389
DN:
objectClass: top
objectClass: OpenLDAProotDSE
1.2 创建OU组织用户数据
1.2 创建OU
选择Organisational unit 组织单元

输入OU名称(jenkins)

提交信息

1.2 创建人员
- 选择
OU->选择新建子条目

选择默认模板

选择inetorgperson

填写并提交信息

- user: test01
- password: 12345

用户创建完成

1.2 Jenkins集成Ldap
1.2 先决条件
1、备一个adminDN账号用于查询用户。 cn=admin,dc=example,dc=org
2、将访问Jenkins的用户放到一个OU中。 ou=jenkins,dc=example,dc=org
3、提供ldap服务器地址。 ldap://192.168.33.11:389
1.2 Jenkins配置
- 安装ldap插件
- 全局安全配置
http://192.168.33.11:8080/configureSecurity/

选择账号测试,出现一下信息集成完毕
- user: test01
- password: 12345

重新登录

role-strategy/assign-roles
Assign 新的 Roles 例如 admin

二、Jenkins集成Gitlab SSO单点登录
2.1 Gitlab安装
2.1 安装Gitlab
1、在 Kubernetes 上安装 Gitlab (New)
2.1 改变gitlab service from ClusterIP to nodePort
...
---
apiVersion: v1
kind: Service
metadata:
name: gitlab
namespace: kube-ops
labels:
name: gitlab
spec:
ports:
- name: http
port: 80
targetPort: http
nodePort: 30088
- name: ssh
port: 22
targetPort: ssh
nodePort: 30022
type: NodePort
selector:
name: gitlab
curl from vm machine
$ curl http://192.168.33.1:30088
<html><body>You are being <a href="http://192.168.33.1:30088/users/sign_in">redirected</a>.</body></html>
登录
- root
- admin321
2.2 Gitlab配置
- 安装
Jenkins Gitlab Authentication插件 - 应用管理->创建应用->配置重定向url
- Application

- Callback URL: http://192.168.33.11:8080/securityRealm/finishLogin
- Application ID: 33895718cb9554a8525d06b357ad54dfaa7f5de1ec6867bad98a6fa77e7fd506
- secret: cb06c366988e88a0c0328d5a9c0f8add3b803032b5c93943b8e2cfa61963cbc2
- http://192.168.33.11:8080/securityRealm/finishLogin
2.3 Jenkins配置
2.3 Configure Global Security

2.3 configuration
Jenkins Location

2.3 重新登录
最后实现的效果是用户在gitlab登录之后,输入jenkins域名会直接进入jenkins。

2chap6_gitlab.md
三、Jenkins集成Github SSO单点登录
3.1 Github配置
- 安装插件
GitHub Authentication plugin Settings -> devloper settings -> OAuth Apps -> Register a new OAuth application

http://192.168.33.11:8080/securityRealm/finishLoginhttp://192.168.33.11:8080/

3.2 Jenkins配置
3.2 Configure Global Security

3.2 重新登录
最后实现的效果是用户在github登录之后,输入jenkins域名会直接进入jenkins。



© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END







暂无评论内容