Jenkins CasC角色策略无法正常获取权限

问题描述 投票:0回答:1

我想设置一个角色(基于 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/.*
下定义的所有作业,因此是该模式。

我的问题:

  1. 如果我没有在全局中定义“build_execute”,则用户在登录后会在主仪表板上被拒绝访问。

  2. 如果我将“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"
jenkins jenkins-plugins configuration-as-code
1个回答
0
投票

假设您正在使用角色策略插件,以下是如何将团队分为具有不同文件夹访问权限的角色(出于简单原因,我将使用 GUI)。

  1. 管理角色菜单开始,您可以在其中创建一些角色。在这里,我创建了 admins,它可以看到所有内容,以及 readers,它只能看到他们可用的内容。接下来,前往项目角色,您可以在其中定义您的团队可以看到的内容。在您的情况下,模式将是
    Folder1(/app1.*)?
    Folder2(/app2.*)?

全球角色

物品角色

  1. 然后您可以进入分配角色菜单,并检查您之前定义的角色/团队是否可以在此处找到。例如,要说每个经过身份验证的用户都是读者,请使用全局角色。

  1. 最后,您将能够使用项目角色将用户分为不同的团队,这将使他们在登录时看到不同的内容。
© www.soinside.com 2019 - 2024. All rights reserved.