如何进入安全设置界面
在Jenkins的主界面,点击 configure Global Security 选项,进入Jenkins的系统安全设置界面。安全界面如下图。在这里我们分别介绍各个选项的功能。
启用安全
启用安全,如果启动此项,你必须使用用户名/密码登录才能配置和执行构建,如果Jenkins在内网环境(或者是一个"可信任"的环境),通常会禁用此项,以便项目开发人员能够配置他们自己的项目,而不用麻烦管理员.如果Jenkins暴露在公网环境,你最好启用此项.Jenkins如果在一个不安全的环境下可能会遭到黑客的攻击.
当我们选择启用安全时,页面中会展开很多的东西,如下图所示:在增加的内容中,有以下几项(如果安装了其他插件,可能会出现的更多,这里不再介绍)。
JNLP节点代理的TCP端口
Jenkins使用一个TCP端口和JNLP节点代理通讯. 通常这个端口号是随机选取的,以避免冲突,但是这对于系统来说是不固定的.如果不使用JNLP节点代理, 推荐禁用TCP端口.另一种选择就是指定一个不变的端口号,以便防火墙做对应的设置. 这里如果没有出现问题,建议不要更改,直接默认随机选取就可以了。
Disable remember me
选择此选项将删除“记住我在这台计算机上的登录”复选框。每次输入用户名密码都必须手动输入,而不能让浏览器记住用户名和密码。
访问控制
接下来就是最重要的访问控制了。这里的设置可给Jenkins的用户设置权限,使某些用户无法使用某些共能,或者直接无法登入系统。
访问控制有两个子选项:1.安全域。2.授权策略。
安全域说的是用什么作为工具去控制用户的访问,这里的工具我目前理解的也不深刻,就不误导大家了,您如果也是新手的话,直接选择其中的“Jenkins专有用户数据库 ”这一项,并且将允许用户注册选项选中即可。
另一个是授权策略,授权策略是给用户分配具体的权限的。共有五个选项:
1.任何用户可以做任何事(没有任何限制) 不执行任何授权,任何人都能完全控制Jenkins,这包括没有登录的匿名用户.
这种情况对于可信任的环境(比如公司内网)非常有用,或者你只是使用授权做一些个性化的支持.这样的话,如果某人想快速的更改Jenkins,他就能够避免被强制登录. ;
2.安全矩阵 ,在这种授权模型中,你可以通过一个大的表格来配置什么用户可以做什么事.
每一列代表一个权限.把鼠标移动到权限名称上可以查看更详细的权限说明信息.
每一行代表一个用户或组(通常称为‘角色‘,取决于安全域.),这其中包含特殊用户‘anonymous‘,其代表未登录用户,同样还有‘authenticated‘,其代表所有已认证的用户(也就是除了匿名用户的所有用户.) 可以使用表格下方的输入框来添加新的用户/组/角色到表格中,并且可以点击[x]图标将其从表格中删除. ;
3.登录用户可以做任何事,这种授权模式下,每个登录用户都持有对Jenkins的全部控制权限.只有匿名用户没有全部控制权,匿名用户只有查看权限.
这种授权模式的好处是强制用户登录后才能执行操作,这样你可以随时记录谁都做了什么操作.这种设置也适用于公共使用的Jenkins,只有你信任的人才拥有账户. ;
4.遗留模式 ,适用于Jenkins1.164以前的版本.也就是说,如果你是"admin"角色,那么你将拥有Jenkins的一切控制权,其它角色(包括匿名用户) 只有查看权限.
5.项目矩阵授权策略 ,这个授权模型扩展自"安全矩阵",允许把下面的ACL(访问控制列表)矩阵附加到每个项目定义中(在Job配置页面).
这允许你宣布类似这样的声明"约翰能够访问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来设置。如图所示: