Jenkins系统用户认证配置管理

一、Jenkins系统用户管理

  • 1.1 Jenkins 专有用户数据库
  • 1.2 LDAP认证集成
  • 1.3 GitLab单点登录
  • 1.4 GitHub单点登录

我们进入系统设置 > 全局安全配置,在这里可以配置jenkins的用户认证和授权策略。

在配置之前还是要嘱咐一句,由于配置失败或者不当可能会影响后续用户的登录。在此建议大家首先在测试环境进行测试。可以提前将${JENKINS_HOME}/config.xml备份一下,然后配置失败的时候迅速还原。

还有一种情况,配置gitlab和jenkins 用户认证时弄的jenkins没有权限了。修改${JENKINS_HOME}/config.xml中的<useSecurity>true</usrSecurity>为<useSecurity>false</usrSecurity>以关闭Jenkins的权限认证,然后重启Jenkins,重新配置管理的权限,最后开启权限认证功能。可以暂时开启允许任何人访问。

我们先来看Authentication部分,Jenkins默认使用的Jenkins专有用户数据库管理用户,支持LDAP、GitHub、GitLab等认证集成。但是同时只能配置一种认证集成方式。我们主要配置这三种认证。

1、Jenkins 专有用户数据库

系统管理>安全>管理用户, 可以对系统用户增删改查。

我们来创建一个普通的用户zeyang。

创建完成后,我们进入${JENKINSS_HOME}/users目录下可以看到如下内容:

[root@zeyang-nuc-service users]# ls
admin_3285798656405222668 users.xml zeyang_1686679553273142732

Jenkins的所有配置都是采用文件存储,即xml文件。在这里users目录包含了两部分数据:用户文件夹和所有用户信息配置文件users.xml。Jenkins默认在users目录下创建一个与用户同名的文件夹存储该用户的配置信息,保存在该目录下的config.xml文件中。

[root@zeyang-nuc-service users]# ls zeyang_1686679553273142732/
config.xml

这个config.xml文件中包含了用户的配置信息,这些信息都可以在web页面中更新。

更新完成后,点击保存。则会更新${JENKINS_HOME}/users目录下该用户目录对应的config.xml文件。类似下面这样:

<?xmlversinotallow='1.1'encoding='UTF-8'?>
<user>
<version>10</version>
<id>zeyang</id>
<fullName>zeyangli</fullName>
<properties>
<jenkins.security.ApiTokenProperty>
<tokenStore>
<tokenList/>
</tokenStore>
</jenkins.security.ApiTokenProperty>
<io.jenkins.plugins.localization__zh__cn.UserCommunityPropertyplugin="[email protected]">
<showCondition>Chinese</showCondition>
</io.jenkins.plugins.localization__zh__cn.UserCommunityProperty>
<com.cloudbees.plugins.credentials.UserCredentialsProvider_-UserCredentialsPropertyplugin="[email protected]">
<domainCredentialsMapclass="hudson.util.CopyOnWriteMap$Hash"/>
</com.cloudbees.plugins.credentials.UserCredentialsProvider_-UserCredentialsProperty>
<hudson.plugins.emailext.watching.EmailExtWatchAction_-UserPropertyplugin="[email protected]">
<triggers/>
</hudson.plugins.emailext.watching.EmailExtWatchAction_-UserProperty>
<hudson.model.MyViewsProperty>
<views>
<hudson.model.AllView>
<ownerclass="hudson.model.MyViewsProperty"reference="../../.."/>
<name>all</name>
<filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue>
<propertiesclass="hudson.model.View$PropertyList"/>
</hudson.model.AllView>
</views>
</hudson.model.MyViewsProperty>
<org.jenkinsci.plugins.displayurlapi.user.PreferredProviderUserPropertyplugin="[email protected]">
<providerId>default</providerId>
</org.jenkinsci.plugins.displayurlapi.user.PreferredProviderUserProperty>
<hudson.model.PaneStatusProperties>
<collapsed/>
</hudson.model.PaneStatusProperties>
<jenkins.security.seed.UserSeedProperty>
<seed>d93c5425095c7688</seed>
</jenkins.security.seed.UserSeedProperty>
<hudson.search.UserSearchProperty>
<insensitiveSearch>true</insensitiveSearch>
</hudson.search.UserSearchProperty>
<hudson.model.TimeZoneProperty/>
<hudson.security.HudsonPrivateSecurityRealm_-Details>
<passwordHash>#jbcrypt:$2a$10$KwFJ/S69z8S/wf65xnyFB.iUEbsNWJCN0gKlD8AkOyL.k2cgKVLSO</passwordHash>
</hudson.security.HudsonPrivateSecurityRealm_-Details>
<hudson.tasks.Mailer_-UserPropertyplugin="[email protected]">
<emailAddress>zeyangli@test.com</emailAddress>
</hudson.tasks.Mailer_-UserProperty>
</properties>
</user>

