环境:

软件

版本

IP

Jenkins

JDK 11.0.16

10.3.0.207

AD域控

Winserver 2019 

10.3.0.209

一、AD 域服务器 安装 CA 证书

1、添加角色


Jenkins 使用 AD域 登陆_配置文件

2、一直下一步 到


Jenkins 使用 AD域 登陆_xml_02

3、点击安装

Jenkins 使用 AD域 登陆_jenkins_03

4、为 AD 域 配置

Jenkins 使用 AD域 登陆_jenkins_04

5、下一步

Jenkins 使用 AD域 登陆_docker_05

Jenkins 使用 AD域 登陆_jenkins_06

Jenkins 使用 AD域 登陆_配置文件_07

Jenkins 使用 AD域 登陆_xml_08

6、一直下一步至安装

Jenkins 使用 AD域 登陆_配置文件_09

Jenkins 使用 AD域 登陆_docker_10

7、重启服务器后,进入证书管理,看到为AD生成了一张证书

Jenkins 使用 AD域 登陆_运维_11

二、Jenkins 安装及配置

如果你用的jdk是1.8.0_181及以后用 636 是连接不上 ldap 的,因为jdk增加了ldap端到端识别算法,解决办法是在运行 jvm 的时候加上参数:-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true


下面是在开启和关闭情况下的2种配法

第一种:开启 端到端识别算法

1、jenkins 安装

docker rm -f jenkins || true
docker run -u root \
--name jenkins \
-p 9090:8080 \
-p 50000:50000 \
-v /docker/jenkins/jenkins_data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-d jenkins/jenkins:lts-centos7

2、修改 DNS 与 证书一致

# 查看 证书中的 DNS
echo -n | openssl s_client -connect 10.3.0.209:636 | openssl x509 -noout -text | grep DNS

# 获得 DNS 为 AD-02.tomma.com
depth=0 CN = AD-02.tomma.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 CN = AD-02.tomma.com
verify error:num=21:unable to verify the first certificate
verify return:1
DONE
othername:<unsupported>, DNS:AD-02.tomma.com


# 进入容器修改 hosts
docker exec -it jenkins /bin/bash

vi /etc/hosts

# 加入
10.3.0.209 AD-02.tomma.com

3、安装 插件

        Active Directory plugin

4、插件配置

操作之前,先备份一下 jenkins 配置文件        cp config.xml config_bak.xml

        系统管理 - 全局安全配置

        Domain Name:tomma.com
        Domain controller: AD-02.tomma.com:636
        Bind DN: tomma\administrator
        Bind Password: Admin123

        点击 Test Domain
        显示 Success

Jenkins 使用 AD域 登陆_配置文件_12

5、管理员 验证登陆

Jenkins 使用 AD域 登陆_xml_13

Jenkins 使用 AD域 登陆_jenkins_14

6、域成员 验证登陆


Jenkins 使用 AD域 登陆_jenkins_15

Jenkins 使用 AD域 登陆_jenkins_16

第二种:关闭 端到端识别算法

1、jenkins 安装

docker rm -f jenkins || true
docker run -u root \
--name jenkins \
-p 9090:8080 \
-p 50000:50000 \
-v /docker/jenkins/jenkins_data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-e JAVA_OPTS="-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true" \
-d jenkins/jenkins:lts-centos7

2、插件配置 

操作之前,先备份一下 jenkins 配置文件        cp config.xml config_bak.xml

        系统管理 - 全局安全配置

        Domain Name:tomma.com
        Domain controller: 10.3.0.209:636
        Bind DN: tomma\administrator
        Bind Password: Admin123

        点击 Test Domain
        显示 Success

Jenkins 使用 AD域 登陆_docker_17

小结:

  1. 使用 AD 域登陆后,原来的 admin 账号无法使用
  2. 如果要切换到原来的模式登陆,可以还原 config 配置文件