Jenkins 接入LDAP系统 管理用户

一、创建用户

# 在freeipa界面创建jenkinsldap用户,此用户是jenkins专门用来与ldap通信使用

FreeIPA安装参考:FreeIPA高可用部署

二、jenkins配置

"""
jenkins创建好后,我们选择直接接入ldap进行用户管理,不在使用jenkins直接创建用户。
注意一点,接入ldap后一定要先配置一个admin用户!!!
"""
系统配置 ---> 全局安全配置 ---> 安全域 ---> LDAP

参数配置:
Server:	ipa1.dc.losinx.com:389    # 地址
root DN: dc=dc,dc=losinx,dc=com   # 域信息
User search base: cn=users,cn=accounts
User search filter: uid={0}
Group search base: cn=groups,cn=accounts
Group search filter: (objectclass=ipausergroup)
Manager DN: uid=jenkinsldap,cn=users,cn=accounts,dc=dc,dc=losinx,dc=com
Manager Password: 12345678
"""
首先需要在ldap创建jenkinsldap用户
jenkinsldap: ldap用户
"""

Jenkins 接入LDAP系统 管理用户
Jenkins 接入LDAP系统 管理用户

  • config.xml 配置文件内容
<authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy">
    <permission>hudson.model.Hudson.Administer:tchua</permission>
  </authorizationStrategy>
  <securityRealm class="hudson.security.LDAPSecurityRealm" plugin="ldap@1.24">
    <disableMailAddressResolver>false</disableMailAddressResolver>
    <configurations>
      <jenkins.security.plugins.ldap.LDAPConfiguration>
        <server>ipa1.dc.losinx.com:389</server>
        <rootDN>dc=dc,dc=losinx,dc=com</rootDN>
        <inhibitInferRootDN>false</inhibitInferRootDN>
        <userSearchBase>cn=users,cn=accounts</userSearchBase>
        <userSearch>uid={0}</userSearch>
        <groupSearchBase>cn=groups,cn=accounts</groupSearchBase>
        <groupSearchFilter>(objectclass=ipausergroup)</groupSearchFilter>
        <groupMembershipStrategy class="jenkins.security.plugins.ldap.FromUserRecordLDAPGroupMembershipStrategy">
          <attributeName>memberOf</attributeName>
        </groupMembershipStrategy>
        <managerDN>uid=jenkinsldap,cn=users,cn=accounts,dc=dc,dc=losinx,dc=com</managerDN>
        <managerPasswordSecret>{AQAAABAAAAAQfAHX2RsbwUbySUyvP/xa9xDw2uby9ICFArQ+thzhzkQ=}</managerPasswordSecret>
        <displayNameAttributeName>displayname</displayNameAttributeName>
        <mailAddressAttributeName>mail</mailAddressAttributeName>
        <ignoreIfUnavailable>false</ignoreIfUnavailable>
      </jenkins.security.plugins.ldap.LDAPConfiguration>
    </configurations>
    <userIdStrategy class="jenkins.model.IdStrategy$CaseInsensitive"/>
    <groupIdStrategy class="jenkins.model.IdStrategy$CaseInsensitive"/>
    <disableRolePrefixing>true</disableRolePrefixing>
  </securityRealm>

三 总结

这样保存配置后,后续用户直接使用ldap创建的用户即可。
# 注意:
默认ldap用户只有登录权限,只是提供了账号,用户具体的权限还是需要我们通过jenkins页面进行授权,
授权方式跟不接入ldap方式一样。
"""
其实这里我们仅仅是把创建用户的功能授权给了ldap,其它的还是需要在jenkins中配置,
另外,我们都知道jenkins是不支持组添加的,通过使用ldap的话,就可以了,在ldap中创建组,添加对应的人员之后,就可以在jenkins页面对组直接授权,这样整个组里面的人员都会有相同的权限。
"""
上一篇:域渗透之ldap协议


下一篇:基于Docker部署Ldap环境