一、 背景
针对开发、运维、测试针对不同角色进行不同权限划分,
基于插件: Role-based Authorization Strategy来实现。
一、 安装
安装该插件:
系统管理->管理插件-可选插件->搜索该插件选中直接安装即可。
二、 开启该插件功能
系统管理->全局安全设置-授权策略->选中该插件功能即可->保存
三、 实践
我们可以先将该功能关闭来进行实践测试。
1、策略改回原来的(全局安全配置)
2、开启允许用户注册(全局安全配置)
3、注册一个新用户
登录之后,其默认就是管理员用户,可以进行任何操作,如图下所示:
4、开启Role-Based Strategy
5、重新登录新创建test1用户,显示已经没有任何权限了。
四、 权限划分
我们在安装Role-Based Strategy插件后,系统管理中多了如图下所示的一个功能,用户权限的划分就是靠他来做的。
4.1 Manage Roles(管理角色)
Manage Roles:管理角色,相当于针对角色赋予不同权限,然后在将该角色分配给用户。角色就相当于一个组。其里面又有Global roles(全局)、Project roles(项目)、Slave roles(),来进行不同划分。
默认如图下所示:
Global roles:
默认是有一个admin用户的,是所有权限都有的,所有权限都是勾选了的。
接下来我们来添加一个角色:user
我们给其一个读的权限。
Project roles:
roles to add:表示项目角色
Pattern:是用来做正则匹配的(匹配的内容是Job(项目名)),比如说根据正则匹配到的项目项目角色就都有权限;
接下来我们新建一个ItemA项目角色,改项目角色一般我们给其构建、取消、读取、读取空间权限,一般配置这4个即可
还可以在新建一个ItemB项目角色:
4.2 Assigin roles(分配角色)
1.我们给予test1用户分配user角色,这样其就有manage roles中我们刚才创建的user角色的权限了。
此时我们再去看test1用户,已有查看的权限了,如图下所示
2、针对指定用户分配项目角色(一般最常用的就是针对不同用户进行项目角色分配)
比如将test1用户分配有ItemA项目角色,这样其就可以有刚才我们创建的ItemA项目角色正则匹配到的项目的权限了。
test2也为其分配一个ItemB项目角色
此时我们可以在test1用户这里看到ItemA项目角色所匹配到的项目A-web1
我们也可以在新建一个B-web1项目
同理test2用户这里看到ItemB项目角色所匹配到的项目B-web1
为了方便项目管理,我们可以对不同项目进行分类(借助视图):
分类完如图下所示: