无法在Jenkins中使用LDAP登录

Hor*_*Kol 3 ldap jenkins

为了加强Jenkins CI服务器的安全性(在Ubuntu 14.04上运行1.614),我昨天配置了LDAP插件.昨天一切似乎都很好,我能够登录并手动配置和运行一些构建.

然而,今天早上,没有人 - 包括我自己 - 能够登录.

我们被告知要查看服务器控制台输出 - 但是,没有记录任何内容/var/log/jenkins/jenkins.log.我发现如何在本地文件系统上查看Jenkins服务器控制台输出?- 但是没有这样的日志文件/usr/lib/jenkins/(我的jenkins主目录).

我在https://wiki.jenkins-ci.org/display/JENKINS/LDAP+Plugin尝试了简单的故障排除groovy脚本,但每个查询返回:

Checking the name 'wibble'...
  It is NOT a group, reason: No such property: Jenkins for class: RemoteClass
  It is NOT a user, reason: No such property: Jenkins for class: RemoteClass
Run Code Online (Sandbox Code Playgroud)

我的安全配置:

<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.LDAPSecurityRealm" plugin="ldap@1.11">
    <server>server.ip.address</server>
    <rootDN>dc=domain,dc=location,dc=au</rootDN>
    <inhibitInferRootDN>false</inhibitInferRootDN>
    <userSearchBase>dc=domain,dc=location,dc=au</userSearchBase>
    <userSearch>sAMAccountName={0}</userSearch>
    <groupSearchBase>ou=groups</groupSearchBase>
    <groupSearchFilter>(&amp; (cn={0}) (objectclass=group) )</groupSearchFilter>
    <groupMembershipStrategy class="jenkins.security.plugins.ldap.FromGroupSearchLDAPGroupMembershipStrategy">
        <filter>(&amp;(objectCategory=group)(member={0}))</filter>
    </groupMembershipStrategy>
    <managerDN>cn=administrator,cn=users,dc=domain,dc=location,dc=au</managerDN>
    <managerPasswordSecret>wurble-bop-de-boo</managerPasswordSecret>
    <disableMailAddressResolver>false</disableMailAddressResolver>
    <displayNameAttributeName>displayname</displayNameAttributeName>
    <mailAddressAttributeName>mail</mailAddressAttributeName>
    <userIdStrategy class="jenkins.model.IdStrategy$CaseInsensitive"/>
    <groupIdStrategy class="jenkins.model.IdStrategy$CaseInsensitive"/>
</securityRealm>
Run Code Online (Sandbox Code Playgroud)

一夜之间没有进行配置更改,我们将这些相同的凭据/设置用于来自大约3个或4个不同应用程序的其他LDAP集成,并且它们都运行良好.

wal*_*ter 9

在" 配置全局安全性"页面上添加或修改用户后,我遇到了类似的问题.我认为就像@ davidrv87所说的那样:Chrome会自动填充一些隐藏的"用户名"和"密码"字段并破坏您的LDAP设置.

结果

在主Jenkins config.xml文件中,错误设置显示为下面的新子节点<securityRealm>:

  <securityRealm class="hudson.security.LDAPSecurityRealm" plugin="ldap@1.11">
+      <managerDN>myusername</managerDN>
+      <managerPasswordSecret>uT5S1rfROmNBuEsw8z=</managerPasswordSecret>
Run Code Online (Sandbox Code Playgroud)

怎么修

  1. 编辑 ~jenkins/config.xml
  2. 删除managerDNmanagerPasswordSecret节点(行).
  3. 重新启动Jenkins服务.

现在LDAP登录应该再次运行!