Jenkins系统用户认证配置管理

系统运维2025-11-04 00:16:099

一、统用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_16866795532731427321.2.

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

复制[root@zeyang-nuc-service users]# ls zeyang_1686679553273142732/

config.xml1.2.

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

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

复制<?xml versinotallow=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.UserCommunityProperty plugin="localization-zh-cn@1.0.17"> <showCondition>Chinese</showCondition> </io.jenkins.plugins.localization__zh__cn.UserCommunityProperty> <com.cloudbees.plugins.credentials.UserCredentialsProvider_-UserCredentialsProperty plugin="credentials@2.3.12"> <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash"/> </com.cloudbees.plugins.credentials.UserCredentialsProvider_-UserCredentialsProperty> <hudson.plugins.emailext.watching.EmailExtWatchAction_-UserProperty plugin="email-ext@2.69"> <triggers/> </hudson.plugins.emailext.watching.EmailExtWatchAction_-UserProperty> <hudson.model.MyViewsProperty> <views> <hudson.model.AllView> <owner class="hudson.model.MyViewsProperty" reference="../../.."/> <name>all</name> <filterExecutors>false</filterExecutors> <filterQueue>false</filterQueue> <properties class="hudson.model.View$PropertyList"/> </hudson.model.AllView> </views> </hudson.model.MyViewsProperty> <org.jenkinsci.plugins.displayurlapi.user.PreferredProviderUserProperty plugin="display-url-api@2.3.3"> <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_-UserProperty plugin="mailer@1.32"> <emailAddress>zeyangli@test.com</emailAddress> </hudson.tasks.Mailer_-UserProperty> </properties></user>1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.

2、LDAP认证集成

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

LDAP服务器地址:ldap://192.168.1.200LDAP服务器端口: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用户的认证管理。大家按需配置即可。后续我们来讲解权限管理为项目和用户授权。

本文地址:http://www.bhae.cn/html/984e8598930.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

电脑蓝屏错误代码的解析与处理方法(探索蓝屏错误代码背后的故事,帮助你解决电脑问题)

phpcms单页怎么做?单页内容如何编辑发布?

MySQL触发器的创建与删除

MySQL数据库安装在Ubuntu操作系统下

电脑表格显示格式错误及解决方法(解析电脑表格显示错误的常见问题和解决方案)

MySQL explain实际操作流程说明

MySQL 连接池的实际配置问题

对linux MySQL 安装步骤的讨论

友情链接

滇ICP备2023000592号-9