加载中...

Jenkins接入LDAP用户管理

一、准备

1.1部署jenkins:https://www.cnblogs.com/wangyuanguang/p/18025410

1.2LDAP部署:https://www.cnblogs.com/wangyuanguang/p/18189832

二、LDAP配置组织和uid用户

2.1配置组织

编辑ou=jenkins的配置文件 ou-jk.ldif

dn: ou=jenkins,dc=wyg,dc=com
objectClass: organizationalUnit
objectClass: top
ou: jenkins

创建jenkins组织

]# ldapadd -x -D 'cn=admin,dc=wyg,dc=com' -f ou-jk.ldif  -H ldap://192.168.100.102:389 -w 123456
adding new entry "ou=jenkins,dc=wyg,dc=com"

2.2创建uid的用户

配置user-jk.ldif,配置user1和user2用户

dn: uid=user1,ou=jenkins,dc=wyg,dc=com
ou: jenkins
uid: user1
sn: user1
cn: suer1
givenName: user1
displayName: user1
mail: readafa@esgyn.local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userpassword: 123456

dn: uid=user2,ou=jenkins,dc=wyg,dc=com
ou: jenkins
uid: user2
sn: user2
cn: user2
givenName: user2
displayName: user2
mail: readafa@esgyn.local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userpassword: 123456

创建用户

]# ldapadd -x -D 'cn=admin,dc=wyg,dc=com' -f user-jk.ldif  -H ldap://192.168.100.102:389 -w 123456
adding new entry "uid=user1,ou=jenkins,dc=wyg,dc=com"
adding new entry "uid=user2,ou=jenkins,dc=wyg,dc=com"

查看

[root@node1 ldif]# ldapsearch -x -D "uid=user1,ou=jenkins,dc=wyg,dc=com" -w 123456 -b 'ou=jenkins,dc=wyg,dc=com' 'uid=user1'
# extended LDIF
#
# LDAPv3
# base <ou=jenkins,dc=wyg,dc=com> with scope subtree
# filter: uid=user1
# requesting: ALL
#

# user1, jenkins, wyg.com
dn: uid=user1,ou=jenkins,dc=wyg,dc=com
ou: jenkins
uid: user1
sn: user1
cn: suer1
givenName: user1
displayName: user1
mail: readafa@esgyn.local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userPassword:: MTIzNDU2

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
[root@node1 ldif]# ldapsearch -x -D "uid=user2,ou=jenkins,dc=wyg,dc=com" -w 123456 -b 'ou=jenkins,dc=wyg,dc=com' 'uid=user2'
# extended LDIF
#
# LDAPv3
# base <ou=jenkins,dc=wyg,dc=com> with scope subtree
# filter: uid=user2
# requesting: ALL
#

# user2, jenkins, wyg.com
dn: uid=user2,ou=jenkins,dc=wyg,dc=com
ou: jenkins
uid: user2
sn: user2
cn: user2
givenName: user2
displayName: user2
mail: readafa@esgyn.local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userPassword:: MTIzNDU2

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

三、jenkins配置

3.1备份配置文件

LDAP配置一旦保存,config.xml配置就会修改,原来的用户就无法登陆,所以需要备份防止配置有问题后可以还原

]# cp -a /var/lib/jenkins/config.xml /var/lib/jenkins/config.xml.bak

3.2下载插件

需要下载LDAP的插件,下载好后重启可生效,不做演示

3.3配置LDAP

设置管理--->全局安全配置--->


配置,根据自己的实际填写

- Server:ldap://192.168.100.102:389
    # ldap地址
- User search base:ou=jenkins,dc=wyg,dc=com
    # 用户基于jenkins组进行获取,想要获取所有用户就填:dc=wyg,dc=com
- User search filter:uid={0}
    # 使用ldap中User Name值进行登录,(cn={0}表示用cn值登录)
- Group search base:ou=jenkins,dc=wyg,dc=com
    # 用户基于jenkins组进行获取,想要获取所有用户就填:dc=wyg,dc=com
- Manager DN:cn=admin,dc=wyg,dc=com
    # 选用的DN
- Manager password:123456
    # DN的密码
- Display Name LDAP attribute:displayName
    # 登录之后显示的名称为displayName的值,可以选择其他属性值,如sn、givenName





应用保存之前先测试一下,没有报错就说是正确的,要是不小心点了应用,可以利用原来的配置文件替换一下进行恢复

四、验证

4.1利用LDAP上配置的用户重新登录


查看用户,发现只要是cn=admin,dc=wyg,dc=com内的uiid用户都已经被添加(与ou组织是否是jenkins无关)


没看见user2,是因为需要登录之后才能看见,登录一下

如果出现权限问题,那么就说你的jenkins安装了 Role Strategy Plugin 插件,需要配置一下角色,见4.2

4.2用超级用户配置角色


按照权限分配,比如给个超级角色

分配现有的项目

重新登录user2查看,可以看到项目和系统配置等

4.3角色和项目管理

想要管理角色和项目如下:

五、注意

当在LDAP中删除uid用户后,jenkins上也需要同步删除一下,不然虽然不能登录,但是用户列表会有缓存

posted @ 2024-05-15 16:50  沾沾自喜的混子  阅读(430)  评论(0编辑  收藏  举报