我想设置一个角色(基于 ldap 安全组),该角色只能访问基于模式的文件夹。
Jenkins 版本:版本 2.426.3
角色策略:689.v731678c3e0eb_
配置即代码:1775.v810dc950b_514
假设我设置了这些文件夹:
Folder1/app1/deploy
Folder1/app1/build
Folder1/app2/deploy
Folder1/app2/build
...
我希望 app1_build_team 中的所有用户都能够访问
Folder1/app1/.*
下定义的所有作业,因此是该模式。
我的问题:
如果我没有在全局中定义“build_execute”,则用户在登录后会在主仪表板上被拒绝访问。
如果我将“build_execute”添加到配置的全局部分,该组中的用户可以看到所有文件夹、所有作业,但只能运行模式行中定义的内容。
我们将为庞大的用户群托管各种文件夹/作业,并且只需要特定团队可见和访问的文件夹和作业。
我正在使用 CasC 填充所有权限。据我所知,它主要与上面的#2 一起工作。用户可以运行分配给其组的作业,但登录后可以看到所有内容。
我在下面尝试了很多配置排列,我不想粘贴到这里,因为它只会让这篇文章变得混乱。
如何为以下组的用户编写配置以仅根据定义的模式查看文件夹?
我已经进入管理角色并在 GUI 中分配角色,配置为我认为应该的方式,导出了 casc 配置,但正如我所说,用户要么拒绝所有人访问,要么可以根据我是否可以看到所有文件夹/作业使用“Job/Read”是全局配置。
这是我的配置的一部分,其中“作业/读取”未在全局范围内定义。
authorizationStrategy:
roleBased:
permissionTemplates:
- name: "build_execute_perm_template"
permissions:
- "Job/Cancel"
- "Run/Delete"
- "Job/Build"
- "Run/Update"
- "Job/Discover"
- "Job/Read"
- "View/Read"
- "Run/Replay"
- "Folder/Read"
roles:
global:
- entries:
- group: "devops_team"
name: "admin"
pattern: ".*"
permissions:
- "Overall/Administer"
items:
- entries:
- group: "app1_build_team"
name: "build_execute"
pattern: "Folder1/app1/.*"
templateName: "build_execute_perm_template"
- entries:
- group: "app2_build_team"
name: "build_execute"
pattern: "Folder1/app2/.*"
templateName: "build_execute_perm_template"
假设您正在使用角色策略插件,以下是如何将团队分为具有不同文件夹访问权限的角色(出于简单原因,我将使用 GUI)。
Folder1(/app1.*)?
和 Folder2(/app2.*)?
。