zoukankan      html  css  js  c++  java
  • Jenkins的授权和访问控制


    一 Jenkins的授权和访问控制
    默认地Jenkins不包含任何的安全检查,任何人可以修改Jenkins设置,job和启动build等。显然地在大规模的公司需要多个部门一起协调工作的时候,没有任何安全检查会带来很多的问题。 我们可以通过以下2方面来增强Jenkins的安全:
    1) Security Realm,用来决定用户名和密码,且指定用户属于哪个组;
    2) Authorization Strategy,用来决定用户对那些资源有访问权限;

    在Manage Jenkins -> Configure System -> Enable Security 下可以看到可以使用多种方式来增强Jenkins的授权和访问控制。


     

    二 创建管理员账号+匿名只读

    简单地设置一个管理员账号,用来管理jenkins设置,修改job和执行build等。其他的匿名访问的用户将只有只读的权限,不能修改Jenkins的设置,不能修改job,且不能运行build,但是可以访问build的结构,查看build的log等。

    1)需要对Jenkins增加如下的启动参数来创建管理员账号:
    java -jar jenkins.war --argumentsRealm.passwd.user=password --argumentsRealm.roles.user=admin

    例如设置管理员用户为jenkins且密码为swordfish,如下:
    java -jar jenkins.war --argumentsRealm.passwd.jenkins=swordfish --argumentsRealm.roles.jenkins=admin

    2)在启动后需要在Manage Jenkins -> Configure System来选择enable security,然后选择对Security Realm选择Delegate to servlet container,对Authorization选择Legacy Mode。

    3)然后可以在右上角点击login或者 http://yourhost/jenkins/loginEntry来登录,登录后此时你用户管理员权限,可以执行任何的操作。执行完操作后可以选择logout。

    4) 对developers增加rebuild的权限。使用管理员登录对需要developer rebuild的job,选择Trigger builds remotely,且设置Authentication Token,例如设置为devbuild,然后developers可以访问http://jenkinsHost/job/project/build?token=token 来启动build。
    其中Project为你需要启动build的job。
    其中token为你设置的Authentication Token。
    如果你有webserver,你可以创建如下的webpage来让developers来启动build:
    <h1>Jenkins Force Build Page</h1>
    <ul>
        <li>
        <a href="http://jenkins:8080/job/FOO/build?token=build">Force build of Project FOO on Jenkins</a>
        </li>
    </ul>


    三 使用Jenkins的数据库管理用户且设置用户的访问权限

    1)在Manage Jenkins -> Configure System -> Enable Security下为Security Realm选择Jenkins's own user database,且确保Allow users to sign up选中,为Authentication选择Matrix-based security。如下:


    2)接着在主页上signup创建第一个管理员账号jenkins如下:

     

    3)除了第一个账号以后signup的账号将为只读账号需要管理员分配权限。例如你可以signup来创建dev账号,然后分配权限使得dev可以启动job的build。如下:

     


    注意:

    在%JENKINS_HOME%\config.xml中可以查看和修改所有用户的权限设置,但是修改后需要重新启动Jenkins。

    参考:

    https://wiki.jenkins-ci.org/display/JENKINS/Quick+and+Simple+Security
    https://wiki.jenkins-ci.org/display/JENKINS/Standard+Security+Setup

  • 相关阅读:
    Repeater 双向排序
    将具有固定格式的text 类型中的数据分离出来的一种方法
    ASP.NET 快速构建应用程序页面主框架
    2分分页处理存储过程通用存储过程
    C#3.0之匿名类型
    常用的js收集
    用CSS实现DataGird滚动而表头不动
    Lucene.Net 创建索引和检索
    Lucene.net 实现全文搜索
    SQL 中操作日期的几个函数
  • 原文地址:https://www.cnblogs.com/itech/p/2249457.html
Copyright © 2011-2022 走看看