如何在……中创建/添加用户 Jenkins 管理权限

⚡ 智能摘要

创建用户 Jenkins 只需点击四次,但要为每个角色分配不同的权限,需要使用基于角色的授权策略插件,该插件会替换每个内置角色的单个全局角色。 Jenkins 否则账户将共享。

  • 🔘 内置限制: Jenkins 可以创建很多用户,但每个用户都拥有相同的全局权限。
  • ☑️ 首先是插件: 安装基于角色的授权策略,然后在出现任何角色屏幕之前,将授权方式切换到基于角色的策略。
  • 三种角色类型: 全局角色涵盖整个控制器,项目角色针对作业和文件夹,代理角色针对构建机器。
  • 🧪 示例: 在“分配角色”屏幕上,创建了一个开发人员角色,并授予了其权限,然后将其分配给了用户 guru99。
  • 🛠️ 模式匹配: 项目角色使用类似 tester.* 的正则表达式,因此每个匹配的职位或用户都会自动获得该角色。
  • ⚙️ 安全规则: 始终保留一个拥有“总体/管理”权限的帐户,否则保存角色更改可能会导致所有人无法访问。

如何在……中创建和添加用户 Jenkins 并管理权限

通常,在大型组织中,会有多个独立的团队来管理和运行各项工作。 Jenkins但是,管理如此庞大的用户群体并为他们分配角色可能会很麻烦。

默认情况下, Jenkins 该软件提供的用户创建选项非常基础。您可以创建多个用户,但只能为他们分配相同的全局角色和权限。这对于大型组织而言尤其不理想。

角色策略插件 它允许您为不同的用户分配不同的角色和权限。您首先需要在您的系统中安装该插件。 Jenkins 环境,因此下面的演练首先介绍用户创建,然后介绍插件,最后介绍它解锁的角色屏幕。

如何在……中创建/添加用户 Jenkins

以下是创建新用户的步骤 Jenkins:

步骤 1)登录 Jenkins 立即开始

登录你的 Jenkins 访问仪表板 http://localhost:8080/

如果你还没有安装 Jenkins 在本地服务器上,转到相应的 URL 您可以使用登录凭据访问您的控制面板。您看到的控制面板如下所示。

Jenkins 仪表盘在浏览器中打开 Jenkins 安装路径

步骤 2)选择选项

您现在将看到创建和添加用户的选项。 Jenkins 并管理现有用户。

物业管理 Jenkins 屏幕显示创建和管理用户的选项

步骤 3)创建新用户

  • 管理中 Jenkins点击“创建用户”
  • 输入 Jenkins 添加用户详细信息,例如密码、姓名、电子邮件等。
  • 单击创建用户

步骤 4)创建用户

您会在仪表盘上看到一个新的 Jenkins 用户已根据输入的详细信息创建,如下用户列表所示。

用户列表 Jenkins 创建新用户后的仪表板

⚠️ 版本说明: 当前 Jenkins 发布版本中将此屏幕列为 物业管理 Jenkins 用户 而非 管理用户。 该 创建用户 按钮及其上的字段保持不变,屏幕仅在以下情况下存在: Jenkins'自己的用户数据库是安全领域——LDAP 或单点登录领域则在外部管理帐户。

如何在[此处应填写具体内容,例如:]中安装角色策略插件 Jenkins

内置的用户界面可以创建账户,但无法为账户分配不同的权限。此功能需要通过基于角色的授权策略插件来实现,安装方法如下。

安装插件有两种方法 Jenkins:

  1. 通过您的方式安装 Jenkins XNUMX月XNUMX日
  2. 从此处下载插件 Jenkins 网站并手动安装。

步骤1)

  1. 在MyCAD中点击 软件更新 物业管理 Jenkins
  2. 点击“管理插件”选项

物业管理 Jenkins 突出显示插件管理选项的页面

步骤2)

  1. 在可用部分屏幕中,搜索“角色”。
  2. 选择角色授权策略 插入
  3. 点击 ”无需重启即可安装”(确保您拥有有效的互联网连接)

插件管理器搜索结果中列出了基于角色的授权策略插件

⚠️ 版本说明: 路径现在是 物业管理 Jenkins 插件 标签页上标有 可用插件搜索框和插件名称相同,因此上述两个步骤仍然适用。

步骤3)

插件安装完成后,将显示“成功”状态,如下面的安装屏幕所示。

角色策略插件安装界面显示安装成功状态

点击 返回首页。

步骤4) 在MyCAD中点击 软件更新 物业管理 Jenkins -> 配置全局安全 -> 在 授权, 选择 基于角色的策略。 点击 已保存授权部分如下所示。

全局安全屏幕的授权部分,已选择基于角色的策略

现在 Jenkins 此页面的链接是 物业管理 Jenkins >安全页面本身仍然以“ 配置全局安全 使用相同的授权下拉菜单。

角色策略插件中的角色类型

启用基于角色的策略后,该插件提供三种不同的角色范围。权限选择错误是权限看似无效的最常见原因,因此在创建任何内容之前,务必了解每个角色范围的具体内容。

角色类型 适用范围 典型用途
全球角色 整个 Jenkins 控制器,它们会覆盖项目角色中设置的任何内容。 管理员,已认证的只读角色,匿名
物品角色 名称与正则表达式模式匹配的作业、管道和文件夹 仅授予一个团队对其自身作业的构建和配置权限
代理角色 构建与模式匹配的代理 允许团队连接或断开其自身的代理。

以下教程使用全局角色 开发人员 以及一个物品角色 测试仪请注意命名:插件现在调用了第二个作用域。 物品角色因为它涵盖了文件夹、管道以及普通作业。旧版本(以及本页下方的屏幕截图)对同一张表进行了标记。 项目角色.

如何管理用户和角色 Jenkins

以下是管理和分配角色的步骤 Jenkins:

步骤1)

  1. 在MyCAD中点击 软件更新 物业管理 Jenkins
  2. 选择 管理和分配角色

物业管理 Jenkins 页面显示了插件添加的“管理和分配角色”条目。

注意: 管理和分配角色 只有安装了角色策略插件并将授权方式切换到基于角色的策略后,该选项才会显示。

步骤2) 点击 管理角色 根据您的组织添加新角色。

在“管理和分配角色”屏幕上,有“管理角色”选项

步骤3) 创建一个名为“开发人员”的新角色,

  1. 在“角色”下输入“开发人员”。
  2. 点击“添加”来创建新角色。
  3. 现在,选择 Jenkins 您要分配给“开发人员”角色的用户权限。
  4. 单击“保存”

下面显示的是复选框网格。

在“管理角色”屏幕中,已添加开发人员角色并勾选了其权限。

Jenkins 您可以分配给角色的权限组

“管理角色”屏幕上的复选框按权限所作用的对象分组。下表解释了每个组控制的内容,这使得授予团队实际所需的最低权限变得更加容易。

权限组 它赋予了什么
整体 管理、读取和其他控制器级权限。 管理 这是完全控制权,所以要谨慎授予。
资历 查看、创建和更新已存储的凭据
经纪人 配置、连接、断开连接和删除构建代理
工作 在作业中进行构建、取消、配置、创建、删除、读取、工作区和移动等操作
运行 删除、重放和更新单个构建记录
查看 创建、配置、删除和读取仪表板视图
SCM 从源代码控制钩子触发构建

开始每一个新角色 总体/阅读工作/阅读如果没有这两个权限,即使勾选了其他权限,登录用户也会看到一个空白的仪表板,这是该插件最常见的用户反馈问题。

如何分配角色 Jenkins

步骤1) 现在您已经创建了角色,让我们将它们分配给特定用户。

  1. 在MyCAD中点击 软件更新 物业管理 Jenkins
  2. 选择管理和分配角色

打开“管理和分配角色”屏幕,即可找到“分配角色”选项。

步骤2) 我们将为用户“添加新角色”开发者“guru99=

  1. 选中“开发人员角色”复选框
  2. 单击“保存”

在“分配角色”屏幕上,已为用户 guru99 勾选“开发人员角色”复选框。

您可以根据需要为任何用户分配任何角色。

如何在项目中创建项目角色 Jenkins

全局角色适用于所有情况。如果某个权限仅适用于一组特定的任务,则应创建项目角色——插件现在将此范围称为项目角色。

您可以在下面创建项目特定的角色 项目角色。

步骤1) In Jenkins管理和分配角色

  1. 输入“测试人员”角色
  2. 通过添加来添加模式 测试人员。*,这样任何以“tester”开头的用户名都将被分配您指定的项目角色。
  3. 单击“添加”
  4. 选择权限
  5. 单击“保存”

下面显示的是已完成的项目角色表。

项目角色表中已输入测试员角色和测试员点星图案。

该模式是一个正则表达式,用于匹配商品的完整名称。 tester.* 也匹配一个名为 测试套件 以及其中的所有内容。在将新模式应用到实际任务之前,先在临时任务上进行测试。 自由式项目 或者 管道作业.

基于矩阵的安全策略与基于角色的安全策略

角色驱动策略并不是下拉菜单中唯一的授权选项。 Jenkins 船舶内置基于矩阵的安全机制,对于小型安装来说,这可能就足够了。

比较点 基于矩阵的安全 基于角色的策略
安装 内置 Jenkins 需要基于角色的授权策略插件
作业单元 每个用户或用户组都直接被授予权限。 权限属于指定的角色,用户则隶属于该角色。
添加第十位用户 整行权限信息都是手动重复输入的。 勾选一个角色复选框
按工作控制 基于项目的矩阵式授权,逐个作业配置 一个具有特定模式的物品角色涵盖所有匹配的工作
最合适 少数用户拥有几乎相同的访问权限 多个团队,许多工作岗位,随着人员流动,工作机会也会发生变化

经验法则是权限重复出现的次数。一旦第三个用户也使用相同的勾选模式,维护该角色的成本就会降低——同样的道理也促使团队从临时任务转向定期审核。 CI/CD 管道.

常见问题

必须同时满足两个条件:一是必须安装“基于角色的授权策略”插件;二是必须在安全设置界面将授权方式设置为“基于角色的策略”。该条目在保存第二个步骤之前保持隐藏状态。

Stop 停止 Jenkins,开放 config.xml 在 JENKINS_HOME 中,并替换 authorizationStrategy 元素与 <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>然后重启。始终保留一个拥有“总体/管理”权限的帐户,以避免需要这样做。

是的。“分配角色”屏幕接受组名和用户名,因此可以将 LDAP 或 Active Directory 组附加到角色一次,然后完全在目录中处理成员资格。

机器学习工具会将授予的权限与每个帐户实际使用的权限进行比较,并标记未使用的权限,这样可以比手动读取权限矩阵更快地发现权限过高的角色。

GitHub 副驾驶 写道 Groovy 或者使用 REST 调用批量创建角色,并为项目角色草稿模式表达式。 Rev在运行之前查看它生成的所有内容,因为错误的模式会悄无声息地扩大访问权限。

账户位于 JENKINS_HOME/users每个用户一个文件夹,包含一个 config.xml 内部。角色及其权限位于主目录中。 JENKINS_HOME/config.xml因此,备份该文件夹即可同时保留两者。

从用户列表中删除帐户,这将删除登录信息,但不会删除其构建历史记录。要撤销访问权限而不删除任何内容,请在“分配角色”屏幕上取消选中该用户的角色复选框并保存。

是的。“管理角色”屏幕上的“凭据”权限组涵盖了查看、创建和更新已存储的密钥,因此可以允许某个角色运行作业,同时阻止其读取该作业使用的凭据。

总结一下这篇文章: