天天看点

jenkins 使用LDAP认证

jenkins使用LDAP认证配置如下图所示:

用管理员账户登录jenkins,点击系统管理 ==> Configure Global Security

<a href="https://s4.51cto.com/wyfs02/M00/8F/55/wKiom1jbM4PwrxDaAAEzya2MJ0U195.png" target="_blank"></a>

<a href="https://s5.51cto.com/wyfs02/M00/8F/53/wKioL1jbM4TTK-aiAAIl5HJq3VY549.png" target="_blank"></a>

注意:我没有配置User search base和Group search base,这样ldap用户登录时,会对ldap 服务器上所有组所有用户进行匹配查询,如果指定了某一个组或某一个用户,那么其他组其他用户就算在ldap服务器上存在,也无法通过认证。LDAP只是做认证的,jenkins的的权限需要在授权策略中配置。

另外,我使用的是ldap加密认证。这需要在jenkins服务器上进行配置

1、将ldap服务的证书相关信息保存到host.crt文件

1

<code>openssl s_client -connect 172.16.42.137:636 &gt;&gt; host.crt</code>

2、将host.crt文件中的CA服务器的公钥过滤出来保存在host1.crt文件中

<code>cat</code> <code>host.crt |</code><code>sed</code> <code>-</code><code>ne</code> <code>'/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'</code><code>&gt; host1.crt</code>

3、备份jdk的cacerts文件,jdk版本不同,路径可能不同,可以用find / -name cacert来搜索该文件

<code>cp</code> <code>/usr/java/jdk1</code><code>.8.0_111</code><code>/jre/lib/security/cacerts</code> <code>/usr/java/jdk1</code><code>.8.0_111</code><code>/jre/lib/security/cacerts</code><code>.bak</code>

将CA公钥导入到cacerts文件中,默认的密码是changeit

<code>keytool -</code><code>import</code> <code>-trustcacerts -</code><code>alias</code> <code>172.16.42.137 -</code><code>file</code> <code>host1.crt -keystore </code><code>/usr/java/jdk1</code><code>.8.0_111</code><code>/jre/lib/security/cacerts</code>

4、重启jenkins服务

<code>/etc/init</code><code>.d</code><code>/jenkins</code> <code>restart</code>

本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1911358,如需转载请自行联系原作者