本文介绍配置Jenkins服务器以针对FreeIPA LDAP服务器对用户进行身份验证的方法。管理公司用户的推荐方法是使用LDAP或Microsoft Active Directory(AD),这为你提供了需要身份验证和授权的所有内部服务的单点登录(SSO),同时Jenkins有一个本机LDAP插件,可用于针对外部LDAP服务器验证用户,例如OpenLDAP、FreeIPA。
安装FreeIPA、Jenkins参考文章 在Ubuntu 18.04/Ubuntu 16.04上安装和配置FreeIPA服务器 在RHEL/CentOS 8上安装和配置FreeIPA Server的方法
一、在FreeIPA上创建LDAP绑定用户 我们需要一个用户绑定到FreeIPA Server,登录到你的FreeIPA服务器并创建一个名为jenkins的用户,导航到身份>用户>添加(Identity > Users > Add):
填写所需的详细信息,然后单击“添加”(Add)。
二、配置Jenkins服务器 1.如果你没有在DNS上配置的FreeIPA Server的域名,请将该行添加到/etc/hosts文件中: echo "192.168.10.3 ldap.example.com" | sudo tee -a /etc/hosts 2.确认可以从Jenkins服务器访问LDAP端口: $ telnet ldap.example.com 389 Trying 192.168.10.3… Connected to ldap.example.com. Escape character is '^]'. 3.以admin用户身份登录Jenkins服务器,然后导航到Jenkins>配置全局安全性(Configure Global Security):
4.在“访问控制”(Access Control)下选择LDAP:
5.输入LDAP服务器(FreeIPA)IP和服务端口:
6.单击“高级服务器配置”(Advanced Server Configuration)以展开配置选项。 7.填写FreeIPA LDAP服务器详细信息以查找用户和组: LDAP Server: ldap://ldap.example.com:389 root DN: dc=example,dc=com User search base: cn=users,cn=accounts User search filter: uid={0} Group search base: cn=groups,cn=accounts Group membership > Search for LDAP groups containing user Group membership filter: (| (member={0}) (uniqueMember={0}) (memberUid={1})) Manager DN: uid=jenkins,cn=users,cn=accounts,dc=example,dc=com Manager Password: UserPassword Display Name LDAP attribute: displayname Email Address LDAP attribute: mail 说明: 1]、dc=example,dc=com:使用LDAP服务器域组件。 2]、UserPassword:使用Jenkins用户密码(在步骤1中创建)。 你的配置应类似于以下内容,如下图所示:
填写完信息后,单击“测试LDAP设置”(Test LDAP settings)以验证你的设置:
提供用于测试的用户名和密码:
如果收到成功的查找,将设置应用保存好。
三、以LDAP用户身份登录Jenkins 第一个登录的LDAP用户将获得管理员权限,以下是在Jenkins控制面板中:
四、在Jenkins上配置用户角色 参考文章:在Linux服务器Jenkins中管理用户和角色的方法。 让其他用户使用他们的LDAP帐户登录并为他们分配角色,这些角色定义他们可以在Jenkins服务器上执行的操作。
结语 经过以上步骤,你已经成功配置Jenkins服务器以通过LDAP服务器对用户进行身份验证。请注意,激活LDAP身份验证后,将禁用Jenkins本地内部用户数据库。出于某种原因,两者都不能共存,而且目前似乎没有解决方案。
相关主题 |