首先安装LDAP插件
登录Jenkins –> 系统管理 –> 全局安全配置
访问控制选择LDAP
,Server输入LDAP服务器地址,有其他配置可以点击Advanced Server Configuration…
Server:服务器地址,可以直接填写LDAP服务器的主机名或IP,例如ldap.domain.com
(默认端口389),或者ldap.domain.com:1389
,如果用了SSL,可以填写ldaps://ldap.domain.com
(默认端口636),或者ldaps://ldap.domain.com:1636
root DN
:这里的root DN只是指搜索的根,并非LDAP服务器的root dn。由于LDAP数据库的数据组织结构类似一颗大树,而搜索是递归执行的,理论上,我们如果从子节点(而不是根节点)开始搜索,因为缩小了搜索范围那么就可以获得更高的性能。这里的root DN指的就是这个子节点的DN,当然也可以不填,表示从LDAP的根节点开始搜索
User search base
:这个配置也是为了缩小LDAP搜索的范围,例如Jenkins系统只允许ou为Admin下的用户才能登陆,那么你这里可以填写ou=Admin
,这是一个相对的值,相对于上边的root DN,例如你上边的root DN填写的是dc=domain,dc=com
,那么user search base这里填写了ou=Admin,那么登陆用户去LDAP搜索时就只会搜索ou=Admin,dc=domain,dc=com
下的用户了
User search filter
:这个配置定义登陆的“用户名”对应LDAP中的哪个字段,如果你想用LDAP中的uid作为用户名来登录,那么这里可以配置为uid={0}
({0}
会自动的替换为用户提交的用户名),如果你想用LDAP中的mail作为用户名来登录,那么这里就需要改为mail={0}
。在测试的时候如果提示你user xxx does not exist,而你确定密码输入正确时,就要考虑下输入的用户名是不是这里定义的这个值了
Group search base
:参考上边User search base解释
Group search filter
:这个配置允许你将过滤器限制为所需的objectClass来提高搜索性能,也就是说可以只搜索用户属性中包含某个objectClass的用户,这就要求你对你的LDAP足够了解,一般我们也不配置
Group membership
:没配置,没有详细研究
Manager DN
:这个配置在你的LDAP服务器不允许匿名访问的情况下用来做认证,通常DN为cn=admin,dc=domain,dc=com
这样
Manager Password
:上边配置dn的密码
Display Name LDAP attribute
:配置用户的显示名称,一般为显示名称就配置为uid,如果你想显示其他字段属性也可以这里配置,例如mail
Email Address LDAP attribute
:配置用户Email对应的字段属性,一般没有修改过的话都是mail,除非你用其他的字段属性来标识用户邮箱,这里可以配置
下边还有一些配置如:环境变量Environment Properties
、servlet
容器代理等,很少用就不多解释了。有一个配置Enable cache
可能会用得到,当你的LDAP数据量很大或者LDAP服务器性能较差时,可以开启缓存,配置缓存条数和过期时间,那么在过期时间内新请求优先查找本地缓存认证,认证通过则不会去LDAP服务器请求,以减轻LDAP服务器的压力
配置完成后可以点击下方的Test LDAP sttings
来测试配置的准确性