1 ldap配置

1.1 安装ldap服务

1、配置selinux和防火墙

2、安装ldap

yum install -y openldap-servers openldap-clients migrationtools

3、生成管理员密码

slappasswd   #据提示输入密码会返回加密的密码字符串,保存好这个字符串

Jenkins集成LDAP用户认证_php

4、配置数据库缓存

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

chown -R ldap:ldap /var/lib/ldap/

5、配置管理员密码

vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

#在末尾添加一行 此处设置的是 认证密码

olcRootPW: qingchen

6、测试配置文件

slaptest -u  #出现configfile testing successed 说明成功了

Jenkins集成LDAP用户认证_vim_02

7、启动ldap

systemctl start slapd.service

systemctl enable slapd.service

8、导入模板

ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}

1.2 安装ldap控制台

1、安装apache服务

yum -y install httpd

2、修改配置文件

vim /etc/httpd/conf/httpd.conf #AllowOverride all

<Directory />

AllowOverride all  #这里改成all

Require all denied

</Directory>

3、启动服务测试

systemctl start httpd

systemctl enable httpd

4、测试服务

curl 127.0.0.1

5、安装phpldapadmin

yum install phpldapadmin -y

1.3 配置ldap服务

1、phpldapadmin配置文件更改

vim /etc/phpldapadmin/config.php

$servers->setValue('server','host','127.0.0.1');

$servers->setValue('server','port',389);

$servers->setValue('server','base',array('dc=my-domain,dc=com'));

$servers->setValue('login','auth_type','session');

$servers->setValue('login','attr','dn');

#$servers->setValue('login','attr','uid');#注释掉

2、修改httpd配置文件

vim /etc/httpd/conf.d/phpldapadmin.conf

Jenkins集成LDAP用户认证_vim_03

3、创建基础目录

vim /etc/openldap/base.ldif

dn: dc=my-domain,dc=com

o: ldap

objectclass: dcObject

objectclass: organization

dc: my-domain

4、执行命令初始化

ldapadd -f /etc/openldap/base.ldif -x -D cn=Manager,dc=my-domain,dc=com -W

Jenkins集成LDAP用户认证_vim_04

如果不初始化,登录后会显示

Jenkins集成LDAP用户认证_vim_05

5、重启httpd服务

systemctl restart httpd

6、访问测试

http://192.168.137.130/phpldapadmin

登录LDAP   

账号:cn=Manager,dc=my-domain,dc=com 

密码:qingchen  #之前写到配置文件olcRootPW: qingchen

2 创建OU组织用户数据

2.1 创建OU

Jenkins集成LDAP用户认证_php_06

选择Organisational unit 组织单元

Jenkins集成LDAP用户认证_vim_07

输入OU名称

Jenkins集成LDAP用户认证_vim_08

提交信息

Jenkins集成LDAP用户认证_php_09

查看结果

Jenkins集成LDAP用户认证_php_10

2.2 创建人员

2.2.1 创建组和用户

选择OU->选择新建子条目

Jenkins集成LDAP用户认证_vim_11

创建组

Jenkins集成LDAP用户认证_配置文件_12

Jenkins集成LDAP用户认证_配置文件_13

提交组信息

Jenkins集成LDAP用户认证_配置文件_14

创建用户

Jenkins集成LDAP用户认证_配置文件_15

Jenkins集成LDAP用户认证_php_16

Jenkins集成LDAP用户认证_配置文件_17

Jenkins集成LDAP用户认证_php_18

提交用户信息

Jenkins集成LDAP用户认证_php_19

2.2.2 默认模板

Jenkins集成LDAP用户认证_php_20

选择inetorgperson

Jenkins集成LDAP用户认证_vim_21

填写并提交信息

Jenkins集成LDAP用户认证_配置文件_22

Jenkins集成LDAP用户认证_vim_23

Jenkins集成LDAP用户认证_配置文件_24

3 Jenkins集成LDAP

3.1 准备信息

准备一个adminDN账号用于查询用户。 cn=Manager,dc=my-domain,dc=com
将访问Jenkins的用户放到一个OU中。 ou=jenkins,dc=my-domain,dc=com
提供ldap服务器地址。 ldap://192.168.137.130:389

3.3 jenkins安装插件

需要安装ldap插件

3.3 jenkins配置ldap

Jenkins集成LDAP用户认证_php_25

Jenkins集成LDAP用户认证_php_26

Jenkins集成LDAP用户认证_vim_27

点击测试配置,弹框输入新创建的用户和密码

Jenkins集成LDAP用户认证_配置文件_28

Jenkins集成LDAP用户认证_配置文件_29

Jenkins集成LDAP用户认证_php_30

授权策略改一下,防止配置失败,没法登录

Jenkins集成LDAP用户认证_配置文件_31

退出重新登陆,原来的admin用户无法使用了,只能使用新创建的zhangsan用户密码进行登录

4 报错处理

测试完以后,使用zhangsan用户将密码策略改了回去,结果zhangsan没法登录了,admin登录显示权限不足

Jenkins集成LDAP用户认证_php_32

解决办法

cd ${JENKINS_HOME}

vi config.xml

将zhangsan改成admin

重启jenkins,就可以正常使用admin了

Jenkins集成LDAP用户认证_php_33