zoukankan      html  css  js  c++  java
  • Jenkins的安全控制

            在默认配置下,Jenkins是没有安全检查的。任何人都可以以匿名用户身份进入Jenkins,设置Jenkins和Job,执行build操作。但是,Jenkins在大多数应用中,尤其是暴露在互联网的应用中,安全控制是非常重要的。安全控制主要解决两个问题:哪些用户可以进入Jenkins;进入Jenkins的用户可以做些什么事。

           Jenkins提供了用户认证和权限控制两种维度的安全策略:

           1) Security Realm(安全域):决定用户名和密码,且指定用户属于的组。

           2) Authorization Strategy(授权策略):分配用户执行某些操作的权限。

           通过Manage Jenkins->Configure Global Security->Enable security,就可以进入Jenkins安全控制界面,如下图所示:


    1 Security Realm

    1.1 Delegate to servlet container

           如果你的Jenkins运行在像Tomcat和GlassFish等服务器上,这些服务器本身就有安装控制,选择这种安全策略,就可以非常简单地让服务器接管Jenkins的安全控制问题。

    1.2 Jenkins's own user database

           Jenkins本身有个数据库来管理用户,不过这个数据库的容量比较小,当有大量用户时,这种策略就不合适。在这种策略下,如果允许任何人通过注册的形式Jenkins的话,可以勾上"Allow user to sign up"。这样非用户在进入Jenkins界面后,可以通过点击右上角的”sign up“先注册,然后再登陆使用Jenkins。如果不允许他人随便注册和使用该Jenkins,就要取消"Allow user to sign up"复选框。此时如果想添加新的用户,只能由已注册用户通过Manage Jenkins-> Manage Users进入User Database界面,点击Create User来注册新的用户。注册新用户界面如下图所示:


    1.3 LDAP

           很多组织用LDAP目录来管理用户,Jenkins也是支持这种安全策略的,不过需要进行一些参数的配置,配置方法可以参考LDAP Plugin Wiki。如果没有特殊要求,大部分的高级设置都可以空着。

    1.4 Unix user/group database

           如果Jenkins安装在Unix机器上,可以将Unix机器上的用户和组应用到Jenkins。登陆Jenkins,只需要输入Unix的用户名和密码就可以。

    2 Authorization Strategy

    2.1 Anyone can do anything

           这种是最简单,同时也是最不安全的授权策略,任何人都可以对Jenkins进行任何操作。

    2.2 Legacy mode

           这种策略比较极端:admin用户拥有系统的所有权限,其他所有用户(包括anonymous)只有只读权限。

    2.3 Logged-in users can do anything

           这种策略相对于”Anyone can do anything“要好一点,只有登陆Jenkins的用户,才有进行所有操作的权限。

    2.4 Matrix-based security

           Jenkins安装以后,会有一个anonymous用户,通过该匿名用户进入系统后,创建一个administrator,分配它系统所有的权限,同时限制anonymous用户的权限。如下图所示:


           然后以administrator身份登录Jenkins,通过他根据需要给其他用户分配权限,从而实现权限的集中控制。

    2.5 Project-based Matrix Authorization Strategy

           该策略是将前面Matrix-base安全策略应用到单个project中。Matrix-base中的权限是针对整个系统的,而Project-based是进一步设置用户在每个具体project上的权限。在这种策略下,具体project的configure界面中,会出现”Enable project-based security“复选框,选中后就可以设置用户能够对该project操作的权限。

    3 Locked Myself Out

           如果权限设置错误,导致自己都无法登陆Jenkins,可以进行如下操作:

           1)停止Jenkins;

           2)用编辑器打开$JENKINS_HOME中的config.xml;

           3)将<useSecurity>true</useSecurity>元素中的true改为false;

           4)将<authorizationStrategy>和<securityRealm>元素的内容删掉;

           5)启动Jenkins。

           这些步骤操作完后,Jenkins又回到最初没有安全检查的状态,任何人都可以进入Jenkins执行任何操作。

           如果这种方法还是不成功,可以尝试重命名或者删除config.xml文件.

  • 相关阅读:
    jQuery+Ajax滚屏异步加载数据实现(附源码)
    EasyUI管理后台模板(附源码)
    jQuery带遮罩层弹窗实现(附源码)
    jQuery相册预览简单实现(附源码)
    node.js应用脚手架:koa2、sequelize、mysql
    React demo:express、react-redux、react-router、react-roter-redux、redux-thunk(二)
    React demo:express、react-redux、react-router、react-roter-redux、redux-thunk(一)
    过了一年,再来回顾一下去年到现在,这一年多,作为初级前端小白的坎坷成长历程
    作为一名初级前端小白,写在年初的一些话
    关于jQuery中,animate、slide、fade等动画的连续触发、滞后反复执行的bug的个人解决办法
  • 原文地址:https://www.cnblogs.com/riskyer/p/3246813.html
Copyright © 2011-2022 走看看