2、LDAP认证集成

LDAP系统是用于统一管理用户,关于LDAP服务的部署,在测试环境推荐用Docker部署更加方便些。基本上企业中都会有现成的LDAP服务,所以我们的重点是拿到系统信息即可,在jenkins与LDAP能够正常通信的前提下,你可能需要需要的信息:

  • LDAP服务器地址:ldap://192.168.1.200
  • LDAP服务器端口:389
  • 用于认证集成组织OU信息:ou=jenkins,dc=devops,dc=com
  • 用于集成时具有查询权限的用户:cn=admin,dc=devops,dc=com

首先,我需要在Jenkins系统中安装LDAP插件,然后进入系统管理 >全局安全配置。

填写好信息之后,我们可以点击测试按钮进行测试。会模拟用户登录,成功后再保存配置即可。

3、GitLab单点登录

为什么要配置GitLab单点登录呢?之前有这样的一个场景,每次开发人员登录Jenkins和其他系统的时候都需要再次填写登录信息。增加了工具链之间的跳转成本。为了解决这样的问题,我们可以以GitLab为中心配置单点登录。配置过程分为两部分:GitLab创建应用、Jenkins配置Gitlab插件信息。

首先,我们需要使用管理员账号在GitLab中添加一个应用。系统设置 > 应用管理 > 新建应用。

填写Jenkins回调地址http://jenkinsserver:8080/securityRealm/finishLogin,勾选权限默认具有read_user权限即可。(这里的地址填写的是jenkins的实际地址)保存配置,会提示下面的信息:

OK,这些信息后续需要填写到Jenkins中。ApplicationID secret。我们开始配置Jenkins。我们需要在Jenkins系统中安装插件Gitlab Authentication, 然后导航到全局安全配置,填写Gitlab系统地址和上面在Gitlab创建的应用的ApplicationId secret。

到此就配置完成了。注意:当Jenkins前面有代理的时候可能会出现跳转错误的问题。这时候需要看下提示错误的redirect URL地址,检查下图配置。如果下图配置没有问题,请检查代理的配置问题。另外要注意是​​http​​模式哦

4、GitHub单点登录

配置的GitHub集成与GitLab配置很类似: 首先登录GitHub, settings -> Developer Settings -> Oauth Apps。

新建应用:填写Jenkins回调地址http://jenkinsserver:8080/securityRealm/finishLogin。

保存,获取应用ID和secret。

接下来我们需要在Jenkins系统中安装插件Github Authentication, 然后导航全局安全配置。填写GitHub系统地址和上面在GitHub创建的应用的ApplicationId secret。

最终的效果如下:

到此,我们完成了Jenkins用户的认证管理。大家按需配置即可。后续我们来讲解权限管理为项目和用户授权。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/230804.html<

(0)
运维的头像运维
上一篇2025-04-19 09:59
下一篇 2025-04-19 10:00

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注