zoukankan      html  css  js  c++  java
  • Jenkins-权限控制

      默认Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置,Jjob和启动build等。显然在公司中需要多个部门一起协调工作时,没有任何安全检查会有问题。所以,我们需要在系统管理-Configure Global Security页面进行“访问控制”设置。

      在这里我们将安全域设置中,允许用户注册的勾选去掉

    Jenkins的权限配置文件存放在JENKINS_HOME目录下,找到config.xml。打开config.xml,找到<useSecurity>和<authorizationStrategy>节点。

    <useSecurity>:代表是否使用用户权限;<authorizationStrategy>:代表用户权限是怎么划分;

    (1)Security Realm,决定用户名和密码,并指定用户属于哪个组;

    (2)Authorization Strategy,决定用户对哪些资源有访问权限;

    1. 授权策略

    1.1 任何用户可以

    <useSecurity>true</useSecurity>
      <authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
      <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
        <disableSignup>true</disableSignup>
        <enableCaptcha>false</enableCaptcha>
      </securityRealm>
    View Code

    1.2 登录用户可以做任何事情

    1.2.1 界面配置如下

    1.2.2 config.xml配置如下

     <useSecurity>true</useSecurity>
      <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>
      <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
        <disableSignup>false</disableSignup>
        <enableCaptcha>false</enableCaptcha>
      </securityRealm>
    View Code

    1.3 安全矩阵

    1.3.1 界面配置如下

    1.3.2 config.xml配置如下

     <useSecurity>true</useSecurity>
      <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy">
        <permission>hudson.model.Hudson.Administer:jenkins</permission>
        <permission>hudson.model.Hudson.Read:anonymous</permission>
        <permission>hudson.model.Hudson.Read:dev</permission>
        <permission>hudson.model.Item.Build:dev</permission>
        <permission>hudson.model.Item.Read:anonymous</permission>
        <permission>hudson.model.Item.Read:dev</permission>
      </authorizationStrategy>
      <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
        <disableSignup>false</disableSignup>
        <enableCaptcha>false</enableCaptcha>
      </securityRealm>
    View Code

     设置好权限之后,点击注册,注册相应的账号,如上图的dev,jenkins。

    1.4项目矩阵策略

    1.4.1 界面配置如下:

     各种权限如下(在配置页面将鼠标放到该权限上即可查看帮助):

    其中有一些比较特别的权限:

    最大的权限是Overall的Administer,拥有该权限可以干任何事情。

    最基本的权限是Overall的Read,用户必须赋予阅读的权限,不然什么都看不到。

    Job的Discover权限是一个奇葩的权限,帮助说Discover比Read的级别更低。如果匿名用户(没有访问job的权限)直接访问一个Job的Url将重定向到登陆页面。(经测试,这个权限应该是被废弃了。)

    Credentials的ManageDomains这个权限没有看懂干嘛的,有懂的大家一起交流哈!

    ps:如果有个用户被赋予了Overall的Read,并没有被赋予Job的Read权限,那么该用户就无法访问job。原因:没有权限。

    1.4.2 config.xm配置如下

    <useSecurity>true</useSecurity>
      <authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
        <permission>hudson.model.Hudson.Administer:admin</permission>
        <permission>hudson.model.Hudson.Read:anonymous</permission>
        <permission>hudson.model.Item.Build:dev</permission>
        <permission>hudson.model.Item.Read:anonymous</permission>
        <permission>hudson.model.Item.Read:dev</permission>
      </authorizationStrategy>
      <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
        <disableSignup>false</disableSignup>
        <enableCaptcha>false</enableCaptcha>
      </securityRealm>
    View Code

    1.4.3 每个用户后都有1-2个图标,第一个是反选功能(删除当前已选中的权利,选中其他所有权限),第二个是删除功能(删除该用户)

    1.4.4 在Job中配置项目安全如下:

    2. 过程问题

    2.1怎么辨别使用是哪种权限控制模式

  • 相关阅读:
    机器学习(04)——常用专业术语
    C# 线程同步的三类情景
    线程同步的情景之三
    线程同步的情景之二
    线程同步的情景之一
    Thread.Sleep(0) vs Sleep(1) vs Yeild
    Visual Studio 实用扩展推荐
    为革命保护视力 --- 给 Visual Studio 换颜色
    免费的精品: Productivity Power Tools 动画演示
    如何扩展 Visual Studio 编辑器
  • 原文地址:https://www.cnblogs.com/fengwenqian/p/7813950.html
Copyright © 2011-2022 走看看