认证授权
SonarQube具有许多全局安全功能:
- 认证和授权机制
- 强制身份认证
- 委派认证
除此之外,还可在group/user级别配置:
- 查看一个已存在的项目
- 访问项目的源代码
- 管理一个项目
- 管理质量配置,质量阈,实例…
权限配置
使用sonar扫描新项目后,如果要做角色管理,可以在sonarqube控制台为项目指定权限模板以分配角色权限,但是每次扫描新项目都通过手动添加,特别是项目多的情况下,显然是不方便的。sonarqube在创建新权限模板的时候,提供了Project Key Pattern(项目标识模式)功能,可以通过其正则表达式将权限模板自动授予到project_key符合的项目
- 选择“配置-权限-权限模板”创建新模板
- 设置名称、描述、项目标识模式(使用sonarqube的正则表达式)
. 表示匹配0到多个字符(ps:这里与常见的正则表达式的模糊匹配()方式不同,其它资料又少,尝试了许久才发现这种奇特的写法,分享给大家,减少坑路吧)
[a,b] 匹配域内任意字符
如:
.test. 可以匹配project key为:citestpipe,ci-test-pipe等形式的项目
.[-,_]test. 可以匹配project key为:ci-test-pipe,ci_test等形式的项目
use the “Create” button on Administration > Security > Permission Templates. It is possible to provide a Project key pattern.
这里有个问题,就是Project Key Pattern是正则表达式,所以,针对我们前面demo,这个内容应是
my.*
先要配置好permission template, 设置哪些组可以有哪些权限,比如设置组my可以访问所有my为前缀的项目。 然后进行代码扫描,生成的项目就会绑定这个模板对应的权限了。
3. 为模板设置用户/用户组的角色权限
- 设置完成,看到权限模板里已经有了新模板
权限模板设置完成后,新扫描的项目,只要project key匹配正则规则的,就会自动分配角色权限了,不需要再手动通过“配置-projects-Management”设置了。