前言
随着Jenkins项目中job数量的逐渐增多,参与项目的人员也在不断地增加,项目中每个人的操作都可能对其他人的job造成影响,这个时候给不同的用户配置不同的权限显得尤为重要,这也是项目越来越正规化必经之路。感谢公司给的机会,很有幸参与到Jenkins的项目研究中,今天分享项目中用户权限的相关知识。
用户权限
Jenkins中设置用户权限有很多不同的策略和方法,非常的便捷,对于不同场景下的设置都有非常棒的解决方案。先简单介绍以下六种:
1、Role-Based Strategy(基于角色的策略)
允许定义使用基于角色的授权策略。一旦启用了策略,它可以通过一个单独的页面配置管理Jenkins窗口。
本策略是下面着重要讲解的,先不做过多分析。
2、任何用户可以做任何事(没有任何限制)
不执行任何授权,任何人都能完全控制Jenkins,这包括没有登录的匿名用户.
这种情况对于可信任的环境(比如公司内网)非常有用,或者你只是使用授权做一些个性化的支持.这样的话,如果某人想快速的更改Jenkins,他就能够避免被强制登录.
3、安全矩阵
在这种授权模型中,你可以通过一个大的表格来配置什么用户可以做什么事.
每一列代表一个权限.把鼠标移动到权限名称上可以查看更详细的权限说明信息.
每一行代表一个用户或组(通常称为'角色',取决于安全域.),这其中包含特殊用户'anonymous',其代表未登录用户,同样还有'authenticated',其代表所有已认证的用户(也就是除了匿名用户的所有用户.) 可以使用表格下方的输入框来添加新的用户/组/角色到表格中,并且可以点击[x]图标将其从表格中删除.
权限是追加的,这说明如果一个用户X在A,B,C三个组中,那么X的权限是联合了X,A,B,C和匿名用户的所有权限.
表格:
4、登录用户可以做任何事
如果勾选此项,这将允许不经过身份验证的用户访问詹金斯在只读模式。
5、遗留模式
适用于Jenkins1.164以前的版本.也就是说,如果你是"admin"角色,那么你将拥有Jenkins的一切控制权,其它角色(包括匿名用户) 只有查看权限.
6、项目矩阵授权策略
这个授权模型扩展自"安全矩阵",允许把下面的ACL(访问控制列表)矩阵附加到每个项目定义中(在Job配置页面).
这允许你宣布类似这样的声明"约翰能够访问A,B和C,但是不能访问D.这一点与"安全矩阵"有些不同,具有了更高的可控性、灵活性.
ACL配置是追加的,就是说下面的访问控制会追加到所有的项目配置中。
访问控制列表与“安全矩阵”的一样。
总结
Jenkins就好像它的图标一样,像管家一样为你服务,它摸透了我们每个人的脾气,你要你有需求,插件就能满足你,非常棒的工具,还需要不断地深入的学习研究!