jenkins 全局安全设置

说明:如下内容引用自博文:http://blog.csdn.net/jmyue/article/details/9763021 html

http://www.lai18.com/content/2417621.html 这两篇博文对jenkins 全局安全设置都有很详细的介绍。数据库



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


一、在Jenkins的主界面,点击"系统管理"----> configure Global Security 选项安全

wKioL1dhLO7DHtJmAAEb6rBOKgM983.png-wh_50


二、进入Jenkins的系统安全设置界面。安全界面以下图。接下来将分别介绍各个选项的功能。服务器

wKiom1dhMIWDJ9jQAACOp2pW2j8457.png-wh_50


启用安全ide

       启用安全,若是启动此项,你必须使用“用户名/密码”登陆才能配置和执行构建。若是Jenkins在内网环境(或者是一个"可信任"的环境),一般会禁用此项,以便项目开发人员可以配置他们本身的项目,而不用麻烦管理员 ; 若是Jenkins暴露在公网环境,你最好启用此项,Jenkins若是在一个不安全的环境下可能会遭到***的***. 
网站


JNLP节点代理的TCP端口ui

  Jenkins使用一个TCP端口和JNLP节点代理通信. 一般这个端口号是随机选取的,以免冲突,可是这对于系统来讲是不固定的.若是不使用JNLP节点代理, 推荐禁用TCP端口.另外一种选择就是指定一个不变的端口号,以便防火墙作对应的设置. 这里若是没有出现问题,建议不要更改,直接默认随机选取就能够了。spa


Disable remember me.net

      选择此选项将删除“记住我在这台计算机上的登陆”复选框。每次输入用户名密码都必须手动输入,而不能让浏览器记住用户名和密码。



访问控制

   接下来就是最重要的访问控制了。这里的设置可给Jenkins的用户设置权限,使某些用户没法使用某些功能,或者直接没法登陆系统。


访问控制有两个子选项:

一、安全域 :决定用户名和密码,且指定用户所属的组。

二、受权策略:分配用户执行某些操做的权限。


Jenkins专用用户数据库:Jenkins自己有个数据库来管理用户,不过这个数据库的容量比较小,当有大量用户时,这种策略就不合适。在这种策略下,若是容许任何人经过注册Jenkins的形式,能够勾”容许用户注册“。这样非用户在进入Jenkins界面后,能够经过 点击右上角的“注册”按钮进行注册,而后再登陆使用Jenkins。  若是不容许他人随便注册和使用该Jenkins,就要取消“容许用户注册”复选框。此时若是想添加新的用户,只能由已注册用户(或管理员)经过"系统管理"—>管理用户 —>新建用户进入 “Jenkins专有用户数据库”界面,经过点击”建立新用户“来注册新的用户。


LDAP:不少组织用LDAP目录来管理用户,Jenkins也支持这种安全策略,不过须要进行一些参数的配置,配置方法能够参考LDAP Plugin Wiki(https://wiki.jenkins-ci.org/display/JENKINS/LDAP+Plugin) 。若是没有特殊要求,大部分的高级设置均可以空着。


servlet 容器代理:若是你的Jenkins 运行在像Tomcat或GlassFish 等服务器上,这些服务器自己就有安装控制,选择这种安全策略,就能够很是管理地让服务器接管Jenkins的安全缺控制问题。



受权策略


任何用户能够作任何事(没有任何限制)这种是最简单,同时也是最不安全的受权策略,它不执行任何受权,任何人都能彻底控制Jenkins,这包括没有登陆的匿名用户。(这种状况对于可信任的环境(好比公司内网)很是有用,或者你只是使用受权作一些个性化的支持,这样的话,若是某人想快速的更改Jenkins,他就可以避免被强制登陆)


安全矩阵在这种受权模型中,你能够经过一个大的表格来配置什么用户能够作什么事.(每一列表明一个权限,把鼠标移动到权限名称上能够查看更详细的权限说明信息)

每一行表明一个用户或组(一般称为'角色',取决于安全域)这其中包含特殊用户‘anonymous’,其表明未登陆 用户,一样还有‘authenticated’,其表明全部已认证的用户(也就是除了匿名用户的全部用户)可使用表格下方的输入框来添加 新的用户/组/角色到表格中,而且能够点击[x] l 图标将其从表格中删除。


登陆用户能够作任何事这种受权模式下,每一个登陆用户都持有对Jenkins的所有控制权限.只有匿名用户没有所有控制权,匿名用户只有查看权限. 

这种受权模式的好处是强制用户登陆后才能执行操做,这样你能够随时记录谁都作了什么操做.这种设置也适用于公共使用的Jenkins,只有你信任的人才拥有帐户.


遗留模式适用于Jenkins1.164之前的版本.也就是说,若是你是"admin"角色,那么你将拥有Jenkins的一切控制权,其它角色(包括匿名用户) 只有查看权限. 


项目矩阵受权策略这个受权模型扩展自“安全矩阵”,容许把下面的ACL(访问控制列表)矩阵附加到每一个项目定义中(在Job 配置页面)

这容许你宣布相似这样的声明"john可以访问A,B和C,可是不能访问D."



Markup Formatter

  选择job description写的html代码是显示代码仍是显示html源码。选择raw HTML的时候,显示的是本身写的源代码。选择escaped HTML的时候,显示的是html的源码。


防止跨站点请求伪造

  跨站点请求伪造(或CSRF/XSRF),它是一种利用你的身份经过未经受权的第三方手段在网站上执行操做.对于Jenkins进行删除任务,构建或者更改配置. 当启用此项,Jenkins会检查临时生成的值,以及任何致使Jenkins服务器改变的请求.这包括任何形式的提交和远程API调用. 


Enable Slave → Master Access Control

  容许子节点控制父节点,具体有哪些权限能够被子节点控制。能够在一个经过点击rules can be tweaked here 这句话中的here来设置。