文章目录
- 一、进入全局安全设置页面
- 二、各选项功能
- `Disable remember me(禁用记住我)`
- `Security Realm(安全域)`
- Delegate to servlet container(servlet 容器代理)
- Jenkins’ own user database(Jenkins 专有用户数据库)
- LDAP
- Unix user/group database(UNIX 用户/组数据库)
- `Authorization(授权)`
- Anyone can do anything(任何用户可以做任何事)
- Legacy mode(传统模式)
- Logged-in users can do anything(登录用户可以做任何事)
- Role-Based Strategy(`基于角色策略,推荐使用`)
- 安全矩阵
- 项目矩阵授权策略
- `其他全局安全配置`
- Markup Formatter(标记格式化程序)
- Agents(代理)
- CSRF Protection(防止跨站请求伪造攻击)
- Hidden security warnings(隐藏安全警告)
- SSH 服务器
- 三、参考文档
一、进入全局安全设置页面
二、各选项功能
Disable remember me(禁用记住我)
选择此选项将删除登录界面上“记住我在这台计算机上的登录”的复选框。每次输入用户名密码都必须手动输入,而不能让浏览器记住用户名和密码。
Security Realm(安全域)
允许我们指定哪些实体负责验证 Jenkins 的用户身份。
Delegate to servlet container(servlet 容器代理)
这里提到的 servlet 容器就是运行 Jenkins 实例的一种方法,通常是Tomcat。
使用这个选项,你可以通过 servlet 容器支持的任何机制来进行身份验证。
Jenkins’ own user database(Jenkins 专有用户数据库)
此选项将身份验证委托给 Jenkins 维护/熟悉的人员列表。
有一个子选项允许用户进行“注册”一一这意味着他 在第一次需要登录到 Jenkins 的时候,可以创建他们 自己的账户。在默认情况下, 选项被禁用以便更严格地控制访问。
LDAP
轻量级目录访问协议(LDAP, Lightweight Directory Access Protocol )是用于在网络上定位人员、组织、设备和其他资源的一种软件协议。
你可以添加 一个以上的 LDAP 服务器(如果需要的话,每个服务器都有不同的配置)。
Unix user/group database(UNIX 用户/组数据库)
此选项将身份验证委托给 UNIX 主机系统的用户数据库。如果使用此方法,用户可以使用 UNIX 用户名和密码登录 Jenkin。
UNIX 组也能用于身份验证。
如果 一个用户和 一个组有相同的名字,那么在名字前加上 一个@将它与 这个组区分开。
需要注意的是,可能会需要其他额外的配置来使得这个方法真正生效, 比如,把 Jenkins设置成 shadow 组的成员,以便操作系统可以访问和使用它
Authorization(授权)
一旦通过身份验证, Jenkins 需要知道用户会被允许进行哪些操作。
Anyone can do anything(任何用户可以做任何事)
使用此选项将不会进行真正的身份验证。总的来说,每个人都被认为是“可信的”一一包括匿名用户(即使他们还没登录)。这是不被推荐的,但在一个完全可信的环境中,为了简单和高效,它适应于允许无限制访问的情况
Legacy mode(传统模式)
这种模式模拟了 v1.164 版本之前的 Jenkins 特性:任何具有“管理员”角色的人都有完全的控制权,而其他人只有只读权限。
Logged-in users can do anything(登录用户可以做任何事)
顾名思义,用户必须先登录,然后才能完全访问。如果你不介意每个人都能完全访问,而只是想要追踪谁正在做什么的话(通过他们的登录),这是有用的。
这里还有 一个子选项能开启匿名用户拥有只读权限。
Role-Based Strategy(基于角色策略,推荐使用
)
Jenkins Manage and Assign Roles角色权限控制
安全矩阵
此选项允许你通过矩阵排列中的复选框为单个用户或组指定非常详细的权限。矩阵中的列被划分为类别(分组),比如总体、任务、运行等。然后在这些项的下面是与该类别相关的更细的权限。
矩阵的每一行代表一个用户或组。有两个默认组是自动添加的 匿名用户(未登录的用户)和已验证用户(登录的用户)。矩阵下的文本框可以允许你添加新用户。
要给一个用户或组授权 一个指定的权限,在对应的类别下面打钩即可。
每行最后的可以点击的复选框可以一次性地为用户/组授权所有权限或删除所有权限。
项目矩阵授权策略
此选项是“安全矩阵”模型的扩展,会为每个项目的配 置页添加 一个类似的矩阵。
这允许每个项目可以以用户 或组来配置,因此你可以限制对某些项目的访问,但同时允许访问其他项目。
启用后,每个项目(job)的配置页面会出现一 个启用基于项目的安全(Enable project-based security )选项。该矩阵可以像 全局矩阵一样 配置, 以提供特定项目的访问权限。
一个附加选项可以允许你选择是否从父访问控制列表继承权限,即全局定义的权限。
其他全局安全配置
Markup Formatter(标记格式化程序)
Jenkins 允许用户在各种文本域中放置自由形式的文本,比如,任务描述、构建描述等。可以设置为纯文本或 HTML 。
安全 HTML (Safe HTML )。这里的“安全”指的是只允许不会引起黑客攻击安全风险的 HTML 结构。安全 HTML 结构的示例包括基本的粗体、斜体、超链接等。
开启Safe HTML后可以支持如下写法
timestamps {
properties([
parameters([
string(name: 'DB_TYPE', defaultValue: "", description: '''<div class="tab-item">
<h6 style="color:blue" class="item-title">数据库类型</h6>
<div class="item-content">
<table>
<tr>
<th><h6 style="color:green">数据库类型</h6></th>
<th><h6 style="color:green">服务器IP</h6></th>
</tr>
<tr>
<td>mysql</td>
<td>192.168.1.2</td>
</tr>
<tr>
<td>oracle</td>
<td>192.168.1.3</td>
</tr>
</table>
</div>
</div>''', trim: true),
]),
])
}
Agents(代理)
CSRF Protection(防止跨站请求伪造攻击)
跨站请求伪造(CSRF, Cross-Site Request Forgery )是 一种可以强制用户在通过身份验证的 Web 应用程序上执行多余操作的攻击类型。这部分的预防方怯是验证 Jenkins 中的用户是否存在碎屑踪迹(导航历史)。
子选项允许激活代理兼容性,用来防止代理过滤掉关于碎屑踪迹的信息。
Hidden security warnings(隐藏安全警告)
SSH 服务器
为了通过 SSH 执行命令行子集, Jenkins 可以充当 SSH 服务器。 一些插件也可能会使用这个功能。
如果需要用到这个功能,可以在这里设置 一个固定端口以简化安全性。也可以使用随机端口来避免冲突。 如果不需要此功能,最好使用禁用选项来禁用己打开的端口。
三、参考文档
《Jenkins2权威指南》